Analoges Phasenregelkreis-Design

Ich versuche, einen Phasenregelkreis in Simulink von MATLAB zu entwerfen. Dazu folge ich diesem grundlegenden Blockdiagrammdesign:

Blockdiagramm

Mein ursprüngliches Nachrichtensignal ist ~12 Sekunden lang, hat eine Bandbreite von ungefähr 22,05 kHz und wurde mit 44,1 kHz abgetastet. Ich habe es mit dem Block „from workspace“ mit einer Abtastzeit von (1/44100) in Simulink importiert. Zu Testzwecken werden mir nur 0,25 Sekunden Zeit simuliert.

Dann leite ich meine Nachricht durch einen „Zero-Order-Hold“-Block, der eine Abtastzeit von (1E-7) hat, die dann im gesamten Rest des Systems verwendet wird.

Vom Ausgang des Zero-Order Hold gebe ich mein Signal in einen FM-Modulator mit einem Kf = 77017,868 und einer Trägerfrequenz von 1 MHz ein. Der Kf wurde aufgrund der Einschränkung gewählt, dass meine Spitzenfrequenzabweichung 75 kHz betragen muss und die maximale Amplitude des 12-Sekunden-Nachrichtensignals 0,9738 V beträgt.

Um den Phasendetektor zu modellieren, habe ich einen Produktblock und einen LPF verwendet, um die Frequenzen bei der doppelten Trägerfrequenz abzuschneiden. Ich habe den LPF mit der 'Butter'-Funktion von MATLAB implementiert, um die Koeffizienten für eine Butterworth-Funktion zu generieren. Der folgende Code ist hier:

Phasen-LPF-Code

Der Schleifenfilter ist mit einer Übertragungsfunktion von (s+a)/s implementiert, wobei '1/a', das ich berechnet habe, kleiner als 1E-7 (meine Abtastrate) sein muss. Ich mache das, weil der Phasenfehler in einer Zeitspanne, die kleiner ist als die Zeitdifferenz zwischen den Abtastungen, auf Null (oder nahe Null) abfallen muss. Daher in meinem Kopf jeder Wert, bei dem ein > 1E7 ausreichen sollte. Meine Arbeit für die Berechnung verschiedener Komponenten ist hier:

BEARBEITEN: (Ich habe diese Werte unten neu = berechnet, aber ich werde diese alten hier zur Dokumentation belassen)Seite 1 Seite 2

Schließlich hat der zeitkontinuierliche VCO eine Trägerfrequenz von 1 MHz sowie einen Kv = 77017,868. Unten ist ein Bild, das zeigt, wie ich die Simulation in Simulink konfiguriert habe: (wobei der Verstärker normalerweise eine Verstärkung von u hat, die oben berechnet wurde)

Simulink-Setup

Ich glaube, ich muss ein grundlegendes Missverständnis darüber haben, wie sich der Phasenregelkreis verhält, da ich sicher weiß, dass dieses Systemdesign das Signal korrekt demodulieren wird, wenn ich meine Werte richtig wähle. Stattdessen sehe ich Verhaltensweisen, die ich nicht einmal richtig beschreiben oder verstehen kann. Unten sehen Sie zum Beispiel ein Diagramm der ursprünglichen Wellenform vor der FM-Modulation neben einem Diagramm des Ausgangs der Phasenregelschleife. Was verstehe ich einfach nicht?

Wenn es irgendwelche Informationen gibt, die ich geben kann, werde ich das gerne tun.

0,25 Sekunden der ursprünglichen Wellenform: Geben Sie hier die Bildbeschreibung ein0,25 Sekunden der Ausgabe von PLL:Geben Sie hier die Bildbeschreibung ein

BEARBEITEN: Ich habe die Werte für die Schleifenfilter-Übertragungsfunktion neu berechnet, wobei a die Konstante in der Schleifenfilter-Übertragungsfunktion (s+a)/s ist, und ich habe sichergestellt, dass 1/(Zeta * Wn) <Ts. Wo mein Ts 1e-7 ist.

Geben Sie hier die Bildbeschreibung ein

Okay, also habe ich beschlossen, den Prozess ein wenig zu vereinfachen, damit die Fehlersuche einfacher ist. Ich habe seitdem meine Audiowellenform entfernt und durch eine 16-Hz-Sinuswelle mit einer Amplitude von 0,95 ersetzt (ich wollte den Maximalwert meiner Nachricht nicht überschreiten). Dies ergab das folgende Ergebnis, wobei die blaue Linie der Ausgang des Phasenregelkreises und die gelbe Welle der ursprüngliche Eingang ist.

Geben Sie hier die Bildbeschreibung ein

Als nächstes, und ich habe keine Ahnung, warum das irgendetwas bewirkt, habe ich die Trägerfrequenz von 1 MHz auf 10 MHz geändert (ohne die Abtastraten zu ändern). Wenn jemand erklären könnte, warum dies das neue Ergebnis ist, das NUR die Trägerfrequenz des FM-Modulators und des VCO geändert hat, würde ich es begrüßen:

Geben Sie hier die Bildbeschreibung ein

Als nächstes entschied ich mich, mit der Reihenfolge des LPF zu spielen, der dem Mixer folgt. Im obigen Bild ist die Ordnung des Butterworth-Filters 13. Ich habe tatsächlich mit allen Filterordnungen zwischen 1 und 50 simuliert, und ich dachte, dies seien die interessantesten Ergebnisse:

Butterworth LPF-Filterreihenfolge 17:

Geben Sie hier die Bildbeschreibung ein

Butterworth LPF-Filterbestellung 19:

Geben Sie hier die Bildbeschreibung ein

Butterworth LPF-Filterbestellung 27:

Geben Sie hier die Bildbeschreibung ein

Butterworth LPF-Filterbestellung 35:

Geben Sie hier die Bildbeschreibung ein

Ich verstehe dieses Verhalten auf keinen Fall. Die Ordnung des Filters scheint die Genauigkeit des Phasenregelkreises stark zu beeinflussen, was für mich keinen Sinn ergibt. Ich hatte Verständnis dafür, dass der LPF des Phasendetektors nur die höheren Frequenzkomponenten abschneidet, nachdem die beiden Signale miteinander multipliziert wurden. Ich dachte, dass der folgende Schleifenfilter Stabilität, Schwingungen usw. kontrolliert.

Was auch seltsam erscheint, ist, dass es einen "Sweet Spot" der Filterordnungen um 17 herum zu geben scheint. Wenn die Ordnung zu hoch oder zu niedrig wird, wird effektiv kein Signal am Ausgang des Demodulators erzeugt.

Filter steuert die Gruppenverzögerung im Vorwärtsweg. Bei hoher Ordnung führt dies zu Instabilität und sogar zu chaotischem Verhalten. (Außerdem wird es absurd schwierig, es in echten analogen Schaltungen zu realisieren. Versuchen Sie, sich auf Ordnung 4 oder 6 zu beschränken. (Reduzieren Sie auch das Durchlassband auf etwa 0,4 * Abtastfrequenz.) Das Stabilisieren von Schleifen um Filter sogar der Ordnung 2 kann schwierig sein. Sie also werde wohl auch noch was reparieren müssen.
Wäre der Phasengang von Filtern höherer Ordnung der Grund für die Instabilität des Systems? Meinst du auch die Abtastrate des Passband-FM-Modulators? Wäre das System nicht in der Lage, die modulierte Wellenform korrekt abzutasten, wenn die Abtastrate viel niedriger als die modulierte Frequenz ist?
Machen Sie in Übereinstimmung mit dem, was @BrianDrummond sagte, den Tiefpassfilter nur zu einer 1. oder maximal 2. Ordnung und versuchen Sie, eine konstante Referenz hinzuzufügen ω mit einem Sommer vor dem Schleifenfilter. Es kann auch einige Zeit dauern, bis die PLL eingerastet ist.

Antworten (1)

Sie möchten eine SPEICHERUNG der vorherigen Frequenzinformationen im Schleifenfilter. Geben Sie dem Schleifenfilter eine Zeitkonstante von 10 uSekunden, damit Sie anfangen zu lernen, was davon abhängt.

Ist die Zeitkonstante, auf die Sie sich beziehen, 1 / (Zeta * Wn)?