这个例子展示了如何使用小波信号降噪应用程序去噪一个实值一维信号。您可以创建和比较多个版本的去噪信号与应用程序,并导出所需的去噪信号到您的MATLAB®工作空间。为了在您的工作空间中再现去噪信号,或者将相同的去噪参数应用于其他数据,您可以生成并编辑一个MATLAB脚本。这个示例演示了一种可能的工作流。
将数据加载到MATLAB工作区中。的.mat
文件包含一个信号的干净版本和一个噪声版本。把两个版本的信号都画出来。
负载fdata情节(fNoisy“b-”)持有在…上地块(fClean,的r -,“线宽”(2)图例(噪声信号的,“清洁信号”网格)在…上
打开小波信号去噪应用程序。从MATLAB Toolstrip中,打开应用程序选项卡,在信号处理与通信,点击小波信号降噪.你也可以通过输入来启动应用程序小波信号发生器
在MATLAB命令提示符处。
通过单击将工作区中的嘈杂信号加载到应用程序中负载信号在将来发布。从可以加载到应用程序的工作区变量列表中,选择fNoisy
并点击好啊.
该应用程序导入噪声信号,并立即使用默认参数去噪。
检查fNoisy情节。应用程序绘制出原始信号,fNoisy
,去噪后的信号,Fnosiy1
,以及信号的粗尺度近似,近似
.
一,去噪信号窗格列出了去噪信号的所有版本。该列表当前仅包含应用程序使用默认名称创建的信号,Fnosiy1
.
您可以通过右键单击默认名称,选择去噪信号从菜单中,在对话框中输入新名称,然后单击好啊.
您可以通过右键单击其名称并选择来删除去噪信号删除去噪信号从弹出菜单。
2.的当前小波参数窗格列出应用于创建的去噪参数Fnosiy1
.
3.缩放和平移感兴趣的区域。首先,将光标放在情节上以显示浮动的调色板。然后从面板中选择所需的操作。
当您选择放大或缩小时,鼠标滚轮控制放大。
4.切换哪些信号是可见的fNoisy情节:
点击信号工具栏中的▼,并使用下拉菜单切换原始信号图和去噪信号图的可见性。
单击绘图图例中的单个信号。
5.检查系数情节。
红色的系数用于重建去噪信号。的当前小波参数窗格表示使用9级小波分解去噪信号。
缩放和平移感兴趣的区域。首先,将光标放在绘图上以显示浮动调色板。然后从调色板中选择所需的操作。
当您选择放大或缩小时,鼠标滚轮控制缩放而不是滚动条。
当你放大,缩小,或者平移D1
系数级,缩放适用于所有级别。
单击小波选项卡。使用此工具条调整和应用降噪参数的选择去噪信号。
列出的值是用于创建去噪信号的参数,Fnosiy1
.要修改这些设置的值,在工具条中从左到右工作:
1.在小波下拉菜单,选择Daubechies小波族,db
.因为这个动作:
的数量下拉字段更改为1
.将值更改为2
.
带有蓝色文本的横幅立即出现在fNoisy图,表示小波参数变化处于草图模式。当您对信号有任何未决的更改时,此文本就会出现。属性应用更改时,横幅会消失消除干扰按钮,或从该信号导航到另一个信号。
2.从方法下拉菜单,选择通用阈值
.
3.定义一个10级小波分解,改变的值水平来10
.
4.通过改变方法来通用阈值
,规则设置自动从中位数
来软
.将设置更改为硬
.
5.点击等级相关.
6.通过单击应用这些设置的新值消除干扰.
的当前小波参数窗格更新用于去除信号的新参数,应用程序重新发送去除信号,Fnosiy1
.
请注意:所有参数都是上下文相关的。一个参数的可能值可以依赖于另一个参数的当前选择值。你不能做出不相容的选择。例如,当去噪方法是FDR时,只有可能的阈值规则:hard。在此实例中,没有列出其他值规则下拉菜单。
如果您喜欢一个特定的去噪信号,但希望探索更多的去噪参数,您可以复制它。然后可以修改副本的参数,而不丢失原始参数。
1.从去噪信号窗格中,选择Fnosiy1
.然后在工具条上,从信号降噪选项卡上,单击复制.
重复的信号,fNoisy1Copy
,在去噪信号.
副本的去噪参数列于当前小波参数.
复制的部分用粗线绘制fNoisy情节。情节图例更新以包含副本。
2.在小波选项卡中,改变水平来2
,然后单击消除干扰.该应用程序使用两级小波分解对信号进行降噪。此外,应用程序:
重新计算并绘制副本的近似值。
更新系数绘制以显示副本的级别。
因为fNoisy1Copy
的近似值。应用程序总是绘制当前选择的去噪信号的近似图。您可以如下演示此行为。在情节图例中,单击Fnosiy1
和fNoisy1Copy
.两个去噪信号的名称都消失了,这两个信号不再标绘。只有原始信号和近似图是可见的。
图中的虚线表示近似。因为fNoisy1Copy
突出显示在去噪信号列表,绘制的近似是两层小波分解的结果。这种近似是相对嘈杂的。现在选择Fnosiy1
在列表中。10级小波分解的近似是不同的。
通过添加一个新的去噪信号,您总是可以返回到使用原始的默认参数。从工具条,在信号降噪选项卡上,单击添加.
加进去的去噪信号,Fnosiy2
,以高亮显示去噪信号列表中列出了默认的去噪参数当前小波参数.
新的去噪信号用粗线表示。计算并绘制了近似图。情节传奇更新包括Fnosiy2
.
如果您想将相同的去噪参数应用于其他数据,您可以使用该应用程序生成一个脚本,以重新生成选定的去噪信号。然后,您可以根据自己的需要修改和保存脚本。要做进一步的分析,您可以将降噪信号导出到您的工作区。
点击Fnosiy2
在去噪信号.在信号降噪选项卡中的出口▼”菜单中,选择生成MATLAB脚本
.在你的MATLAB编辑器中打开一个无标题的脚本,带有以下可执行代码:
fNoisy2 = wdenoise (fNoisy 9...“小波”,“sym4”,...“DenoisingMethod”,“贝叶斯,...“ThresholdRule”,“中值”,...“NoiseEstimate”,“LevelIndependent”);
的wdenoise
输入参数由用于创建的值填充Fnosiy2
.保存脚本,然后运行。这将创建变量Fnosiy2
在你的工作空间。
加载文件fdataTS
.该文件包含100个时间序列的噪声数据。每个时间序列有4096个数据点。数据包含在类型中时间表
变量fdataTS
.
负载fdataTS
将去噪参数应用于fdataTS
,通过替换来编辑脚本fNoisy
与fdataTS
和Fnosiy2
与fdataTSclean
.然后运行脚本。
fdataTSclean = wdenoise (fdataTS 9...“小波”,“sym4”,...“DenoisingMethod”,“贝叶斯,...“ThresholdRule”,“中值”,...“NoiseEstimate”,“LevelIndependent”);
将第15个噪声时间序列与其去噪版本进行比较。
子地块(2,1,1)绘图(数据时间,数据时间15)标题(“原始时间序列”网格)在…上次要情节(2,1,2)情节(fdataTSclean.Time fdataTSclean.fTS15)标题(运用时间序列的网格)在…上
点击Fnosiy2
在去噪信号.然后在工具条上,从信号降噪选项卡,单击上面的绿色复选标记出口▼。自Fnosiy2
已经存在于您的工作区中,您可以强制导出并覆盖工作区变量。或者,您可以取消导出,在应用程序中重命名去噪信号或工作区变量,并再次导出。一个标志出现确认信号被导出。要永久删除横幅,请单击X
关闭或导入一个新信号到应用程序。
因为您的工作空间中有一个干净的信号,所以计算去噪信号的信噪比。
snrWavelet = -20 * log10(规范(abs (fClean-fNoisy2)) /规范(fClean))
snrWavelet = 35.9623
如果你有信号处理工具箱™ 使用移动平均滤波器和Savitzky-Golay滤波器对信号进行去噪,并计算每个去噪信号的信噪比。
fmv = smoothdata (fNoisy,“movmean”,25); snrMovingAverage=-20*log10(标准(abs(fClean fmv))/标准(fClean))
snrMovingAverage=26.0040
fsg=平滑数据(fNoisy,“sgolay”25);snrSavitskyGolay = -20 * log10(规范(abs (fClean-fsg)) /规范(fClean))
snrSavitskyGolay = 28.8932
你取得了卓越的结果去噪与sym4
小波。