最后拟合频率时怎么去噪呢
线性调频信号为X,加入高斯白噪声N,最终处理信号为Y,信噪比为-3dB。经emd(Y)后得到IMF,并进行Hilbert变换求其瞬时频率分布如下图所示,黑色线是理想要得到的调频线。
但是因为信噪比比较低,信号都淹没在噪声里了,请问高手,有没有什么比较好的处理方式?
我直接数据平滑处理function z = smooth_Sig(x)
a = ones(1,5)/5;
z = filtfilt(a,1,x);
没什么用处的啊
[ 本帖最后由 lj2tt 于 2009-2-24 12:49 编辑 ] 在EMD之前先去噪,常用的有小波去噪,然后再EMD。
回复 沙发 songzy41 的帖子
你好,我在论坛上找了2个程序,可是它们的去噪效果都不好啊,一个的去噪程序是t = ';
N=512;
T=1;
f0=20;
E = 1; %能量
snr_in_dB=-3;
snr = 10^(snr_in_dB/10); %信噪比
sigma = sqrt(E/(2*snr)); %噪声方差
x =E*cos(2*pi*(f0*t+K*t.^2/2));
x=x';
Noise = sigma * randn(1,N);%产生均值为0,方差为1的1*N的标准高斯分布的随机数
Noise = Noise * sigma/std(Noise);
ave_noise = mean(Noise);
while abs(ave_noise) > 0.01
Noise=1*sigma*randn(1,N);
Noise=Noise*sigma/std(Noise);
ave_noise = mean(Noise);
end
clear ave_noise
y=x+Noise;
%小波分解
=wavedec(y,4,'db4');
=detcoef(c,l,);
ca4=appcoef(c,l,'db4',4);
a4=wrcoef('a',c,l,'db4',4);
d4=wrcoef('d',c,l,'db4',4);
d3=wrcoef('d',c,l,'db4',3);
d2=wrcoef('d',c,l,'db4',2);
d1=wrcoef('d',c,l,'db4',1);
%不需要的系数置零
% caa4=zeros(size(ca4));
%消噪后信号重构,并画图
cl=; %
s2=waverec(cl,l,'db3');
figure(1);
subplot(2,1,1)
plot(t,x);
subplot(2,1,2)
plot(t,y,'g');
hold on
plot(t,s2,'r');title('消噪后重构信号');grid on;
[ 本帖最后由 lj2tt 于 2009-2-26 16:51 编辑 ] 第二种方法是采用了http://forum.vibunion.com/forum/viewthread.php?tid=48300&pid=402982&page=1&extra=page%3D1%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D188#pid402982这里二楼的程序,只是把 cc=1.7; %_______用以设定停止迭代的 噪声能量阈值,需要根据情况调节。________%这里调成了0.1~0.4之间。但是效果依然不好
回复 沙发 songzy41 的帖子
请问大家能不能针对我这种线性调频信号,信噪比相对低的情况提供有效的小波去噪的程序了,谢谢先~
页:
[1]