没有合适的资源?快使用搜索试试~ 我知道了~
语音信号的分帧加窗的matlab实现.doc
需积分: 20 2 下载量 157 浏览量
2022-10-16
08:56:00
上传
评论
收藏 21KB DOC 举报
温馨提示
试读
4页
语音信号的分帧加窗的matlab实现.doc
资源详情
资源评论
资源推荐
语音信号的分帧加窗的 matlab 实现
语音信号的分帧加窗的 matlab 实现
function Seg=segment(signal,W,SP,Window)
if nargin<3
SP=.4;
end
if nargin<2
W=256;
end
if nargin<4
Window=hamming(W);
end
Window=Window(:); %make it a column vector
L=length(signal);
SP=fix(W.*SP);
N=fix((L—W)/SP +1); %number of segments
Index=(repmat(1:W,N,1)+repmat((0:(N-1))'*SP,1,W))';
hw=repmat(Window,1,N);
Seg=signal(Index).*hw;
语音信号处理预加重、加窗分帧 matlab 程序
%获取语音信号
[filename,pathname]=uigetfile('*.wav’,'choose a audio file:');
[wavin,fs,nbits]=wavread([pathname filename]);
wav_l=length(wavin); %采样点数,length()返回值是标量
frame_l=0.04*fs; %根据 fs 选择帧长,
step_l=floor(0.5*frame_l); %设置帧移
num_frame=floor((wav_l-frame_l)/step_l)+1; %确定帧数
win_ham=hamming(frame_l); %在做 fft 之前,为移除直流分量和加重高频分量,采用汉明窗,对信号进
行加权
%加窗处理用来消除分帧时带来的截断效应
%加窗,分帧(矩阵每一行为一帧)
for i=1:num_frame
n1=(i-1)*step_l+1;
n2=(i-1)*step_l+frame_l;
zy(i,:)=(win_ham’).*(yt(n1:n2)’); %存储每一帧噪音(行向量) %win_ham、yt 是列向
量,需转置
yy(i,:)=(win_ham’)。*(wavin(n1:n2)'); %存储每一帧纯净语音
end
关于 matlab 中的语音识别
在用 DFT 求得倒普之后.为什么需要加上倒普提升窗口呢?? 谢谢!
窗函数是这样的:w = 1+6*sin(pi*[1:12]./12); 为什么要这样计算呢?? 以下是具体的程序~~
智慧安全方案
- 粉丝: 3606
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0