| |
Abstract
FIR滤波器是信号处理的基本单元,一般常用 dsp和FPGA实现。 MATLAB 提供了FDATOOL ,可对FIR 进行算法上的仿真和验证。本文主要记录FIR原理及MATLAB仿真时的主要事项。
Introduction
1. FIR原理
1.1 FIR属于数字信号处理范围,在说明FIR原理之前,先回顾几个概念及其之间的联系。
冲击响应 由单位冲激函数δ(t)所引起的零状态响应称为单位冲击响应,简称冲激响应,记为h(t)。
也叫做系统函数
卷积运算 定义在区间(-∞,+∞)上的两个函数的卷积记为 f(t)= f1(t)*f2(t)
对于数字时间信号,卷积的结果 是对于位相乘。
卷积还与多项式乘法,线性代数的相同的运算性质,这部分内容可以再网上查到,很启发思路。不多说了。
下面说它的作用,如果f(t) 满足 即连续信号可以一系列移位的冲击函数和抽样脉冲的连续积分得 到,个人看法:满足上述关系的系统即为线性时不变系统(LTI)。
它与系统的关系如下:
1.2 FIR结构原理
FIR 滤波器的实现结构通常有:直接型,转置型,级联型,频率取样型和线性相位型。下面介绍直接型,转置型和线性相位型三种结构
1.2.1 直接型
可以看到 直接型FIR 包括,N-1个延时移位单元,N个乘法器和N-1个加法器。
1.2.2 转置型
根据线性信号流图中的转置理论,把网络中所有支路的方向颠倒,且将输入x(n)和输出y(n)位置互换,则转置后的结构的输入输出关系和原来的一样(传输函数保持不变)。得到如下图所示的 FIR的转置结构:
线性相位型FIR滤波器有两个特点:
第一个特点线性相位,广泛用于数据通讯,图像传输等相位敏感场合;
第二个特点系数对称,可以减少一半的乘法器的设计;
2. FIR实现方法
(1) 窗函数设计法
从时域出发,把理想的无限长的hd(n)用一定形状的窗函数截取成有限长的h(n),以此h(n)来逼近hd(n),从而使所得到的频率响应H(ejω)与所要求的理想频率响应Hd(ejω)相接近。优点是简单、实用,缺点是截止频率不易控制。
(2) 频率抽样设计法
从频域出发,把给定的理想频率响应Hd(ejω)加以等间隔抽样,所得到的H(k)作逆离散傅氏变换,从而求得h(n) ,并用与之相对应的频率响应H(ejω)去逼近理想频率响应Hd(ejω)。优点是直接在频域进行设计,便于优化,缺点是截止频率不能自由取值。
(3) 等波纹逼近计算机辅助设计法
前面两种方法虽然在频率取样点上的误差非常小,但在非取样点处的误差沿频率轴不是均匀分布的,而且截止频率的选择还受到了不必要的限制。因此又由切比雪 夫理论提出了等波纹逼近计算机辅助设计法。它不但能准确地指定通带和阻带的边缘,而且还在一定意义上实现对所期望的频率响应实行最佳逼近。
3. matlab设计
在matlab中设计一个32阶低通滤波器,采样频率5K,截止频率0.1K。 然后用0.1k和0.5k正弦波叠加,得到滤波结果。
这原来没什么难度,但谁让我比较笨呢,耗了很长时间,有了点心得。 下图中由于滤波器的 采样频率为5k,
那么输入的正弦波波形何如体现出“频率”的概念呢??? 这就用到了采样关系,5k的采样频率 对500Hz的正弦波
每周期采样 10个点。在sinewave 对话框中 将 sample per period: 10 即可。 在 sample time: 1 。 这样 在scope中
横坐标 显示数值 可以理解为 “点数”,他与波形频率对应的关系为 :Fs / sample per period 。
后记: 感谢《matlab 数字信号处理》 王彬 老师回答我的问题!!!再次说声——谢谢您。
更新记录:
5.9更新
2.fir 结构与实现
3. matlab设计。 增加等纹波实现方法