主要内容

用小波信号去噪器去噪信号

方法的使用小波信号去噪器应用程序去噪一个实值1-D信号。您可以使用应用程序创建和比较去噪信号的多个版本,并将所需的去噪信号导出到MATLAB®工作区。要在工作空间中重现去噪信号,或将相同的去噪参数应用于其他数据,可以生成和编辑MATLAB脚本。这个例子说明了一个可能的工作流。

将数据导入App

将数据加载到MATLAB工作区。的.mat文件包含一个信号的干净版本和一个噪声版本。画出信号的两个版本。

负载fdata情节(fNoisy“b -”)举行情节(fClean的r -“线宽”2)传说(噪声信号的“干净的信号”网格)

图中包含一个轴。坐标轴包含2个line类型的对象。这些对象分别代表噪声信号、清洁信号。

打开小波信号去噪器应用程序。从MATLAB工具条,打开应用程序TAB和下面信号处理与通信,点击小波信号去噪器.你也可以通过输入启动应用程序waveletSignalDenoiser在MATLAB命令提示符。

通过单击将工作区中的噪声信号加载到应用程序中负载信号在工具条中。从可以加载到应用程序中的工作区变量列表中,选择fNoisy并点击好吧

该应用程序导入噪声信号,并立即使用默认参数去噪。

检查导入数据

检查fNoisy情节。该应用程序绘制原始信号,fNoisy,去噪后的信号,fNoisy1,以及信号的粗尺度近似,近似

1.的去噪信号窗格列出去噪信号的所有版本。该列表目前只包含应用程序使用默认名称创建的信号,fNoisy1

  • 您可以通过右键单击它,选择更改默认名称重命名去噪信号从菜单中,在对话框中输入新名称,然后单击好吧

  • 您可以通过右键单击其名称并选择删除去噪信号删除去噪信号从弹出式菜单。

2.的当前小波参数窗格列出应用于创建的去噪参数fNoisy1

3.缩放和平移感兴趣的区域。首先,将光标放在图上,显示一个浮动的调色板。然后从调色板中选择所需的操作。

  • 当您选择放大或缩小时,鼠标滚轮控制缩放。

4.控件中可见的信号fNoisy情节:

  • 点击信号在工具条中,并使用下拉菜单切换原始和去噪信号图的可见性。

  • 点击情节图例中的个别信号。

5.检查系数情节。

红色的系数用于重建去噪后的信号。的当前小波参数Pane表示使用9级小波分解对信号进行去噪。

缩放和平移感兴趣的区域。首先,将光标放在图上,显示一个浮动的调色板。然后从调色板中选择所需的操作。

  • 当您选择放大或缩小时,鼠标滚轮控制缩放,而不是滚动条。

  • 放大、缩小或平移D1系数级别,缩放适用于所有级别。

修改去噪参数

单击小波选项卡。使用此工具条调整和应用所选去噪信号的去噪参数。

列出的值是用于创建去噪信号的参数,fNoisy1.要修改这些设置的值,请从左到右在工具条中工作:

1.在小波下拉菜单,选择Daubechies小波家族,db.因为这个动作:

  • 数量下拉字段更改为1.将值更改为2

  • 控件中立即出现带有蓝色文本的横幅fNoisy图,表示小波参数变化为草稿模式。每当您对信号有任何挂起的更改时,就会出现此文本。方法应用更改时,横幅将消失消除干扰按钮,或从信号导航到另一个信号。

2.从方法下拉菜单,选择通用阈值

3.如果需要定义10级小波分解,可以修改的值水平10

4.通过改变方法通用阈值,规则设置从中位数.将设置更改为

5.点击等级相关

6.通过单击应用这些设置的新值消除干扰

当前小波参数窗格更新了用于去噪信号的新参数,应用程序重新绘制去噪信号,fNoisy1

请注意:所有参数都是上下文相关的。一个参数的可能值取决于另一个参数的当前选定值。你不能做出不兼容的选择。例如,当去噪方法为FDR时,只有可能的阈值规则:hard。类中没有列出其他值规则下拉菜单。

复制去噪信号和比较近似

如果你喜欢一个特定的去噪信号,但想要探索更多的去噪参数,你可以复制它。然后,您可以修改副本的参数,而不会丢失原始参数。

1.从去噪信号窗格中,选择fNoisy1.然后在工具条上,从信号降噪选项卡上,单击重复的

  • 重复的信号,fNoisy1Copy,在去噪信号

  • 中列出了副本的去噪参数当前小波参数

  • 控件中的粗线表示副本fNoisy情节。情节图例更新以包括副本。

2.在小波选项卡,更改水平2,然后按消除干扰.该应用程序使用两级小波分解去噪信号。此外,该应用程序:

  • 重新计算并绘制副本的近似值。

  • 更新系数绘制以显示副本的级别。

因为fNoisy1Copy突出显示,它的近似值被绘制出来。该应用程序总是为当前选择的去噪信号绘制近似值。您可以如下所示演示此行为。在情节图例中,单击fNoisy1而且fNoisy1Copy.两个去噪信号的名称将逐渐消失,并且两个信号不再被绘制。只有原始信号和近似图可见。

图中的虚线表示近似值。因为fNoisy1Copy的突出显示。去噪信号表中,所绘制的近似值是两级小波分解的结果。近似是相对嘈杂的。现在选择fNoisy1在列表中。10级小波分解的近似是不同的。

恢复原始参数

您总是可以通过添加新的去噪信号返回到使用原始的默认参数。的工具条上信号降噪选项卡上,单击添加

  • 加上去噪信号,fNoisy2去噪信号列表。中列出了默认去噪参数当前小波参数

  • 新的去噪信号被绘制成一条粗线。近似的计算和绘制以及。剧情传说更新包括fNoisy2

导出的结果

如果你想对其他数据应用相同的去噪参数,你可以使用该应用程序生成一个脚本,重现所选去噪信号。然后,您可以根据自己的需要修改和保存脚本。为了进行进一步的分析,您可以将去噪信号导出到您的工作区。

导出脚本

点击fNoisy2去噪信号.在信号降噪选项卡中的出口▼菜单,选择生成MATLAB脚本.在MATLAB编辑器中打开一个未命名的脚本,其中包含以下可执行代码:

fNoisy2 = wdenoise(fnoise,9,...“小波”“sym4”...“DenoisingMethod”“贝叶斯...“ThresholdRule”“中值”...“NoiseEstimate”“LevelIndependent”);

wdenoise输入参数由用于创建的值填充fNoisy2.保存脚本,然后运行。这将创建变量fNoisy2在你的工作空间。

加载文件fdataTS.该文件包含100个时间序列的噪声数据。每个时间序列有4096个数据点。数据包含在类型中时间表变量fdataTS

负载fdataTS

将去噪参数应用于fdataTS,通过替换来编辑脚本fNoisyfdataTS而且fNoisy2fdataTSclean.然后运行脚本。

fdataTSclean = wdenoise(fdatat,9,...“小波”“sym4”...“DenoisingMethod”“贝叶斯...“ThresholdRule”“中值”...“NoiseEstimate”“LevelIndependent”);

比较第15个噪声时间序列与其去噪后的版本。

subplot(2,1,1) plot(fdataTS.Time,fdataTS.fTS15) title(“原始时间序列”网格)subplot(2,1,2) plot(fdatatclean . time, fdatatclean . fts15) title(“去噪时间序列”网格)

图包含2个轴。标题为原始时间序列的轴1包含一个类型为line的对象。标题为去噪时间序列的坐标轴2包含一个类型为line的对象。

输出去噪信号

点击fNoisy2去噪信号.然后在工具条上,从信号降噪选项卡,单击上的绿色复选标记出口▼。自fNoisy2在您的工作空间中已经存在,您可以强制导出并覆盖工作空间变量。或者,您可以取消导出,重命名应用程序或工作区变量中的去噪信号,然后再次导出。出现一条横幅,确认信号已导出。要永久删除横幅,请单击X关闭或导入一个新的信号到应用程序。

因为工作空间中有干净的信号,所以计算去噪信号的信噪比。

snrWavelet = -20*log10(norm(abs(fClean- fnoisy2))/norm(fClean))
snrWavelet = 35.9623

如果您有信号处理工具箱™去噪信号使用移动平均滤波器和Savitzky-Golay滤波器,并计算每个去噪信号的信噪比。

fmv =平滑数据(fnoise,“movmean”25);snrMovingAverage = -20*log10(norm(abs(fClean-fmv))/norm(fClean))
snrMovingAverage = 26.0040
fsg =平滑数据(fnoise,“sgolay”25);snrSavitskyGolay = -20*log10(norm(abs(fClean-fsg))/norm(fClean)))
snrSavitskyGolay = 28.8932

你获得了优越的结果去噪与sym4小波。

另请参阅

功能

应用程序

相关的话题