% --------------------------------------------------------------------------------------------------------------
% 维纳滤波 enhanced=Weina_Norm(x,wind,inc,NIS,alpha,beta)
% MS估计噪声功率谱,需要估计纯净信号功率Ps
% x:输入语音信号
% framesize:帧长
% overlap:帧重叠长度
% NIS:无声帧帧数
% alpha,beta:抑制参数
% ---------------------------------------------------------------------------------------------------------------
%%
function enhanced=Weina_Norm(x,wind,inc,NIS,alpha,beta)
nwin=length(wind); % 取窗长
if (nwin == 1) % 判断窗长是否为1,若为1,即表示没有设窗函数
framesize= wind; % 是,帧长=win
wnd=hamming(framesize); % 设置窗函数
else
framesize = nwin; % 否,帧长=窗长
wnd=wind;
end
y=enframe(x,wnd,inc)'; % 分帧
framenum=size(y,2); % 求帧数
y_fft = fft(y); % FFT
y_a = abs(y_fft); % 求取幅值
y_phase=angle(y_fft); % 求取相位角
y_a2=y_a.^2; % 求能量
noise=mean(y_a2(:,1:NIS),2); % 计算噪声段平均能量
signal=zeros(framesize,1);
for i=1:framenum
frame=y(:,i); %取一帧数据
y_fft=fft(frame); %对信号帧y_ham进行短时傅立叶变换,得到频域信号y_fft
y_fft2=abs(y_fft).^2; %计算频域信号y_fft每帧的功率谱y_w
%带噪语音谱减去噪声谱
for k=1:framesize
if abs( y_fft2(k) ) >=alpha*noise(k)%(k,i)
signal(k)=y_fft2(k)-alpha*noise(k);%(k,i);
if signal(k)<0
signal(k)=0;
end
else
signal(k)=beta*noise(k);%*0.01;
end
end
%计算H(W)
Hw=( signal./(signal+1*noise) ).^1 ;
%维纳滤波器输出
yw(:,i)=Hw.*y_fft;
yt(:,i)=ifft(yw(:,i));
end
%采用相位,反而信噪比低
enhanced=filpframe(yt',wnd,inc);
没有合适的资源?快使用搜索试试~ 我知道了~
语音去噪基于matlab基本维纳滤波算法语音去噪【含Matlab源码 570期】.zip
共10个文件
m:8个
wav:1个
jpg:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 8 下载量 86 浏览量
2021-12-27
14:12:14
上传
评论 5
收藏 93KB ZIP 举报
温馨提示
CSDN海神之光上传的全部代码均可运行,亲测可用,尽我所能,为你服务; 1、代码压缩包内容 主函数:C5_3_y_1.m; 调用函数:其他m文件; 语音信号,其格式为MP4; 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,可私信博主; 3、运行操作步骤 步骤一:将所有文件放到 Matlab的当前文件夹中; 步骤二:双击打开C5_3_y_1.m文件;(若有其他m文件,无需运行) 步骤三:点击运行,等程序运行完得到结果; 4、语音处理系列仿真咨询 如需其他服务,可私信博主或扫描博主博客文章底部QQ名片; 4.1 CSDN博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作 语音处理系列程序定制或科研合作方向:语音隐藏、语音压缩、语音识别、语音去噪、语音评价、语音加密、语音合成、语音分析、语音分离、语音处理、语音编码、音乐检索、特征提取、声源定位、情感识别、语音采集播放变速等;
资源推荐
资源详情
资源评论
收起资源包目录
【语音去噪】基于matlab基本维纳滤波算法语音去噪【含Matlab源码 570期】.zip (10个子文件)
【语音去噪】基于matlab基本维纳滤波算法语音去噪【含Matlab源码 570期】
C5_3_y_1.m 1KB
C5_3_y.wav 63KB
Weina_Im.m 2KB
filpframe.m 581B
SNR_Calc.m 399B
Weina_Norm.m 2KB
enframe.m 819B
运行结果1.jpg 46KB
OverlapAddN.m 591B
vad_LogSpec.m 1KB
共 10 条
- 1
海神之光
- 粉丝: 5w+
- 资源: 6476
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 圣诞树项目中的硬件和MATLAB实现指南
- 免费的PDF/图片转excel工具-调用百度OCR API接口
- HTML与CSS实现简单圣诞树网页
- 用Python实现带装饰效果的圣诞树打印功能
- HTML与CSS创建节日主题的圣诞树网页
- Web开发全栈学习指南与核心技术解析
- UML软件建模酒店视觉AI解决方案
- Qml地图应用示例,包括地图显示、区域线、获取鼠标位置等源程序
- Screenshot_20241224_015626_K.jpg
- MySQL安装环境配置指南:从系统准备到性能优化的全流程详解
- MySQL操作速查手册:数据库管理与性能优化
- Python代码实现带装饰的圣诞树控制台输出
- ls.mobileconfig
- HTML-Christmas Tree Code
- HCIA..............
- 微流控芯片底..克力.STEP
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页