本仓库包含"数字信号系统设计与实现"课程的全部五次递进式实验项目,以 TI TMS320C5409x/C6416 系列 DSP 为核心平台,覆盖从底层汇编编程、I/O 外设驱动、C/混合编程范式、多模块系统集成到前沿嵌入式机器学习部署的全链路开发过程。
dsp/
├── DSP2/ # 实验三拓展:DSP OCR 打印体字符识别系统
│ ├── src/ # C 源文件(main, 预处理, 分割, 识别, 模板库)
│ ├── inc/ # 头文件
│ ├── tools/ # Python 辅助工具(模板生成、PNG转换、验证)
│ ├── images/ # 测试图片
│ ├── base.cmd # CCS3.1 链接器配置(TMS320C6416)
│ └── README.md # 项目完整文档
├── exp5_embedded_ml/ # 实验五:嵌入式机器学习(MNIST)
│ ├── train.py # 朴素贝叶斯训练脚本
│ ├── mnist_bayes_model.h # 训练好的模型参数
│ ├── test_images_10.h # 测试图像数据
│ ├── mnist_data/ # MNIST 数据集
│ └── result/ # 实验截图和演示视频
├── result/ # 实验一~四的成果素材
├── reports/ # 实验报告文档(.docx / .md)
├── scripts/ # 报告生成脚本
└── README.md # 本文件
| 实验 | 名称 | 平台 | 核心内容 |
|---|---|---|---|
| 实验一 | 38阶IIR滤波器 | TMS320C5409 | DSP 汇编基础、MAC 乘累加、循环缓冲区、CMD 链接器脚本、FFT 频谱验证 |
| 实验二 | LCD人机交互 | TMS320C5409 | I/O 外设驱动(PORTW/PORTR)、LCD 显示、按键中断响应 |
| 实验三 | C语言与混合编程 | TMS320C5409 | 汇编↔C 混合编程边界、函数调用约定、DSP OCR 字符识别系统 |
| 实验四 | 数字示波器 | TMS320C5409 | 多模块系统集成、ADC 采样、LCD 波形绘制 |
| 实验五 | 嵌入式机器学习 | TMS320C6416 | PC 端训练、DSP 端推理部署、朴素贝叶斯/MLP MNIST 识别 |
基于 TMS320C6416 DSP 的打印体字符模式识别系统,支持 62 类字符(0-9, A-Z, a-z)的自动分割与识别。
- 算法流程:PNG 输入 → 定点灰度化 → 固定阈值二值化 → 垂直投影分割 → 最近邻缩放 (32×48) → 模板匹配
- 核心优化:全定点运算(C6416 无 FPU)、行优先 SDRAM 访问、模板库 93KB 锁定 L2 Cache
- 识别率:≥ 95%(62 类中 ≥59 类正确)
- 详见 DSP2/README.md
- IDE:Code Composer Studio 3.1
- 仿真器:TI XDS510
- 开发板:TMS320C54x DSK / TMS320C6416 DSK
- Python 环境:Python 3.x + Pillow(模板生成、图像预处理)
完整报告见 reports/ 目录,含五次分项报告、综合报告封面及合并版总报告。