1. 程式人生 > >如何使用Matlab做數字信號處理的仿真1

如何使用Matlab做數字信號處理的仿真1

分享 寫代碼 相關 技術分享 atl any alt 習題 src

例如 第三版數字信號處理P51 -1.14習題時域離散信號的相關性研究x(n)=Asin(ωn)+u(n),其中ω=π/16,u(n)是白噪聲,現要求

⑴、產生均值為0,功率P=0.1的均勻分布白噪聲u(n),求u(n)自相關函數ru(m)

⑵、使x(n)的信噪比10dB決定A的數值並畫出x(n)的圖形及其自相關函數的圖形

(1)

1 新建一個matlab腳本---edit 文件名.m

2 然後再.m後綴的文件中編寫代碼

3 在腳本中調試:直接打文件名+回車鍵就可以調試了,

4 過一會會出現如下最右邊的圖形

edit jaoany.m

p=0.1;N=50000;
u0=rand(1,N);u0=u0-mean(u0);
a=sqrt(p/0.083);u=u0*a;
power_u=dot(u,u)/N
plot(u(1:100));grid on;

技術分享圖片

求自相關函數

>> ru=xcorr(u,100,‘unbiased‘);plot(ru) %求自相關函數

技術分享圖片

⑵、使x(n)的信噪比10dB決定A的數值並畫出x(n)的圖形及其自相關函數的圖形

運行可以直接在>>l後面敲下代碼,不過錯了不好編輯,建議還是建立一個.m的文檔來編寫

n=0:49999;
y=0.5*pi*sin(0.0625*pi*n);
x=y+u;
plot(x(1:100));grid on;

技術分享圖片

求自相關函數>> rx=xcorr(x,100,‘unbiased‘);plot(rx)%求自相關函數

技術分享圖片

如何使用Matlab做數字信號處理的仿真1