如何使用Matlab做数字信号处理的仿真1

例如 第三版数字信号处理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;

如何使用Matlab做数字信号处理的仿真1

 求自相关函数

>> ru=xcorr(u,100,'unbiased');plot(ru) %求自相关函数

如何使用Matlab做数字信号处理的仿真1

 

 ⑵、使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;

 

如何使用Matlab做数字信号处理的仿真1

 求自相关函数>> rx=xcorr(x,100,'unbiased');plot(rx)%求自相关函数

如何使用Matlab做数字信号处理的仿真1