目录
1. 数字信号滤波器分类
数字信号处理中滤波器主要分为两类:
经典滤波器:主要解决的是输入信号的噪声分布在不同的频带上。通过一个线性滤波器后,可以有效的将噪声滤除。但是当信号和噪声的频带重叠时,经典滤波器失效。经典滤波器有:低通、带通、高通、带组和全通滤波器等;
现代滤波器:主要解决的是从含有噪声的数据记录(或时间序列)中估计出信号的某些特征或者信号本身。其主要利用了随机信号的统计特征(例如自相关函数,功率谱函数)去估计有用信号。现代滤波器有:维纳、卡尔曼、自适应滤波器等。
2. 滤波器参数
对于设计一款滤波器,一般需要确定的参数有:通带截至频率()、阻带截止频率()、通带容限()、阻带容限()。可以换算出:通带内最大的衰减(),阻带内最小的衰减()。
以低通滤波器为例说明:
3. 滤波器在频域和时域处理
一般滤波器是在时域进行处理,但是有些信号在时序不好处理,而转换成频域后很容易分辨并处理。那些滤波器是用在时域的,那些是用在频域的?
我们常用的有限冲击响应滤波器和无线冲击响应滤波器等都是在时域上对信号进行处理的。包含延时及乘法和加法运算。
4. 滤波器常用信号
单位脉冲信号,主要用于系统的测试,通关观察系统的响应来判断系统的特性;
序列的单位脉冲序列
5. QUARTUS与MATLAB联合设计滤波器方法
使用MATLAB来辅助FPGA的设计主要有三种方法:
1)通过MATLAB仿真得到想要的滤波器的特性及参数,然后将这些参数直接用于FPGA中;
2)通过MATLAB得到需要测试的数据,将其保存在.dat文件中,由quartus读取处理后,再将输出数据保存,最后由matlab读取分析;
3)由matlab设计整个数字信号处理系统,将其直接转换成VHDL或verilog语言给quartus。但是直接转换过来的代码在时序延迟,资源占用率等方面需要优化。在对时序要求严格的应用下,直接转换后并不能满足要求。
6. 在FPGA代码设计时,需考虑
数字信号处理在FPGA中实现,主要是将滤波器的过程转变为对数据的加减乘除或移位等运算。而在运算中主要需要考虑:
1)功能实现的前提下,运算量尽量少,速度尽量高。实现逻辑资源占用率与速度的均衡;
2)变量位宽。数字信号在硬件系统中实现时,由于受寄存器长度的限制,不可避免的会产生有效字长效应。所以需要了解有效字长效应对数字系统的影响,在通过仿真来确定最终的量化位数,寄存器长度等;