【问题标题】:denosing signal using soft and hard thresholding使用软硬阈值对信号进行去噪
【发布时间】:2014-07-03 06:40:37
【问题描述】:

让我们考虑下面的代码

>> fs=100;
>> N=1000;
>> t=0:1/fs:N-1;
>> y=10*sin(2*pi*100*t)+0.5*randn(size(t));
>> plot(y)
>> plot(t,y)
>> 

我应用了以下阈值方法 thr = 0.4;

% 执行硬阈值。 ythard = wthresh(y,'h',thr);

但是我看不出有什么区别,也是软阈值法,代码都有

ythard = wthresh(y,'h',thr);
>> plot(ythard)
>> ytsoft = wthresh(y,'s',thr);
>> plot(ytsoft)

那么有什么问题吗?我也在没有计算小波系数的情况下对时域进行了阈值化,它们是否彼此相等?我的意思是如果我将生成小波系数并对该系数进行阈值化,它们会给我相同的结果吗?谢谢前进

【问题讨论】:

    标签: matlab signal-processing wavelet


    【解决方案1】:

    wthresh 函数会将低于阈值的所有值设置为零。看起来你的大部分信号都在 0.4 以上,所以它没有太大的影响。这就是(硬)阈值为 1.3 时的样子:

    小波变换类似于加窗傅里叶变换。它将输入信号分解为子信号,这些子信号基本上表示原始信号的不同频率分量。优点是它保留了基于时间的信息,并且可以适应数据。然后可以对这些子信号进行阈值处理并重新组合在一起,以对原始信号进行频率目标去噪(与基于幅度的阈值处理相反)。因此,要回答您的问题,不,它们不会相同。

    这是一个相当大的话题,可能需要一些时间来理解它。我建议从here 开始了解小波部分,并从here 开始了解 Matlab 中的小波入门。 Here 是一篇关于去噪的精彩文章,但我强烈建议您先打好理论基础。

    小波去噪可能非常挑剔,并且有很多参数可供试验。例如,使用哪个小波,使用哪个阈值策略,分解到多少级别等。基本上你需要玩很多。

    快速实现它的最简单方法是使用wden。这是从docs 中提取的示例:

    % Set signal to noise ratio and set rand seed. 
    snr = 3; init = 2055615866; 
    
    % Generate original signal and a noisy version adding 
    % a standard Gaussian white noise. 
    [xref, x] = wnoise(3, 11, snr, init);
    
    % De-noise noisy signal using soft heuristic SURE thresholding 
    % and scaled noise option, on detail coefficients obtained 
    % from the decomposition of x, at level 5 by sym8 wavelet. 
    lev = 5;
    xd = wden(x, 'heursure', 's', 'one', lev, 'sym8');
    
    % Plot signals. 
    subplot(611), plot(xref), axis([1 2048 -10 10]); 
    title('Original signal'); 
    subplot(612), plot(x), axis([1 2048 -10 10]); 
    title(['Noisy signal - Signal to noise ratio = ',... 
    num2str(fix(snr))]); 
    subplot(613), plot(xd), axis([1 2048 -10 10]); 
    title('De-noised signal - heuristic SURE');
    

    结果:

    【讨论】:

    • 小波如何实现?请在 matlab 中显示
    • 那么 wden 函数可以做去噪吗?
    • 如果我想指出阈值水平呢?
    • 是的 wden 为您做所有事情……阈值会根据数据自适应,请查看示例链接中的选项。通用阈值是一种流行的选择。
    猜你喜欢
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 2014-04-25
    • 2018-12-24
    相关资源
    最近更新 更多