您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > MATLAB环境下的正弦信号及高斯白噪声仿真程序说明
姓名:朱奇峰专业:电子与通信工程方向:数字广播电视技术学号:103320430109033MATLAB环境下的正弦信号及高斯白噪声仿真程序说明一、信号的产生及时域观察1、设定正选信号的频率为10HZ,抽样频率为100HZ;2、设定N(0,0.25)高斯白噪声,及噪声功率为0.25W;3、最后将噪声叠加到正弦信号上,观察其三者时域波形。二、信号频谱及白噪声功率谱的求解与观察1、对原正弦信号直接进行FFT,得出其频谱;2、求白噪声的自相关函数,随机序列自相关函数的无偏估计公式为:1^01()()()NmxxnrmxnxnmNm01mN^^()()xxxxrmrm01mN对所求自相关函数进行FFT变换,求的白噪声的功率谱函数。三、仿真结果:附源程序代码:fs=100;fc=10;x=(0:1/fs:2);n=201;y1=sin(2*pi*fc*x);%原正弦信号,频率为10a=0;b=0.5;%均值为a,方差为b^2subplot(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;forj=1:mR1(j)=sum(y2(1:n-j-1).*y2(j:199),2)/(n-j);%无偏自相关函数的估计R1x(49+j)=R1(j);R1x(51-j)=R1(j);endsubplot(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([-5050-0.56]);title('白噪声功率谱函数图');ylabel('F(R1x)');xlabel('w');grid;%求正弦波加均匀白噪声的自相关函数m=50;i=-0.49:1/fs:0.49;forj=1:mR2(j)=sum(y(1:n-j-1).*y(j:199),2)/(n-j);%无偏自相关函数的估计R2x(49+j)=R2(j);R2x(51-j)=R2(j);endsubplot(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([-5050-0.56]);title('白噪声功率谱函数图');ylabel('F(R2x)');xlabel('w');grid;clc;clearall;closeall;fs=100;%采样频率100hzN=1000;%采样点数t=(0:1:N-1)/fs;f=10;%正弦信号频率10hzs0=sin(2*pi*f*t);%正弦信号am=max(abs(s0));%%-------加噪方案1(由加噪后信噪比确定高斯白噪声)-----snr=5;%设定加入白噪声后的信噪比为5db(均值为0)Pv=(am/(10^(snr/20)))^2;%噪声方差%%--------------------------------------------------%%-------加噪方案2(由噪声方差确定高斯白噪声)--------%%Pv=3;%设定白噪声方差(均值为0)%%snr=20*log10(am/(sqrt(Pv)));%求信噪比%%%%---------------------------------------------------%%%---------加噪声-------------v=rand(1,N);v=v*sqrt(Pv);%白噪声s=s0+v;%信号加噪声%%----------信号画图-------------figure(1)subplot(3,1,1),plot(s0);title('原始信号')subplot(3,1,2),plot(s);title(['加噪信号信噪比=',num2str(snr),'dB.噪声方差=',num2str(Pv)])s1=detrend(s);%去趋势ffs=abs(fft(s1));ffs=ffs*2/N;%频谱%%ffs=ffs.^2;%功率谱subplot(3,1,3),plot(ffs(1:N/2));title('加噪信号FFT')
本文标题:MATLAB环境下的正弦信号及高斯白噪声仿真程序说明
链接地址:https://www.777doc.com/doc-2887593 .html