自相关法信号检测
根据要求我们设定:
1、余弦信号的频率为 2HZ,抽样频率为 100HZ;
2、设定 N(0,0.25)高斯白噪声,及噪声功率为 0.25W;
求 Y(t)的自相关函数我们可得到:
RY()=RS()+RN()+2RSN()
因为 S(t)与平稳高斯噪声 N(t)相互独立。所以 RSN()=0
并且 RS()=a*a/2*cos(ω+θ)
RN()=N0/2
)(
信噪比 s=a*a/(2*0.25),其中 a 为原信号的振幅
理论上我们可以看出 Y(t)的自相关函数的图像在零点有一个冲激,
其他都与原信号的自相关函数相一致,所以通过观察 Y(t)的自相关
函数的图像我们可以检测出原余弦信号的存在。
在 matlab 仿真中得到了六个图:
1、 y=a*cos(2*pi*fc*x+p)
2、 N(0,0.25)的高斯白噪声
3、 叠加了高斯白噪声的 cosx
4、 原余弦的信号自相关函数
5、 高斯白噪声的自相关函数
6、 叠加了高斯白噪声后的自相关函数
通过改变振幅 a 的大小来改变信噪比的大小
当信噪比 s=0.005 时:
当信噪比 s=0.02 时:
当信噪比 s=0.5 时:
由以上三个 matlab 仿真图形,通过改变信噪比的大小最后检测出余
弦信号。
代码:
fs=100;
fc=2;
a=0.1;
s=a*a/(2*0.25);
%信噪比为 s
p=unifrnd(0,2*pi);
x=(0:1/fs:2);
n=201;
y1=a*cos(2*pi*fc*x+p); %原余弦信号,频率为 2
a=0;b=0.5; %均值为 a,方差为 b^2
subplot(3,2,1);
plot(x,y1,'r');
title('y=a*cos(2*pi*fc*x+p)');
ylabel('y');
xlabel('x/20pi');
grid;
y2=a+b*rand(1,n); %高斯白噪声
subplot(3,2,2);
plot(x,y2,'b');
title('N(0,0.25)的高斯白噪声');
ylabel('y');
xlabel('x/20pi');
grid;
y=y1+y2; %加入噪声之后的信号
subplot(3,2,3);
plot(x,y,'c');
title('叠加了高斯白噪声的 cosx');
ylabel('y');
xlabel('x/20pi');
grid;
>> [c,d]=xcorr(y1,'unbiased');
subplot(3,2,4);
plot(d*0.01,c)
title('原信号自相关函数');
>> [e,f]=xcorr(y2,'unbiased');
subplot(3,2,5);
plot(f*0.01,e)
title('高斯白噪声的自相关函数');
>> [j,m]=xcorr(y,'unbiased');
subplot(3,2,6);
plot(m*0.01,j)
title('叠加了高斯白噪声后的自相关函数');