Matlab 擬似ランダム信号生成 (M 系列)
ここでは主に 2 つの方法を説明します。1 つは m ファイル編集を使用する方法、もう 1 つは simulink を使用して生成する方法です。
1.m ファイルで編集します
Np=63;% サイクル期間
delta_T = 1; % クロック ティック
a=1;振幅%
%M シーケンスを初期化します
M(1)=1;
M(2)=0;
M(3)=0;
M(4)=1;
M(5)=1;
M(6)=0;
M_XuLie(Np) = 0;
n = 1 の場合: Np
temp = xor(M(6), M(5));
if(温度 == 0)
M_XuLie(n) = a;
###それ以外###M_XuLie(n) = -a;
###終わり###M(6) = M(5);
M(5) = M(4);
M(4) = M(3);
M(3) = M(2);
M(2) = M(1);
M(1) = 温度;
###終わり###図(4)
階段(M_XuLie)
ylim([-2 2])
イラスト:
1. 原理: コードで書かれているため、原理の表現はあまり直感的ではないかもしれません。原理は後ほどシミュレーションの形式で示します。
2. 周期: N 個のシフト レジスタがある場合、周期は 2^N-1
です。3. サイクルの継続:
r = 3; % サイクル数
u=repmat(M_XuLie,1,r 1);%M シーケンスを入力信号として入力に割り当てます
2. simulink を使用して M シーケンスを生成する
1 1/Z のシフト レジスタを 6 つ選択し、順番に並べ、初期条件を 1
に設定します。2 まずこれら 6 つのシフト レジスタをリンクし、最初の出力を 2 番目の入力に接続し、6 番目のシフト レジスタが OUT に接続されるまで同様に接続します。その後、ここにスコープを接続して信号波形を観察するか、ワークスペースに接続します。 (この場合、ワークスペースに接続されています)。変数名と出力形式を以下のように設定します。
注: マトリックス形式の出力を選択するようにしてください。そうしないと、呼び出しが不便になります。
3 論理演算子を選択し、設定から XOR に調整します。2 入力
4 接続を継続します
5 パラメータを設定します。主にステップ サイズと合計実行時間を設定します (メニューのシミュレーション構成パラメータ設定をクリックします)
6 クリックして実行すると、スコープに表示されるのは m シーケンスです。または、コマンドラインに「stairs(M_seque)
」と入力します。注: 実は、この方法を実際に使用する際には、出力信号が bool 型、つまり論理シーケンスであるため、伝達関数の入力として使用できないといういくつかの問題があります。 m ファイル内にある場合は、double を介して渡すことができます。メソッドが変換されるまで待機します。Simulink には変換用のメソッドがあるはずですが、関連するクエリはまだ作成されていません。
MATLAB で pn シーケンスを生成する方法
for k=1:length(x) gfpretty(x(k,:));end
m擬似ランダム シーケンス Matlab ソース コード
% MATLAB コマンド ウィンドウに次のように入力します:
% fbconnection=[0 1 0 0 1];
% mseq="m"_sequence(fbconnection);
%mseq
関数 mseq="m"_sequence(fbconnection)
n=長さ(fb接続);
N=2^n-1;
register=[ones(1,n-1) 1]; %シフトレジスタの初期状態
mseq(1)=register(n); %mシーケンスの最初の出力シンボル
for i="2:N"
newregister(1)=mod(sum(fbconnection.*register),2);
for j="2:n",
新しいレジスタ(j)=レジスタ(j-1);
###終わり;###登録="新規登録";
mseq(i)=レジスタ(n);
###終わり###m_sequence.mとして保存;
以上がmatlab を使用して広帯域ランダム信号を生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。