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

更新时间:2023-06-08 22:40:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

姓名:朱奇峰 专业:电子与通信工程 方向:数字广播电视技术 学号:103320430109033

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

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

1、设定正选信号的频率为10HZ,抽样频率为100HZ;

2、设定N(0,0.25)高斯白噪声,及噪声功率为0.25W;

3、最后将噪声叠加到正弦信号上,观察其三者时域波形。

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

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

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

1N m 1

rxx(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*randn(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

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

Rx(51-j)=R(j);

end

subplot(3,2,5);

plot(i,Rx,'r');

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

title('白噪声自相关函数图');

ylabel('Rx');

xlabel('x');

grid;

Fy2=fft(Rx); %傅里叶变换得出白噪声功率谱函数

Fy21=fftshift(Fy2); %功率谱校正

f=(0:98)*fs/99-fs/2;

subplot(3,2,6);

plot(f,abs(Fy21),'r');

axis([-50 50 -0.5 1]);

title('白噪声功率谱函数图');

ylabel('F(Rx)');

xlabel('w');

grid;

本文来源:https://www.bwwdw.com/article/4uf1.html

Top