lpc matlab 预测,LPC特征提取 matlab

LPC特征提取

I = wavread('1_1.wav');

%读入原始语音

subplot(3,1,1),;

plot(I);

title('原始语音波形') %对指定帧位置进行加窗处理

Q = I'; N = 256; % 窗长

Hamm = hamming(N); % 加窗

frame = 60;%需要处理的帧位置

M = Q(((frame - 1) * (N / 2) + 1):((frame - 1) * (N / 2) + N));

Frame = M .* Hamm';%加窗后的语音帧

[B,F,T] = specgram(I,N,N/2,N);

[m,n] = size(B);

for i = 1:m

FTframe1(i) = B(i,frame);

end

P =input('请输入预测器阶数= ');

ai = lpc(Frame,P);

ai% 计算lpc系数

LP = filter([0 -ai(2:end)],1,Frame); % 建立语音帧的正则方程

FFTlp = fft(LP);

E = Frame - LP; % 预测误差

subplot(2,1,1),plot(1:N,Frame,1:N,LP,'-r');grid;

title('原始语音和预测语音波形')

subplot(2,1,2),plot(E);grid;

title('预测误差');

pause

fLength(1 : 2 * N) = [M,zeros(1,N)];

Xm = fft(fLength,2 * N);

X = Xm .* conj(Xm);

Y = fft(X , 2 * N);

Rk = Y(1 : N);

PART = sum(ai(2 : P + 1) .* Rk(1 : P));

G = sqrt(sum(Frame.^2) - PART);

A = (FTframe1 - FFTlp(1 : length(F'))) ./ FTframe1 ;

subplot(2,1,1),plot(F',20*log(abs(FTframe1)),F',(20*log(abs(1 ./ A))),'-r');grid; xlabel('频率/dB');ylabel('幅度');

title('短时谱');

subplot(2,1,2),plot(F',(20*log(abs(G ./ A))));grid;

xlabel('频率/dB');ylabel('幅度');

title('LPC谱');

pause

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值