基于自相关法的线性预测倒谱系数(LPCC)提取系统
项目介绍
本项目实现了一个完整的语音信号特征提取系统,核心目标是从语音信号中提取线性预测倒谱系数(LPCC)。该系统采用稳健的自相关分析法构建正规方程组,并通过经典的 Levinson-Durbin 递归算法求解线性预测系数(LPC),最后利用递推公式将其转换为 LPCC 参数。
LPCC 能有效分离语音中的激励源信息与声道响应信息,在抗噪性和特征平滑度上具有显著优势。该系统生成的特征矩阵可直接用于语音识别、说话人辨识及语音合成等后续研究。
功能特性
- 全流程处理:涵盖了从原始信号生成、预处理、LPC 建模到 LPCC 计算及结果可视化的完整流程。
- 稳健的算法实现:核心求解模块采用自相关函数法配合 Levinson-Durbin 递归,保证了计算的稳定性和效率。
- 参数高度可调:支持自定义采样率、预加重系数、帧长、帧移以及 LPC 和 LPCC 的阶数。
- 多维度可视化:提供时域波形、残差波形、特征热力图及三维分布图,直观展现特征提取结果。
- 残差信号重构:通过逆滤波技术提取预测残差信号,辅助分析声道模型解卷绕后的激励特性。
系统逻辑与实现细节
系统的实现逻辑严格遵循语音信号处理的标准流程,具体步骤如下:
1. 参数初始化与信号模拟
程序首先定义基础声学参数(如 16kHz 采样率,12阶 LPC,16阶 LPCC)。系统内置了一个模拟语音生成模块,通过脉冲串模拟基频激励,并使用 Butterworth 滤波器和预设的极点模型(声道模拟电路)生成具有共振峰特性的合成语音。
2. 信号预处理
- 预加重:应用高通滤波器(传递函数为 $1 - 0.97z^{-1}$)补偿高频部分的衰减,使频谱平滑。
- 分帧与加窗:将非平稳的连续语音切分为短时平稳帧(默认帧长 25ms,帧移 10ms),并叠加汉明窗(Hamming Window)以减少频谱泄露。
3. 线性预测分析(LPC)
- 自相关计算:针对每一帧信号计算自相关函数 $R(k)$。
- Levinson-Durbin 递归:利用自相关系数构建 Yule-Walker 方程,通过递归算法高效求解反射系数和预测系数 $a$。此过程避免了直接进行复杂的矩阵求逆计算。
- 残差提取:利用求解出的 LPC 系数构造全零型滤波器,对各帧进行逆滤波,得到去除声道特征后的激励残差信号。
4. 倒谱系数转换(LPCC)
利用 LPC 系数序列 $a$ 通过递归公式计算倒谱系数 $c$:
- 对于第一阶,直接由 $a_1$ 确定。
- 对于 $1 < n le p$($p$ 为预测阶数),结合当前 LPC 系数与历史倒谱系数加权和进行递推。
- 对于 $n > p$,则由历史倒谱系数与 LPC 系数的卷积结果继续延伸计算。
这种方法能够获取比单纯 LPC 更具区分度的声学特征。
5. 结果展示
系统输出包含原始波形图、线性预测残差图、LPCC 特征系数热力图以及 LPCC 在各帧上的三维能量分布图。
关键算法分析
- 自相关函数法:通过计算信号与其自身位移后的相关性,提取信号的功率谱特性,为求解 LPC 提供了输入基础。
- Levinson-Durbin 递归:该算法利用了正规方程组对称托普利兹矩阵(Toeplitz Matrix)的特性,将计算复杂度从 $O(p^3)$ 降至 $O(p^2)$,并能保证滤波器的稳定性。
- 倒谱递推算法:直接从时域预测系数推导频率域的倒谱信息,有效模拟了人类听觉系统的对数能量感知特性,增强了特征对声道形状变化的捕捉能力。
使用方法
- 确保安装了包含核心矩阵运算功能的 MATLAB 环境(建议 2018b 及以上版本)。
- 在 MATLAB 中打开主程序脚本。
- 根据需要修改“参数设置”部分的 $f_s$(采样率)、$p_order$(LPC 阶数)或 $q_order$(LPCC 阶数)。
- 直接运行程序,系统将自动执行信号处理流程。
- 在绘图窗口查看分析结果,并在命令行窗口查看输出的特征矩阵概览。
系统要求
- 软件环境:MATLAB 及其信号处理工具箱(Signal Processing Toolbox)。
- 硬件要求:标准桌面或笔记本电脑,主频 1GHz 以上,内存 4GB 以上。