Ich versuche, einen Phasenregelkreis in Simulink von MATLAB zu entwerfen. Dazu folge ich diesem grundlegenden Blockdiagrammdesign:
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:
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)
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)
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: 0,25 Sekunden der Ausgabe von PLL:
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.
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.
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:
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:
Butterworth LPF-Filterbestellung 19:
Butterworth LPF-Filterbestellung 27:
Butterworth LPF-Filterbestellung 35:
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.
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.
user_1818839
Zearia
ein besorgter Bürger