主要内容

小波去噪

这个例子展示了如何使用DyadicAnalysisDyadicSynthesis用于去除信号噪声的系统对象。

介绍

小波在信号去噪中有着重要的应用。小波分解后的高频子带中包含了大部分的噪声信息和少量的信号信息。在本例中,对不同的子带应用了软阈值。高频子带阈值设置较高,低频子带阈值设置较低。

初始化

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

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

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

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

创建并配置DyadicAnalysisFilterBank系统对象为小波分解信号。

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

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

delay1 = dsp.Delay(3 *(长度(lod) 1));delay2 = dsp.Delay(长度(lod) 1);delay3 = dsp.Delay(7 *(长度(lod) 1));

创建并配置DyadicSynthesisFilterBank系统对象为信号的小波重构。

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

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

范围= timescope (“名字”小波去噪的...“SampleRate”fs,...“TimeSpanSource”“属性”...“时间间隔”13岁的...“LayoutDimensions”(3 - 1),...“TimeAxisLabels”“底”);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(团体);%二元分析%分成四个子带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_delay - S;%绘制结果范围(sig_delay、年代、错误);结束释放(范围);

总结

这个例子使用了信号处理系统对象,例如DyadicAnalysisFilterBankDyadicSynthesisFilterBank使用用户指定的阈值去噪噪声信号。输入信号窗口显示原始噪声信号,去噪信号窗口显示噪声抑制后的信号,剩余信号窗口显示原始信号与去噪信号之间的误差。