matlab利用id函數產生m序列_第1頁
matlab利用id函數產生m序列_第2頁
matlab利用id函數產生m序列_第3頁
matlab利用id函數產生m序列_第4頁
matlab利用id函數產生m序列_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、之前不懂系統(tǒng)辨識的理論,輸入信號隨便用了一個階躍信號,后來發(fā)現階躍信號其實很菜,不足以激勵起系統(tǒng)的全部動態(tài)特性,額,實驗數據立馬弱爆了。M序列是工程中常用的輸入信號,它的性質類似于白噪聲,而白噪聲是理論上最好的輸入信號,可見M序列的價值。下面介紹M序列的matlab產生方法,看到很多論壇產生M序列的程序復用性不高,而matlab就提供了產生M序列的專門函數,這里嘗試一下。idinput函數產生系統(tǒng)辨識常用的典型信號。格式u = idinput(N,type,band,levels)u,freqs = idinput(N,sine,band,levels,sinedata)N產生的序列的長度,如

2、果N=N nu,則nu為輸入的通道數,如果N=P nu M,則nu指定通道數,P為周期,M*P為信號長度。默認情況下,nu=1,M=1,即一個通道,一個周期。Type指定產生信號的類型,可選類型如下rgs高斯隨機信號rbs (默認)二值隨機信號prbs二值偽隨機信號(M序列)sine正弦信號和Band指定信號的頻率成分。對于rgs、rbs、sine,band = wlow, whigh指定通帶的范圍,如果是白噪聲信號,則band=0, 1,這也是默認值。指定非默認值時,相當于有色噪聲。對于prbs,band=0, B,B表示信號在一個間隔1/B(時鐘周期)內為恒值,默認為0, 1。Levels

3、指定輸入的水平。Levels=minu, maxu,在type=rbs、prbs、sine時,表示信號u的值總是在minu和maxu之間。對于type=rgs,minu指定信號的均值減標準差,maxu指定信號的均值加標準差,對于0均值、標準差為1的高斯白噪聲信號,則levels=-1, 1,這也是默認值。說明對于PRBS信號,如果M1,則序列的長度和PRBS周期會做調整,使PRBS的周期為對應一定階數的最大值(即2n-1,n為階數);如果M=1,PRBS的周期是大于N的相應階數的值。在多輸入的情形時,信號被最大平移,即P/nu為此信號能被估計的模型階次的上界。上面的意思可如下理解:對于M=1時

4、,ms = idinput(12, prbs, 0 1, 0 1);figurestairs(ms)title(M序列)ylim(-0.5 1.5)結果如下同時,matlab給出如下警告Warning: The PRBS signal delivered is the 12 first values of a full sequence of length 15.即函數的輸出為周期為15(大于12的第一個2n-1的值)PRBS信號的前12個值組成的序列。如ms = idinput(15, prbs, 0 1, 0 1);figurestairs(ms)title(M序列)ylim(-0.5 1

5、.5)可以看到指定12時的序列為指定15時的序列的前面部分。對于M1時,ms = idinput(12,1,2, prbs, 0 1, 0 1);figurestairs(ms)title(M序列)ylim(-0.5 1.5)結果如下Matlab給出的響應警告為Warning: The period of the PRBS signal was changed to 7. Accordingly, the length of thegenerated signal will be 14.對于正弦信號和的產生,貌似用的不多,語法還挺復雜,等用的時候再看吧。方法產生rgs信號的帶通信號使用的是一個

6、8階巴特沃斯濾波器,使用idfilt做的非因果濾波,這個是可信賴的方法。對于rbs信號,使用的是相同的濾波器,但是是在二值化之前,這意味著頻率成分并不保證是精確的。產生高斯隨機信號clcclear allclose all% 高斯隨機信號u = idinput(1000, rgs);figurestairs(u)title(高斯隨機信號)figurehist(u, -4:4)title(高斯隨機信號的分布)產生二值隨機信號clcclear allclose all% 二值隨機信號u = idinput(100, rbs);figurestairs(u)title(二值隨機信號)ylim(-1.

7、5 1.5)產生二值偽隨機信號(M序列)合理的選擇輸入激勵信號,能有效的激勵起系統(tǒng)的動態(tài)信號。白噪聲的平穩(wěn)譜的性質決定了它是一個很好的輸入信號,但它在工程中不易實現,而M序列具有近似白噪聲的性質,可保證良好的辨識精度。clcclear allclose all% 二值偽隨機信號(M序列)n = 8; % 階次p = 2n -1; % 循環(huán)周期ms = idinput(p, prbs);figurestairs(ms)title(M序列)ylim(-1.5 1.5)結果驗證M序列的性質如下 -1和1的個數差1sum(ms=1) % 1的個數sum(ms=-1) % -1的個數ans =127an

8、s =128 存在直流分量mean(ms) % 直流分量ans =-0.0039 相關函數a = zeros(length(ms)*10, 1); % 采樣for i = 1:10a(i:10:end) = ms;endc = xcorr(a, coeff); % 自相關函數figureplot(c)title(相關函數)自相關函數接近于函數。 譜密度figurepwelch(a) % 譜密度說明M序列不含基頻的整數倍的頻率成分。產生逆M序列譜分析表明,M序列含有直流成分,將造成對辨識系統(tǒng)的“凈擾動”,這通常不是所希望的。而逆M序列將克服這一缺點,是一種比M序列更為理想的偽隨機碼序列。clcc

9、lear allclose all% 二值偽隨機信號(M序列)n = 8; % 階次p = 2n -1; % 循環(huán)周期ms = idinput(p, prbs, , 0 1);figurestairs(ms)title(M序列)ylim(-0.5 1.5)% 產生逆M序列s = 0;ims = zeros(2*p, 1);mstemp = ms; ms;for i = 1:2*pims(i) = xor(mstemp(i), s);s = not(s);endims(ims=0) = -1;figurestairs(ims)title(逆M序列)ylim(-1.5 1.5) -1和1的個數差1sum(ims=1) % 1的個數sum(ims=-1) % -1的個數ans =255ans =255 無直流分量m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論