您的当前位置:首页正文

MATLAB环境下的正弦信号及高斯白噪声仿真程序说明

2022-07-14 来源:汇智旅游网
姓名:朱奇峰 专业:电子与通信工程 方向:数字广播电视技术 学号:103320430109033

MATLAB环境下的正弦信号及高斯白噪声仿真程序说明

一、信号的产生及时域观察

1、设定正选信号的频率为10HZ,抽样频率为100HZ; 2、设定N(0,0.25)高斯白噪声,及噪声功率为0.25W; 3、最后将噪声叠加到正弦信号上,观察其三者时域波形。

二、信号频谱及白噪声功率谱的求解与观察

1、对原正弦信号直接进行FFT,得出其频谱;

2、求白噪声的自相关函数,随机序列自相关函数的无偏估计公式为:

1Nm1rxx(m)x(n)x(nm) 0mN1 Nmn0^rxx(m)rxx(m) 0mN1

对所求自相关函数进行FFT变换,求的白噪声的功率谱函数。

^^三、仿真结果:

附源程序代码:

fs=100; fc=10;

x=(0:1/fs:2); n=201;

y1=sin(2*pi*fc*x); %原正弦信号,频率为10 a=0;b=0.5; %均值为a,方差为b^2 subplot(3,2,1); plot(x,y1,'r');

title('y=sin(20pi*x)'); ylabel('y');

xlabel('x/20pi'); grid;

y2=a+b*rand(1,n); %均匀白噪声 subplot(3,2,2); plot(x,y2,'r');

title('N(0,0.25)的均匀白噪声'); ylabel('y');

xlabel('x/20pi'); grid;

y=y1+y2; %加入噪声之后的信号 subplot(3,2,3); plot(x,y,'r');

title('叠加了均匀白噪声的sinx'); ylabel('y');

xlabel('x/20pi'); grid;

FY=fft(y); %傅里叶变换得出频谱函数 FY1=fftshift(FY); %频谱校正 f=(0:200)*fs/n-fs/2; subplot(3,2,4); plot(f,abs(FY1),'r'); title('函数频谱图'); ylabel('F(jw)'); xlabel('w'); grid;

%求均匀白噪声的自相关函数 m=50;

i=-0.49:1/fs:0.49;

for j=1:m

R1(j)=sum(y2(1:n-j-1).*y2(j:199),2)/(n-j);%无偏自相关函数的估计 R1x(49+j)=R1(j); R1x(51-j)=R1(j); end

subplot(3,2,5); plot(i,R1x,'r');

%plot(leg*1/fs,R1x,'r');

title('白噪声自相关函数图'); ylabel('R1x'); xlabel('x'); grid;

Fy2=fft(R1x); %傅里叶变换得出白噪声功率谱函数 Fy21=fftshift(Fy2); %功率谱校正 f=(0:98)*fs/99-fs/2; subplot(3,2,6);

plot(f,abs(Fy21),'r'); axis([-50 50 -0.5 6]);

title('白噪声功率谱函数图'); ylabel('F(R1x)'); xlabel('w'); grid;

%求正弦波加均匀白噪声的自相关函数 m=50;

i=-0.49:1/fs:0.49; for j=1:m

R2(j)=sum(y(1:n-j-1).*y(j:199),2)/(n-j);%无偏自相关函数的估计 R2x(49+j)=R2(j); R2x(51-j)=R2(j); end

subplot(3,2,5); plot(i,R2x,'r');

%plot(leg*1/fs,R2x,'r');

title('正弦波加白噪声自相关函数图'); ylabel('R2x'); xlabel('x'); grid;

Fy2=fft(R2x); %傅里叶变换得出正弦波加白噪声功率谱函数 Fy21=fftshift(Fy2); %功率谱校正 f=(0:98)*fs/99-fs/2; subplot(3,2,6);

plot(f,abs(Fy21),'r'); axis([-50 50 -0.5 6]);

title('白噪声功率谱函数图'); ylabel('F(R2x)'); xlabel('w'); grid;

因篇幅问题不能全部显示,请点此查看更多更全内容