FPGA开发这么多年,哪怕是已经在项目中拥有完整的Matlab定点化仿真、FPGA算法移植和仿真调试经验,但是对于数字信号处理的核心知识点,仍然是两眼一抹黑,更别提如何去设计和实用数字滤波器。
最近补习数字信号处理的基础知识,对于几种傅里叶、Z变换以及数字滤波器的设计,也算是有了一些新的认识,这里会陆续做一下总结和记录,温故而知新。
1 傅里叶级数与傅里叶变换
1.1 基本概念
|---------------------|---------------------------|--------------|---------------------|
| ++名称++ | ++时域++ | ++频域++ | ++使用场景++ |
| 傅里叶级数(FS) | 连续、周期 | 非周期、离散 | 数学、工程基础 |
| 傅里叶变换(FT) | 连续、非周期 | 非周期、连续 | 一般非周期信号 |
| 离散时间傅里叶变换(DTFT) | 离散、非周期 | 周期、连续 | 采样信号理论 |
| 离散傅里叶变换(DFT) | 离散、有限长**(可视为无限长里面的周期信号)** | 周期、离散 | 计算机实现 (FFT,快速傅里叶变换) |
1.2 傅里叶级数(FS)
对于连续的周期信号,可以拆分成无穷个正弦波(谐波)的叠加
周期为T的信号,其FS的公式:

其中
是直流分量
和
是振幅
是基频
是谐波频率(基频的整数倍)
使用欧拉公式,可以得到更加简洁的FS:

注意,这里原始的FS的n是从0~无穷(0为
),使用欧拉公式化简后n从负无穷~无穷,这里可以再做计算:
1.3 傅里叶变换(FT)
如果连续非周期信号,此时傅里叶级数FS无法使用,这里就得请出傅里叶变换FT:

傅里叶反变换:
