探秘 LPC 接收端重建:从理论根基到 Matlab 仿真实战
一、引言
参量编码作为高效的编码技术,在现代通信与信号处理领域意义重大。线性预测编码(LPC)的信源端重建机制是其中关键部分,它借助特定操作流程、数学推导和激励措施,实现信号的高效重建。深入了解该机制,有助于优化编码系统性能并解决实际应用问题。
二、信号重建操作流程
(一)准备阶段
在信源端接收预测系数和增益前,要对原始信号进行预处理,常见操作是分帧。假设原始信号为 s ( n ) s(n) s(n),帧长设为 N N N,将其分成若干帧 s m ( n ) s_m(n) sm(n),其中 m m m 为帧序号, n = 0 , 1 , ⋯ , N − 1 n = 0, 1, \cdots, N - 1 n=0,1,⋯,N−1 ,各帧独立进行后续重建。
线性预测编码基于信号的相关性原理,认为当前信号样本可以通过过去若干个信号样本的线性组合来预测。对于一个离散时间信号 s ( n ) s(n) s(n),其预测值 s ^ ( n ) \hat{s}(n) s^(n)可表示为: s ^ ( n ) = ∑ k = 1 p a k s ( n − k ) \hat{s}(n) = \sum_{k = 1}^{p} a_k s(n - k) s^(n)=k=1∑paks(n−k)
其中, p p p 为预测阶数, a k a_k ak为预测系数。预测误差 e ( n ) e(n) e(n)定义为实际信号值与预测值之差: e ( n ) = s ( n ) − s ^ ( n ) = s ( n ) − ∑ k = 1 p a k s ( n − k ) e(n) = s(n) - \hat{s}(n) = s(n) - \sum_{k = 1}^{p} a_k s(n - k) e(n)=s(n)−s^(n)=s(n)−k=1∑paks(n−k)
(二)激励信号生成
- 浊音激励
当信号判定为浊音部分时,激励信号 u ( n ) u(n) u(n) 通常构建成周期性脉冲序列。设基音周期为 T p T_p Tp,可表示为 u ( n ) = ∑ k = − ∞ ∞ A δ ( n − k T p ) u(n)=\sum_{k = -\infty}^{\infty}A\delta(n - kT_p) u(n)=∑k=−∞∞Aδ(n−kTp),这里 A A A 是脉冲幅度, δ ( n ) \delta(n) δ(n) 是单位冲激函数。实际应用中,会依据信号特性和重建需求调整 A A A 和 T p T_p Tp。例如,通过对大量浊音语音信号统计分析确定合适的基音周期范围,再根据当前帧信号的能量等特征调整 A A A,从而更好地模拟声带振动激励。 - 清音激励
对于清音部分,激励信号采用白噪声序列,即均值为 0 0 0、方差为 σ 2 \sigma^2 σ2 的随机序列。实际生成时,可用伪随机数生成器产生近似白噪声序列。通过调整方差 σ 2 \sigma^2 σ2 来匹配清音信号的能量特征,一般依据清音信号的平均能量估计值确定 σ 2 \sigma^2 σ2 大小。
(三)预测滤波器构建与滤波
已知预测系数 a i a_i ai( i = 1 , ⋯ , p i = 1, \cdots, p i=1,⋯,p , p p p 为预测阶数),预测滤波器的系统函数 H ( z ) H(z) H(z) 定义为 H ( z ) = 1 1 − ∑ i = 1 p a i z − i H(z)=\frac{1}{1 - \sum_{i = 1}^{p}a_iz^{-i}} H(z)=1−∑