华东交通大学 · 信息与软件工程学院 · 通信工程专业 DSP 课程设计(2026.6.22 – 2026.6.29)
Real-time audio FIR filtering on TI TMS320DM6437 with TLV320AIC33 codec.
本项目基于 TI TMS320DM6437 定点 DSP 与 TLV320AIC33 音频编解码芯片,在 8 kHz 采样率下实现了音频信号的实时采集 → FIR 数字滤波 → 回放闭环系统,支持低通 / 高通 / 旁路三种工作模式,并通过 CCS 内存抓取与 MATLAB/Python 频谱重建完成了实板闭环验证。
对包含低频鼓点(500 Hz 以下)与高频哨声(1500–2500 Hz)的混合语音信号,本项目:
- 使用 MATLAB 对实际音频做 FFT 频谱分析,定位频段分布;
- 采用**窗函数法(Hamming 窗)**设计 63 阶低通与高通 FIR 数字滤波器(Fs = 8000 Hz,截止频率 Fc = 1000 Hz);
- 将浮点系数量化为 Q15 定点格式并导出为 C 头文件;
- 在 DM6437 上配置 McBSP(多通道缓冲串口)与 TLV320AIC33 的 I²C 控制接口,实现音频实时采集与回放;
- 对 FIR 卷积算法做编译器级与架构级优化,满足 8 kHz 采样率的硬实时要求(每样本 125 μs,双声道共 126 次乘加);
- 实板验证:低通模式抑制高频哨声、保留低频鼓点;高通模式抑制低频鼓点、保留哨声。
- 三种滤波模式:低通 / 高通 / 旁路(
FIR_ACTIVE_MODE编译期选择,filter_mode变量支持 CCS 调试时热切换) - 立体声独立 FIR:左右声道各维护 63 点环形延迟线
- CCS 内存抓取:
capture_pack(1024 帧 × inL/outL/inR/outR)可由 CCSSave Memory导出 - 闭环验证脚本:MATLAB(
verify_capture_pack.m/verify_all_modes.m)与 Python(plot_verification.py)双实现,重建时域波形与 FFT 频谱 - 完整课设文档:任务书、课程设计报告、硬件调试指南、答辩指南(Markdown / PDF / Word 多格式)
PC 音频(口哨音乐.mp3)
│
▼
LineIn ──▶ TLV320AIC33 (ADC, 8 kHz) ──▶ McBSP
│
▼
DM6437 实时 FIR 滤波
│
▼
LineOut ◀── TLV320AIC33 (DAC) ◀── McBSP ◀────┘
│
▼
耳机/音箱 + CCS Save Memory 导出 capture_pack
│
▼
MATLAB / Python 重建时域波形 + FFT 频谱对比
DSP_class-design_2026/
├── ccs_export/ # ★ 核心 CCS 导出包(实板部署用)
│ └── AD_FIR_DA_package/
│ ├── AD_FIR_DA/ # CCS 工程:main.c / fir_filter.c/.h / fir_coeffs_*.h / dm6437.cmd
│ ├── MATLAB/ # verify_capture_pack.m / verify_all_modes.m / temp_verify.m
│ ├── common/ # 板级支持包(include / lib / ccxml / gel)
│ ├── README.md # 包内使用说明(导入、构建、验证)
│ └── LAB_VERIFICATION.md # 实板验证记录模板
│ └── AD_FIR_DA_package.zip # 打包压缩档,可直接拷贝到实验室 PC
├── fir_design/ # MATLAB 滤波器设计脚本 + 仿真/对比图(fig1~fig10)
├── 实验4/ # 实验4「音频数据的采集和回放」CCS 工程与文档
├── 课设材料/ # 课程设计全部文档
│ ├── 课设报告_基于TMS320DM6437的音频滤波实时实现.{md,docx,pdf}
│ ├── 25.2dsp课设任务书(17周).{md,docx,pdf}
│ ├── DM6437_实板硬件调试与验证指南.{md,pdf}
│ ├── 答辩指南_基于TMS320DM6437音频滤波.{md,pdf}
│ ├── 报告草稿-MATLAB部分.md
│ ├── DSP课设参考资料/ # AIC33 / McBSP 数据手册、课程 PPT、MATLAB 参考
│ └── common/ # 板级支持包源码(与 ccs_export/common 对应)
├── 课设实验验证/ # 实板抓取数据与验证脚本
│ ├── {allpass,lowpass,hignpass}_pack.dat # CCS 导出的三种模式抓取数据
│ ├── dm6437_{allpass,lowpass,highpass}_compare.png
│ └── plot_verification.py # Python 版闭环验证绘图脚本
├── README.md
├── LICENSE # MIT
└── .gitignore
ccs_export/AD_FIR_DA_package/AD_FIR_DA/是本项目的权威源码位置;根目录不再保留源码副本,避免多份拷贝失同步。
| 类别 | 要求 |
|---|---|
| 硬件 | ICETEK-DM6437-A 实验箱 / 开发板,ICETEK-XDS100v2 仿真器,+5V 电源,耳机/音箱,音频转接线(PC ↔ LineIn、LineOut ↔ 耳机) |
| 软件 | Code Composer Studio v5(TI C6000 编译器),Windows 7/10 |
| 验证 | MATLAB(含 Signal Processing Toolbox),或 Python 3 + numpy / scipy / matplotlib |
- 将
ccs_export/AD_FIR_DA_package整个文件夹拷贝到实验室 PC(例如C:\DSP_AD_FIR_DA\AD_FIR_DA_package); - 打开 CCS,
Project → Import Existing CCS Eclipse Project,选择AD_FIR_DA_package; - 导入工程
AD_FIR_DA,选择Debug配置。
编辑 AD_FIR_DA/fir_filter.h 中的宏(默认旁路,便于先验证 AD-DA 通路有声):
#define FIR_ACTIVE_MODE FIR_MODE_BYPASS /* 旁路:输出 = 输入 */
#define FIR_ACTIVE_MODE FIR_MODE_LOWPASS /* 低通:抑制高频哨声,保留低频鼓点 */
#define FIR_ACTIVE_MODE FIR_MODE_HIGHPASS /* 高通:抑制低频鼓点,保留哨声 */- 右键工程 →
Clean Project→Build Project,产物为Debug/ad_fir_da.out(依赖..\common\include与..\common\lib\evmdm6437bsl.lib); - 连接仿真器与开发板,PC 音频输出接板载 LineIn,耳机接 LineOut;
Debug配置下连接目标、加载ad_fir_da.out,循环播放AD_FIR_DA/口哨音乐.mp3,听音验证滤波效果。
- CCS
Tools → Save Memory:格式16-Bit Hex - TI Style,起始地址capture_pack,长度4096字,导出如C:\DSP_capture\lowpass_pack.dat; - MATLAB:
cd ccs_export/AD_FIR_DA_package/MATLAB后运行verify_capture_pack(设置modeName为allpass/lowpass/highpass); - 或 Python:运行
课设实验验证/plot_verification.py,对三种模式批量生成波形与频谱对比图。
针对 8 kHz 采样的硬实时约束(每采样周期 125 μs),DSP 端 FIR 卷积做了以下优化:
- 消除取模:循环拆分(peeling)去掉内循环中的
%取模运算; - 32 位累加器:由
Int64改为Int32定点累加,消除慢速__mpyll库调用; - 单周期乘加:系数与数据均为 16 位 Q15,
Int16 × Int16 → Int32乘加可流水执行,双声道 126 次乘加远小于 125 μs 预算。
实板测试(ICETEK-DM6437-A):
- 低通模式:高频口哨声被极大衰减,低频鼓点完好保留;
- 高通模式:低频鼓点被有效抑制,尖锐哨声清晰保留;
- 闭环一致性:CCS 导出的
capture_pack经 MATLAB 重建的 FFT 频谱与 MATLAB 仿真结果高度一致(波形与频谱对比图见fir_design/与课设实验验证/)。
三种模式抓取数据与对比图位于 课设实验验证/,复现脚本为 plot_verification.py。
| 文档 | 说明 |
|---|---|
课设材料/课设报告_基于TMS320DM6437的音频滤波实时实现.{md,docx,pdf} |
完整课程设计报告(摘要、绪论、总体方案、FIR 设计、I²C/AIC33、McBSP、实时实现与优化、验证与总结) |
课设材料/25.2dsp课设任务书(17周).md |
课程设计任务书 |
课设材料/DM6437_实板硬件调试与验证指南.{md,pdf} |
实板调试步骤与常见问题排查 |
课设材料/答辩指南_基于TMS320DM6437音频滤波.{md,pdf} |
答辩要点梳理 |
实验4/实验4 音频数据的采集和回放实验-实验版.{md,docx,pdf} |
实验4 基础实验:AIC33 + McBSP 音频采集回放 |
本项目以 MIT License 开源,欢迎学习与二次开发。
本仓库为课程设计学习项目,实板验证依赖实验室 CCS/DM6437 环境;MATLAB/Python 仿真验证可在任意 PC 上复现。