电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

语音信号的分帧加窗的matlab实现

语音信号的分帧加窗的matlab实现_第1页
1/4
语音信号的分帧加窗的matlab实现_第2页
2/4
语音信号的分帧加窗的matlab实现_第3页
3/4
语音信号的分帧加窗的 matlab 实现function Seg=segment(signal,W,SP,Window)if nargin<3 SP=.4;endif nargin<2 W=256;endif nargin<4 Window=hamming(W);endWindow=Window(:); %make it a column vectorL=length(signal);SP=fix(W.*SP);N=fix((L—W)/SP +1); %number of segmentsIndex=(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); 为什么要这样计算呢?? 以下是具体的程序~~%%%%%文件"mfcc。m"function ccc=gbfcosmfcc(x)%归一化 mel 滤波器组系数bank=melbankm(24,256,16000,0,0。5,’m’);bank=full(bank);bank=bank/max(bank(:));%DCT 系数,12*24for k=1:12 n=0:23; dctcoef(k,:)=cos((2*n+1)*k*pi/(2*24));end%归一化倒谱提升窗口w=1+6*sin(pi*[1:12]。/12);w=w/max(w);%预加重滤波器xx=double(x);xx=filter([1 —1],1,xx);xx=x; %zhang add%语音信号分帧%xx=enframe(xx,256,80);xppl=length(xx);j=1;for i=65:80:xppl—256, xx1(j,:)=xx(i:i+256-1)'; j=j+1;endxx=xx1;%计算每帧的 MFCC 参数for i=1:size(xx,1) y=xx(i,:); s=y’.*hamming(256); t=abs(fft(s...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

语音信号的分帧加窗的matlab实现

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部