mafan88的个人空间 https://blog.eetop.cn/?162539 [收藏] [复制] [分享] [RSS]

日志

FIR滤波器原理与matlab实现

已有 581 次阅读| 2011-9-19 19:10 |个人分类:数字信号处理

FIR滤波器原理与matlab实现  


 

Abstract

FIR滤波器是信号处理的基本单元,一般常用 dspFPGA实现。 MATLAB 提供了FDATOOL ,可对FIR 进行算法上的仿真和验证。本文主要记录FIR原理及MATLAB仿真时的主要事项。

Introduction

1. FIR原理

1.1  FIR属于数字信号处理范围,在说明FIR原理之前,先回顾几个概念及其之间的联系。

 

冲击响应  由单位冲激函数δ(t)所引起的零状态响应称为单位冲击响应,简称冲激响应,记为h(t)。

                  也叫做系统函数

卷积运算  定义在区间(-∞,+∞)上的两个函数的卷积记为 f(t)= f1(t)*f2(t)

                  (原)FIR滤波器原理与matlab实现 - donglianjie2005 - donglianjie2005的博客      

                 对于连续时间信号,卷积的结果是面积对于时间的函数,它的波形比都光滑。

                 对于数字时间信号,卷积的结果 是对于位相乘。

                 卷积还与多项式乘法,线性代数的相同的运算性质,这部分内容可以再网上查到,很启发思路。不多说了。

               

                 下面说它的作用,如果f(t) 满足         连续信号可以一系列移位的冲击函数和抽样脉冲的连续积分得       到个人看法:满足上述关系的系统即为线性时不变系统(LTI) 

                它与系统的关系如下:

 

               

 

 1.2  FIR结构原理

 
(原)FIR滤波器原理与matlab实现 - donglianjie2005 - donglianjie2005的博客 
可以看出 FIR的输出可由 移位,乘法和加法运算实现。 抛开具体器件FPGA或是DSP ,还是软件编程, 都是对前面三种运算的实现。      对上式取Z变换得到 系统函数H(Z)

 (原)FIR滤波器原理与matlab实现 - donglianjie2005 - donglianjie2005的博客

FIR 滤波器的实现结构通常有:直接型,转置型,级联型,频率取样型和线性相位型。下面介绍直接型,转置型和线性相位型三种结构

1.2.1 直接型

 

 (原)FIR滤波器原理与matlab实现 - donglianjie2005 - donglianjie2005的博客

可以看到 直接型FIR 包括,N-1个延时移位单元,N个乘法器和N-1个加法器。

1.2.2 转置型

根据线性信号流图中的转置理论,把网络中所有支路的方向颠倒,且将输入x(n)和输出y(n)位置互换,则转置后的结构的输入输出关系和原来的一样(传输函数保持不变)。得到如下图所示的 FIR的转置结构:

(原)FIR滤波器原理与matlab实现 - donglianjie2005 - donglianjie2005的博客
 
转置结构实现的FIR滤波器有两个特点:
第一个特点可以简化其乘法器的设计,因为所有乘法器的被乘数都相同;
二是不需要额外的寄存器来存储采样数据。
 
1.2.3 线性相位型
如果好h(n)满足奇对称或偶对称 ,该种滤波器就具有线性相位。它对通带内不同频率分量产生的相移θ(ω)为常数。
偶对称:h(n)=h(N-n-1)    ;    相移θ(ω) = - kω 。     第一类 线性相位。
奇对称:h(n)= - h(N-n-1) ;   相移θ(ω) = π/2 - kω 。第二类 线性相位。
 
N为奇数时,线性相位FIR 信号流图
(原)FIR滤波器原理与matlab实现 - donglianjie2005 - donglianjie2005的博客
 
N为偶数时,线性相位FIR 信号流图
 
(原)FIR滤波器原理与matlab实现 - donglianjie2005 - donglianjie2005的博客
 
 

 线性相位型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正弦波叠加,得到滤波结果。

FIR原理与matlab实现 - donglianjie2005 - donglianjie2005的博客

 

这原来没什么难度,但谁让我比较笨呢,耗了很长时间,有了点心得。 下图中由于滤波器的 采样频率为5k,

那么输入的正弦波波形何如体现出“频率”的概念呢???   这就用到了采样关系,5k的采样频率 对500Hz的正弦波

每周期采样 10个点。在sinewave 对话框中 将 sample per period:  10 即可。 在 sample time:  1 。 这样 在scope中

横坐标 显示数值 可以理解为 “点数”,他与波形频率对应的关系为  :Fs / sample per period  。

 

FIR原理与matlab实现 - donglianjie2005 - donglianjie2005的博客
 
 
 
第一幅 图是 输入的 0.1k 和0.5k 的正弦波。
第二幅 图是 叠加后的图形
第三幅 图是 滤波后波形
 
FIR原理与matlab实现 - donglianjie2005 - donglianjie2005的博客

 


后记: 感谢《matlab 数字信号处理》 王彬 老师回答我的问题!!!再次说声——谢谢您。

 

更新记录:

5.9更新

2.fir 结构与实现  

3. matlab设计。 增加等纹波实现方法


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 6

    粉丝
  • 0

    好友
  • 16

    获赞
  • 6

    评论
  • 105789

    访问数
关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-10-15 08:36 , Processed in 0.027693 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部