📄 7-16.m
字号:
%例程7-16 语音线性预测编码
%在本例中,将需要使用信号处理工具箱函数lpc、filter和xcorr,其调用格式如下:
y=filter(b,a,X) %对矢量X的数据进行滤波,滤波器由传递函数描述,矢量b为传递函数分子系数,矢量a为传递函数分母系数
[c,lags]=xcorr(x,'option') %计算矢量x的自相关序列,其中coeff选项表示序列自相关0延迟归一化为1,lags返回自相关估计c的范围
%3阶前向预测器的MATLAB程序实现如下:
randn('state',0); %返回随机数产生器的初始状态
noise=randn(50000,1);
x=filter(1,[1 1/2 1/3 1/4],noise); %调用filter函数实现一维数字滤波
x=x(45904:50000);
a=lpc(x,3); %调用lpc函数
est_x=filter([0 -a(2:end)],1,x);
e=x-est_x;
[acs,lags]=xcorr(e,'coeff'); %调用xcorr函数实现相关运算
subplot(2,1,1);
plot(1:97,x(4001:4097),1:97,est_x(4001:4097),'--');
title('Original Signal vs.LPC Estimate');
xlabel('Sample Number');ylabel('Ampltitude');
grid on
legend('Original Signal','LPC Estimate');
subplot(2,1,2);
plot(lags,acs);
title('Autocorrelation of the Prediction Error');
xlabel('Lags');
ylabel('Normalized Value');
grid on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -