怎樣用matlab產生寬頻隨機訊號

WBOY
發布: 2024-01-25 09:54:06
轉載
567 人瀏覽過

怎樣用matlab產生寬頻隨機訊號

怎麼用matlab產生寬頻隨機訊號

#Matlab 偽隨機訊號的產生(M序列)

這裡主要說明兩種方法,一是使用m檔編輯,二是用simulink產生

一、用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;

for n = 1 : Np

temp = xor(M(6), M(5));

if(temp == 0)

M_XuLie(n) = a;

else

M_XuLie(n) = -a;

end

M(6) = M(5);

M(5) = M(4);

M(4) = M(3);

M(3) = M(2);

M(2) = M(1);

M(1) = temp;

end

figure(4)

stairs(M_XuLie)

ylim([-2 2])

說明:

1.原理:由於是用程式碼書寫,可能原理表達不是很直觀,後面會以模擬形式給出原理

2.週期:若有N個移位暫存器,那麼週期為2^N-1

3.週期的延拓:

r = 3; % 週期數

u=repmat(M_XuLie,1,r 1);%將M序列賦給輸入,作為輸入訊號

二、使用simulink產生M序列

1 選6個移位暫存器,就是Z分之1那個 依序排列好,初始條件(initial conditions)全都設為1

2 先把這6個移位暫存器連結起來第一個輸出連第二個輸入,以此類推到第六個接OUT,out這裡再接一個scope以便觀察訊號波形或接到工作空間(本例是接到工作空間中)。依照下列方法設定變數名稱和輸出格式。

注意:盡量選矩陣形式輸出,否則呼叫不方便。

3 選取一個logical operator,並從設定調成XOR,2輸入端

4 繼續連線

5 設定參數,主要是設定步長和總運行時間(點選選單simulation-configuration parameters設定)

6 點選執行 scope中顯示的便是m序列!或在命令列中輸入stairs(M_seque)

註:事實上,用這種方法在實際使用上存在一些問題,就是輸出訊號是bool型的,即是邏輯序列,無法作為傳遞函數的輸入使用,如果是在m檔中可以透過double等方法進行轉換,simulink應該是有方法轉換的但還未做相關查詢。

matlab中如何產生pn序列

for k=1:length(x) gfpretty(x(k,:));end

m偽隨機序列Matlab原始碼

%5階m序列

% 在MATLAB指令視窗輸入以下:

% fbconnection=[0 1 0 0 1];

% mseq="m"_sequence(fbconnection);

% mseq

#function mseq="m"_sequence(fbconnection)

n=length(fbconnection);

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",

newregister(j)=register(j-1);

end;

register="newregister";

mseq(i)=register(n);

end### ###儲存為m_sequence.m;####

以上是怎樣用matlab產生寬頻隨機訊號的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:docexcel.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!