Matlab Pseudozufallssignalerzeugung (M-Sequenz)
Hier werden zwei Hauptmethoden erläutert: Eine besteht darin, m-Dateien zu bearbeiten, die andere darin, Simulink zum Generieren zu verwenden
1. Mit m-Datei bearbeiten
Np=63;% Zyklusperiode
delta_T = 1; % Uhr tickt
a=1;% Amplitude
%M-Sequenz initialisieren
M(1)=1;
M(2)=0;
M(3)=0;
M(4)=1;
M(5)=1;
M(6)=0;
M_XuLie(Np) = 0;
für n = 1 : Np
temp = xor(M(6), M(5));
if(temp == 0)
M_XuLie(n) = a;
sonst
M_XuLie(n) = -a;
Ende
M(6) = M(5);
M(5) = M(4);
M(4) = M(3);
M(3) = M(2);
M(2) = M(1);
M(1) = temp;
Ende
Abbildung(4)
Treppe(M_XuLie)
ylim([-2 2])
Beschreibung:
1. Prinzip: Da es im Code geschrieben ist, ist der Ausdruck des Prinzips möglicherweise nicht sehr intuitiv. Das Prinzip wird später in Form einer Simulation angegeben
2. Periode: Wenn es N Schieberegister gibt, beträgt die Periode 2^N-13. Fortsetzung des Zyklus:
r = 3; % Anzahl der Zyklen
u=repmat(M_XuLie,1,r+1);% weist dem Eingang die M-Sequenz als Eingangssignal zu
2. Verwenden Sie Simulink, um eine M-Sequenz zu generieren
1 Wählen Sie 6 Schieberegister, also 1/Z-Register. Ordnen Sie sie der Reihe nach an und stellen Sie die Anfangsbedingungen auf alle 1 ein
2 Verknüpfen Sie zunächst diese 6 Schieberegister, verbinden Sie den ersten Ausgang mit dem zweiten Eingang usw., bis das sechste mit OUT verbunden ist, und schließen Sie dann hier ein Oszilloskop an, um die Signalwellenform zu beobachten, oder verbinden Sie es mit dem Arbeitsbereich (in). Dieses Beispiel ist mit dem Arbeitsbereich verbunden. Legen Sie den Variablennamen und das Ausgabeformat wie folgt fest.
Hinweis: Versuchen Sie, die Ausgabe in Matrixform zu wählen, da der Aufruf sonst umständlich ist.
3 Wählen Sie einen logischen Operator aus und stellen Sie ihn in den Einstellungen auf XOR ein, 2 Eingänge
4 Weiter verbinden
5 Parameter einstellen, hauptsächlich Schrittgröße und Gesamtlaufzeit einstellen (klicken Sie auf das Menü Simulation-Konfigurationsparametereinstellungen)
6 Klicken Sie zum Ausführen. Was im Bereich angezeigt wird, ist die m-Sequenz! Oder geben Sie „stairs(M_seque)
“ in die Befehlszeile ein
Hinweis: Tatsächlich gibt es bei der tatsächlichen Verwendung dieser Methode einige Probleme, das heißt, das Ausgangssignal ist vom Typ Bool, also eine logische Sequenz, und kann nicht als Eingabe der Übertragungsfunktion verwendet werden In einer M-Datei kann es über Double und andere Methoden zur Konvertierung verwendet werden. Simulink sollte über eine Methode zum Konvertieren verfügen, die entsprechende Abfrage wurde jedoch noch nicht durchgeführt.So generieren Sie eine PN-Sequenz in Matlab
m Pseudozufallssequenz-Matlab-Quellcode
%5 Bestell-M-Sequenz
% Geben Sie im MATLAB-Befehlsfenster Folgendes ein:
% fbconnection=[0 1 0 0 1];
% mseq="m"_sequence(fbconnection);
% mseq
Funktion mseq="m"_sequence(fbconnection)
n=Länge(fbconnection);
N=2^n-1;
register=[ones(1,n-1) 1]; %Der Anfangszustand des Schieberegisters
mseq(1)=register(n); %mDas erste Ausgabesymbol der Sequenz
für i="2:N"
newregister(1)=mod(sum(fbconnection.*register),2);
für j="2:n",
newregister(j)=register(j-1);
Ende;
register="newregister";
mseq(i)=register(n);
Ende
Speichern als m_sequence.m;
Das obige ist der detaillierte Inhalt vonSo erzeugen Sie mit Matlab breitbandige Zufallssignale. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!