文档

小波去噪

控件的实例DyadicAnalysisDyadicSynthesis从信号中去除噪声的系统对象。

介绍

小波在信号去噪中有着重要的应用。经过小波分解后,高频子带包含了大部分的噪声信息和很少的信号信息。在这个例子中,软阈值被应用于不同的子带。高频子带阈值设置为高,低频子带阈值设置为低。

初始化

在处理循环中使用System对象之前创建和初始化它们对于获得最佳性能至关重要。

负载dspwlets;%负载小波系数和噪声信号阈值= [3 2 1 0];

创建一个SignalSource系统对象输出噪声信号。

signalGenerator = dsp.SignalSource(噪声)。的,64);

创建和配置DyadicAnalysisFilterBank系统对象对信号进行小波分解。

dyadicAnalysis = dsp。DyadicAnalysisFilterBank(“CustomLowpassFilter”lod,“CustomHighpassFilter”藏,“NumLevels”3);

创建三个延迟系统对象补偿由小波分量引入的系统延迟。

delay1 = dsp.Delay(3*(length(lod)-1));delay2 = dsp.Delay(length(lod)-1);delay3 = dsp.Delay(7*(length(lod)-1));

创建和配置DyadicSynthesisFilterBank系统对象用于小波重构信号。

dyadicSynthesis = dsp。DyadicSynthesisFilterBank(“CustomLowpassFilter”不要生气,“CustomHighpassFilter”雇佣,“NumLevels”3);

创建时间范围系统对象来绘制原始,去噪和残余信号。

范围= dsp。TimeScope (“名字”小波去噪的“SampleRate”fs,“时间间隔”13岁的“NumInputPorts”3,“LayoutDimensions”(3 - 1),“TimeAxisLabels”“底”“TimeSpanOverrunAction”“滚动”);pos = scope.Position;范围。位置= [pos (1) pos (2) - (0.5 * pos (4)) 0.9 * pos (3) 2 * pos (4)];%设置每次显示的属性范围。ActiveDisplay = 1;范围。Title =输入信号的;范围。ActiveDisplay = 2;范围。Title =的去噪信号;范围。ActiveDisplay = 3;范围。Title =“剩余信号”;

流处理循环

创建一个处理循环来对输入信号进行降噪。这个循环使用上面实例化的System对象。

ii = 1:length(noisdopp)/64 sig = signalGenerator();%输入噪声信号S = dyadicAnalysis(sig);二元分析%分成四个子带S1 = s (1:32);S2 = s (33:48);S3 = s (49:56);S4 = s (57:64);延迟补偿二元分析滤波器S1 = delay1(S1);S2 = delay2(S2);S1 = dspDeadZone(S1, Threshold(1));S2 = dspDeadZone(S2, Threshold(2));S3 = dspDeadZone(S3, Threshold(3));S4 = dspDeadZone(S4, Threshold(4));%双进合成(在连接子带上)S = dyadicSynthesis([S1;S2;S3;S4));Sig_delay = delay3(sig);延迟以补偿分析/合成。Error = sig_delay - S;%绘制结果scope(sig_delay, S, Error);结束释放(范围);

总结

本例使用了信号处理系统对象,如DyadicAnalysisFilterBankDyadicSynthesisFilterBank使用用户指定的阈值对噪声信号进行降噪。“输入信号”窗口显示原始带噪信号,“去噪信号”窗口显示噪声抑制后的信号,“残留信号”窗口显示原始信号与去噪信号之间的误差。

这个话题有帮助吗?