% --------------------------------------------------------------------------------------------------------------
% 维纳滤波 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 下载量 48 浏览量
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+
- 资源: 6110
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (前端面试题+前端学习+面试指南) 一份涵盖大部分前端工程师所需要掌握的核心知识.zip
- 2023-04-06-项目笔记 - 第三百二十八阶段 - 4.4.2.326全局变量的作用域-326 -2025.11.25
- editor是由web前端研发部开发的所见即所得富文本web编辑器.zip
- Hybrid开发,基于h5+ API和mui前端框架,以及seajs模块化开发的一套跨平台APP开发框架.zip
- 计算机组成原理(COD)综合实验,带三级浮点流水的五级RISCV流水线.zip
- sm2解密出Invalid point encoding问题的解决办法
- 乐跑刷数据代码 (1).exe
- 计算机科学与工程学院15级大三短学期JAVA课设-虚拟校园系统.zip
- 备战2025电赛03-驱动1.8寸TFT-LCD屏幕
- 一个基于Java SE的跳跃忍者游戏.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页