lj2tt 发表于 2009-2-24 12:47

最后拟合频率时怎么去噪呢

线性调频信号为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 编辑 ]

songzy41 发表于 2009-2-25 14:23

在EMD之前先去噪,常用的有小波去噪,然后再EMD。

lj2tt 发表于 2009-2-26 16:48

回复 沙发 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 编辑 ]

lj2tt 发表于 2009-2-26 19:07

第二种方法是采用了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之间。但是效果依然不好

lj2tt 发表于 2009-2-26 19:09

回复 沙发 songzy41 的帖子

请问大家能不能针对我这种线性调频信号,信噪比相对低的情况提供有效的小波去噪的程序了,谢谢先~
页: [1]
查看完整版本: 最后拟合频率时怎么去噪呢