LPC线性预测分析.docxVIP

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

线性预测分析matlab程序注意:程序只支持单声道wav文件,可以自行录制一句话。Levinson-Durbin算法:S为信号向量,P为预测阶数% Levinson-Durbin??·¨function a = LD(s, P)N = length(s); %ò???ó?ò?3¤?è% ?ó×??à1????ór(j),j = 0:P;for j = 0 : P r(j+1) = sum(s(1:N-j).*s(j+1:N));enda = zeros(1, P);E = r(1);for i = 1 : P temp = 0;for j = 1 : i-1 temp = temp + a(j) * r(i-j+1);end ki = (r(i+1) - temp) / E; a(i) = ki; a_temp = a; %êy?Y??2?ê1ó?£?·à?1êy?Y?üD?′í?ófor j = i-1 : -1: 1 a(j) = a_temp(j) - ki * a_temp(i-j);end E = (1 - ki * ki) * E;EndMatlab主程序:clear all, close all,% ?áD?o?[speech, fs, nBits] = wavread(speech.wav);%[speech, fs, nBits] = wavread(a4.wav);P = 10;% ?-ó?ò?2¨D?figure(1);subplot(2,2,1);plot(speech);title(?-ê?ó?ò?);subplot(2,2,2);plot(abs(fft(speech)));title(?-ê?ó?ò??μ?×);% 1. 2?êyéè??winSize = floor(0.025 * fs); % ??3¤25ms,ò???8000*0.025??μ?12200??μ?nFrame = floor(length(speech) / winSize); % ??????êyspeech = filter([1,-0.94], 1, speech);subplot(2,2,3);plot(speech);title(?¤?ó??ó?ò?);subplot(2,2,4);plot(abs(fft(speech)));title(?¤?ó??ó?ò??μ?×);% ?¤?è·????ú′?a = zeros(1, nFrame*P);err = zeros(1,length(speech));frameData = zeros(1,P+winSize);% oo?÷′°hamwin = hamming(2*P+winSize);for m = 1:nFrame% è?ò???êy?Y startPos = (m-1) * winSize + 1; endPos = startPos + winSize - 1; ai_start = (m-1) * P +1; ai_end = ai_start + P - 1;if m == 1 frameData(P+1:P+winSize) = speech(startPos:endPos);else frameData = speech(startPos - P:endPos);end% ?óoo?÷′° frameData = frameData .* hamwin(1:P+winSize); a(ai_start:ai_end) = LD(frameData(P+1:P+winSize), P);%?ó2?ê?3?for i = 1 : winSize err(startPos+i) = frameData(P+i) - sum(a(ai_start:ai_end).*frameData(P+i-1:-1:P+i-P));end buildspeech(startPos:endPos) = filter(1,[1,-1*[a((m-1)*P+1:m*P)]],err(startPos:endPos)); buildspeech(startPos:endPos) = buildspeech(startPos:endPos) ./ hamwin(P+1:P+winSize); %è¥oo?÷′°end% è¥?ó??buildspeech = filter(1, [1,-0.94], buildspeech);%D′êy?Y???twavwrite(err,fs,nB

文档评论(0)

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

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

1亿VIP精品文档

相关文档