【语音增强】维纳滤波语音增强(含滤波前后语谱图对比)【含Matlab源码 4078期】

在这里插入图片描述

⛄一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【语音增强】基于matlab维纳滤波语音增强(含滤波前后语谱图对比)【含Matlab源码 4078期】
点击上面蓝色字体,直接付费下载,即可。

获取代码方式2:
付费专栏Matlab语音处理(初级版)

备注:
点击上面蓝色字体付费专栏Matlab语音处理(初级版),扫描上面二维码,付费29.9元订阅海神之光博客付费专栏Matlab语音处理(初级版),凭支付凭证,私信博主,可免费获得1份本博客上传CSDN资源代码(有效期为订阅日起,三天内有效);
点击CSDN资源下载链接:1份本博客上传CSDN资源代码

⛄二、维纳滤波语音增强

维纳滤波是一种常用的语音增强方法,它基于信号处理和统计学原理,旨在减少噪声对语音信号的影响。维纳滤波的原理可以简要概括如下:
(1)假设:维纳滤波假设语音信号和噪声是线性叠加的,且噪声是平稳的高斯过程。
(2)信号和噪声的功率谱估计:通过对输入信号和噪声进行功率谱估计,得到它们的频谱信息。
(3)信号和噪声的功率谱比估计:根据假设,信号和噪声的功率谱比可以通过对它们的功率谱进行估计得到。
(4)维纳滤波器的设计:根据信号和噪声的功率谱比,设计一个滤波器,使得滤波后的语音信号在保持原有语音信息的同时,尽可能减少噪声的影响。
(5)滤波器的应用:将设计好的维纳滤波器应用于输入信号,通过滤波器对输入信号进行处理,得到增强后的语音信号。

⛄三、部分源代码

%读入原始信号 s(n) 干净语音
%[y,Fs]=audioread(‘p232_003.wav’);
[y,Fs]=audioread(‘clean.wav’);
% sound(y,Fs);
n=length(y);
%绘制波形
figure(1);
plot(y);
xlabel(‘时间’);
ylabel(‘幅度’);
title(‘原始信号的波形’);
grid on;

%产生观测信号x(n)=s(n)+v(n)
%v(n)噪声,选择白噪声
%v = wgn(n,1,0.2);
% sound(v,Fs);
% 产生观测信号
%x=awgn(y,20);
[x,Fs]= audioread(‘5dB_noisy.wav’);
%sound(x,Fs);
audiowrite(‘snp232_003.wav’,x,Fs);
figure(2);
plot(x);
xlabel(‘时间’);
ylabel(‘幅度’);
title(‘观测信号的波形’);
grid on;

%维纳滤波的频域非因果实现
Rxx=xcorr(x);
Gxx=fft(Rxx,n);
Rxy=xcorr(x,y);
Gxs=fft(Rxy,n);
H=Gxs./Gxx;
Ps=fftn(y);
S=H.*Ps;
ss=real(ifft(S));
ss=ss(1:n);
sound(ss,Fs);

%audiowrite(‘weina.wav’,ss,Fs);
figure(3);
plot(ss);
xlabel(‘时间’);
ylabel(‘幅度’);
title(‘恢复原始信号的波形’);
grid on;

⛄四、运行结果

在这里插入图片描述

⛄五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]韩纪庆,张磊,郑铁然.语音信号处理(第3版)[M].清华大学出版社,2019.
[2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社,2019.

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab领域

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值