实验4基于MATLAB语音信号LPC解析.pptVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验4基于MATLAB语音信号LPC解析

实验四 基于MATLAB的语音信号LPC分析 ;一、实验目的;二、实验原理;(4);自相关法;协方差法 ;全极点声道模型 ;LPC;结合语音帧能量构成LPC组合参数; 模型增益G;采用自相关解法时,浊音的模型增益为;实验结果(参考);图3.2 原始语音帧和预测语音帧的短时谱和LPC谱的波形;这里我们可以改变线性误差的阶数来观察语音帧的短时谱和LP谱的变化情况,如图3.3。; 从图中可以看出,P越大,LPC谱越能反映出语音短时谱的细节部分,但LPC谱的光滑度随之下降。由于我们的目的只是用LPC谱反映声道综合效应的谱的表示式,而具体的谐波形状是通过激励谱来控制的,因此LPC谱只要能够体现出语音的共振峰的结构和谱包络就可以,因此从计算复杂性的角度分析,预测阶数P应该适中。;图3.5给出了原始语音的语谱图和预测语音的语谱图,通过比较发现,预测语音的预测效果还可以,基音频率相差无几。;MusicSource = wavread(kdt_070); Music_source = MusicSource; N = 256; % window length,N = 100 -- 1000; Hamm = hamming(N); % create Hamming window frame = input(请键入想要处理的帧位置 = ); % origin is current frame origin = Music_source(((frame - 1) * (N / 2) + 1):((frame - 1) * (N / 2) + N)); Frame = origin .* Hamm; %Short Time Fourier Transform [s1,f1,t1] = specgram(MusicSource,N,N/2,N); [Xs1,Ys1] = size(s1); for i = 1:Xs1 FTframe1(i) = s1(i,frame); end N1 = input(请键入预测器阶数 = ); % N1 is predictors order [coef,gain] = lpc(Frame,N1); % LPC analysis using Levinson-Durbin recursion est_Frame = filter([0 -coef(2:end)],1,Frame); % estimate frame(LP) FFT_est = fft(est_Frame); err = Frame - est_Frame; % error % FFT_err = fft(err); subplot(3,1,1);plot(MusicSource) %做原始语音信号的时域图形 title(原始语音信号); subplot(3,1,2),plot(1:N,Frame,1:N,est_Frame,-r);grid;title(原始语音帧vs.预测后语音帧) subplot(3,1,3),plot(err);grid;title(误差);pause;fLength(1 : 2 * N) = [origin,zeros(1,N)]; Xm = fft(fLength,2 * N); X = Xm .* conj(Xm); Y = fft(X , 2 * N); Rk = Y(1 : N); PART = sum(coef(2 : N1 + 1) .* Rk(1 : N1)); G = sqrt(sum(Frame.^2) - PART); A = (FTframe1 - FFT_est(1 : length(f1))) ./ FTframe1 ; % inverse filter A(Z) subplot(2,1,1),plot(f1,20*log(abs(FTframe1)),f1,(20*log(abs(1 ./ A))),-r);grid;title(短时谱); subplot(2,1,2),plot(f1,(20*log(abs(G ./ A))));grid;title(LPC谱); pause;temp = FTframe1 - FFT_est(1 : length(f1)); % not move higher frequnce pitch1 = log(abs(temp)); pLength = length(pitch1); result1 = ifft(pitch1,N); % move higher frequnce pitch1((pLength - 32) : pLength) = 0; result2 = ifft(pitch1,N); % d

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档