我是靠谱客的博主 无语玫瑰,这篇文章主要介绍Matlab小波变换-音频去噪,现在分享给大家,希望可以做个参考。

文章目录

      • 小波变换-音频去噪
      • 一、原音频加噪
      • 二、sym8小波去噪
      • 三、db2小波去噪
      • 总结


小波变换-音频去噪

使用小波变换进行音频去噪,实验环境:Matlab
推荐课程:数字信号处理(北京交通大学 陈后金) 第八章内容
B站链接:https://www.bilibili.com/video/BV1at411Q75D?p=101
(慕课上也有)


一、原音频加噪

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
%读取原信号 [audio,Fs] = audioread("summer.wav"); [len,~] = size(audio); %加噪声 n = audio + 0.03.*randn([len,1]); %求信噪比 snr0 = snr(audio,n-audio) %画图 subplot(211);plot(audio); title('原信号'); subplot(212);plot(n); title('含噪信号,信噪比=13.5231');

在这里插入图片描述

二、sym8小波去噪

也不一定非选这个sym8,也可以选其他的小波,matlab有很多可供选择

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
lev =5; %选择"sym8"小波进行去噪 wname = 'sym8'; %选取两种阈值规则:minimaxi与sqtwolog [dnsig2,c2,l2,threshold_Minimax] = wden(n,'minimaxi','h','mln',lev,wname); [dnsig3,c3,l3,threshold_DJ] = wden(n,'sqtwolog','h','mln',lev,wname); %画图 subplot(211);plot(dnsig2) title('sym8小波去噪 -信噪比16.8500 -阈值规则Minimax ');grid on subplot(212);plot(dnsig3); title('sym8小波去噪 -信噪比15.2136 -阈值规则DonohoJohnstone ');grid on; %求信噪比 sym2 = snr(audio,dnsig2-audio) sym3 = snr(audio,dnsig3-audio) sound(dnsig3,Fs)
复制代码
1
2
3
4
5
6
7
8
9
%%绘制出db2的尺度函数和小波函数 Iter=20; wname='sym8'; [s,w,t]=wavefun(wname,Iter); subplot(211);plot(t,s); title('db2的尺度函数'); subplot(212);plot(t,w); t=title('db2的小波函数');

去噪效果如下:

在这里插入图片描述

绘制出db2的尺度函数和小波函数

在这里插入图片描述
在这里插入图片描述

三、db2小波去噪

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
%%绘制出db2的尺度函数和小波函数 Iter=20; wname='db2'; [s,w,t]=wavefun(wname,Iter); subplot(211);plot(t,s); title('db2的尺度函数'); subplot(212);plot(t,w); t=title('db2的小波函数'); %选择"db2"小波进行去噪 wname = 'db2'; lev = 4; [xd1,~,~,~] = wden(n,'sqtwolog','s','mln',lev,wname); [xd2,~,~,~] = wden(n,'minimaxi','s','mln',lev,wname); subplot(211);plot(xd1);grid on title('db2小波去噪 -信噪比10.9619 -阈值规则sqtwolog') subplot(212);plot(xd2);grid on title('db2小波去噪 -信噪比12.5183 -阈值规则minimaxi') dbsnr1=snr(audio,xd1-audio) dbsnr2=snr(audio,xd2-audio)

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

总结

  • 两个实验中,随DWT级数增加(也即lev增加),信噪比SNR降低
  • 随lev增加,SNR降低,去噪效果好的同时,也会损失更多原声细节
  • 实验中,SNR越低,信号的去噪效果越好
    -(?我感觉),SNR在此实验场景中并不是一个很好的衡量去噪能力的指标,因为按照之前所学,SNR越高,信号的质量越好,但在此实验中并不是这样。此实验中,从人耳主观听觉角度来说,SNR越低,去噪效果越好,

最后

以上就是无语玫瑰最近收集整理的关于Matlab小波变换-音频去噪的全部内容,更多相关Matlab小波变换-音频去噪内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(92)

评论列表共有 0 条评论

立即
投稿
返回
顶部