✨ 理解数字信号处理系列笔记——Micropython版
理解数字信号处理
数字信号处理将模拟信号转换为数字信号,这样的离散值在处理时会有哪些不同于模拟量的方式呢?
模拟信号处理与数字信号处理的差异是什么呢?能够达到同样的设计结果呢?
怎么实现数字信号处理呢,理论与实现之间的如果过渡的呢?
本系列笔记主要集中对以上问题进行学习、思考、验证的记录
笔记采用的工具
软件:
1)信号处理软件:MATLAB、
2)硬件开发软件:CanMV K230 IDE 串口上位机(VOFA+)
硬件:
1)传感器:ADC、DAC、串口模块、摄像头
2)数据处理单元:K230
自备:
1)数字信号处理相关书籍(因为重点会介绍算法到硬件部署的内容)
2)Micropython相关资料(将理论转换为Micropython代码)
前言
实现数字信号处理,在硬件上运行输出结果可以更加感性直观地理解数字信号处理。同时,对于算法能否应用也有一定的认识,避免盲目一味追求高大上的算法,尽量实际应用算法。
对于硬件的选择,国产、资料多、编程简单、支持AI。相对而言,AI对于大多数MCU运行一个简单的神经元是没问题的,但AI模型含有大量参数内存与计算速度往往受限,较难部署到设备端。
嘉楠勘智的K230的RISC-V芯片成为了一个很好的选择,笔记使用CanMV K230相关开发板。可以在利用MicroPython快速开发DSP算法与AI算法,可以达到验证DSP效果,降低学习的时间成本。
目的:将DSP理论公式转换为Micropython代码,部署到CanMV K230开发板中,实现理论并应用
让我们开始用MicroPython(代码)在CanMV K230开发板(硬件)上实现DSP算法(理论)吧
笔记主要包含两个部分的内容:
1)基本数字信号理论算法的实现,持续更新
2)数字信号处理的简单应用,持续更新
目录
1 CanMV K230的DSP框架
1.1 CanMV K230的DSP框架
1.2 CanMV K230 ADC案例(AD7606)
1.3 CanMV DAC案例(TLV5638)
1.4 CanMV UART案例
2 理解傅里叶变换
2.1 傅里叶变换
CanMV k230 案例2.1——DFT实现
CanMV k230 案例2.2——FFT实现
CanMV k230 案例2.3——ADC+DFT/FFT+UART测试
CanMV k230 案例2.4——量化误差(四)
CanMV k230 案例2.5——FFT加速
CanMV k230 案例2.6——多种实现FFT的方式(扩展内容)
2.2 傅里叶变换扩展
CanMV k230 案例2.7——短时傅里叶STFT
CanMV k230 案例2.8——STFT参数理解
CanMV k230 案例2.9——实时STFT(ADC+STFT)(三)(预告)
3 理解FIR滤波器
CanMV k230 案例3.1——FIR滤波器
CanMV k230 案例3.2——实时FIR滤波器原理
CanMV k230 案例3.3——实时FIR(ADC+FIR+UART)
4 理解IIR滤波器
CanMV k230 案例4.1——IIR滤波器
CanMV k230 案例4.2——实时IIR滤波器原理
CanMV k230 案例4.3——实时IIR(ADC+IIR+UART)
5 理解小波变换
CanMV k230 案例5.1——小波变换
CanMV k230 案例5.2——离散小波变换
CanMV k230 案例5.3——小波奇异性检测
6 理解S变换(Stockwell Transform)
Canmv k230 案例6.1—— S变换(Stockwell Transform)
Canmv k230 案例6.2—— S变换实现
7 理解经验模态分解EMD
Canmv k230 DSP案例7.1——EMD经验模态分解简介
Canmv k230 DSP案例7.2——EMD基本原理
Canmv k230 DSP案例7.3——EMD Canmv k230 实现
数字信号处理算法应用
大概是一个复杂信号,采用上述的各种DSP算法处理并比较优劣
8 应用案例
DSP+AI综合应用案例1——三种波形识别
目前的内容如上所示,欢迎交流讨论