资源简介
该程序是基于谱减法的语音增强程序,用matlab实现,取得了很好的效果。
代码片段和文件信息
clear all;
%-------------------------------读入带噪语音文件---------------------------
load yi.mat
tidy=load(‘yi.mat‘‘rt‘) ;
[filenamepathname]=uigetfile(‘*.cnt‘‘请选择带噪语音文件:‘);
wavin=wavread([pathname filename])‘;
%-------------------------------参数定义---------------------------------
frame_len=256; %帧长
step_len=0.5*frame_len; %分帧时的步长,相当于重叠50%
wav_length=length(wavin);
R = step_len;
L = frame_len;
f = (wav_length-mod(wav_lengthframe_len))/frame_len;
k = 2*f-1; % 帧数
h = sqrt(1/101.3434)*hamming(256)‘; % 汉宁窗乘以系数的原因是使其复合条件要求;
wavin = wavin(1:f*L); % 带噪语音与纯净语音长度对齐
tidy= tidy(1:f*L);
win = zeros(1f*L); % 设定初始值;
enspeech = zeros(1f*L);
%-------------------------------分帧-------------------------------------
for r = 1:k
y = wavin(1+(r-1)*R:L+(r-1)*R); % 对带噪语音帧间重叠一半取值;
y = y.*h; % 对取得的每一帧都加窗处理;
w = fft(y); % 对每一帧都作傅里叶变换;
Y(1+(r-1)*L:r*L) = w(1:L); % 把傅里叶变换值放在Y中;
end
%-------------------------------估计噪声-----------------------------------
NOISE= stationary_noise_evaluate(YLk); %噪声最小值跟踪算法
% NOISE= non_stationary_noise_evaluate(YLk); % 基于统计信息的非平稳噪声自适应算法
%-------------------------------谱减法-------
相关资源
- MATLAB的m函数产生quartus正弦mif文件
- 多旅行商matlab实验源码
- Logistic函数的MATLAB实现
- rinex3.0的matlab读取程序
- dq变换的matlab仿真模型mdl
- 非常实用的不变矩的matlab程序
- 基于MATLAB的直接序列扩频通信系统课
- matlab ident
- VB调用MATLAB
- FMCW MATLAB
- 单演信号的matlab实现
- matlab iPLSToolbox.zip
- matlab6.1完整版
- MATLAB基于压缩传感理论的单像素照相
- matlab、奇异值分解
- ICP算法matlab代码
- Tsai两步法摄像机标定的Matlab实现
- TD LTE PSS同步matlab仿真
- 商人过河问题的MATLAB实现
- 基于MATLAB的蓝牙测距代码
- 卡尔曼程序+UKF程序matlab
- 人工神经网络的matlab实现
- 数字图像处理matlab版m文件
- 一个经典的MATLABgui界面的
- hmm算法matlab实现
- matlab代码-NRZ
- LM-BP神经网络的Matlab程序源代码
- 小波去噪 多种方法的matlab程序
- 去除粗大误差并插值的matlab函数
- 鲁棒控制matlab程序
评论
共有 条评论