当前位置:首页 > 心得体会 > [基于MATLAB窗函数法辅助设计FIR滤波器]窗函数法设计fir数字滤波器
 

[基于MATLAB窗函数法辅助设计FIR滤波器]窗函数法设计fir数字滤波器

发布时间:2019-06-28 04:04:24 影响了:

  摘要:该文简要介绍设计Fir滤波器的流程,并对MATLAB中滤波器设计的相关函数做了一些介绍。同时给出了如何利用MAT? LAB的信号处理工具箱中的函数设计数字滤波器,并对两种设计方法的结果进行仿真分析。
  关键词:数字滤波器;MATLAB;数字信号处理
  中图分类号:TN911文献标识码:A文章编号:1009-3044(2012)18-4564-03
  The Design Method of Assistance of Digital Filter based on MATLAB Window Function
  WEI Peng
  (Anhui Medical Apparatus Examine Center, Hefei 230051, China)
  Abstract: This article mainly introduces the process of the Fir filter design, and did some introduction to the related function of filter de? sign in MATLAB. At the same time, it discuss how to make use of MATLAB function in the signal processing tool box to design digital fil? ter, and carry on imitating true analysis to the result of two kinds of design methods in the last.
  Key words: digital filter; discreet time filter; MATLAB; digital signal process
  在数字信号处理中滤波器[1]是一种特别重要的线性是时不变系统。滤波器的可以分模拟滤波器与数字滤波器。模拟滤波器是指能用于放大或衰减信号某些频率分量的频率选择电路。它通常是由R、L、C或运算放大器等模拟元器件组成的。数字滤波器则不同,它指的是完成信号滤波处理功能的有限精度算法实现的离散时间线性时不变系统。它通过改变包含在离散时间信号中的谱信息,使其产生新的离散时间信号来实现滤波功能的。由于数字滤波器往往通过数字计算法实现,因此它本身既可以是用数字硬件装配成的一台完成指定运算的专用数字计算机,也可以将所需的运算编成程序,让通用计算机执行。这也是可以用MATLAB来进行数字滤波器设计的原因——设计数字滤波器本身就是对于如何进行运算的设计。
  设计数字滤波器本身就是对于如何进行运算的设计。
  对于数字滤波器我们可以按单位取样响应时间对其进行分类:
  1)无限长单位脉冲响应(IIR)滤波器:该滤波器的单位取样响应h(n)延续到无限长。
  2)有限长单位脉冲响应(FIR)滤波器:该滤波器的单位时间响应h(n)是一个有限长序列。
  与IIR滤波器不同,FIR系统的幅度响应大多都伴有线性相位的假设条件。因此,FIR滤波器的设计方法以直接逼近所需离散时间系统为基础。其中,最常用也是最简单的就是窗函数法。这里我介绍一下窗函数法的MATLAB辅助设计。设计过程如下:
  1)根据技术要求确定待求滤波器的单位取样响应或者频率响应;
  2)根据对过渡带要求和阻带要求,选择适当的窗函数;
  3)确定窗口长度N;
  4)计算滤波器的单位取样响应h(n);
  5)检测所设计的滤波器性能,验算技术指标是否满足条件。
  由于频率响应的确定来源于所要技术指标要求,大家可根据具体的要求确定。因此,我们从第二步来逐一叙述。
  b = fir2(N,f,m,npt,lap,window)
  参数含义:b同fir1
  N同fir1
  window也同fir1
  f是一个[0,1]的频率向量,1映射到Nyquist频率。f的第一
  个值必须是0,最后一个值必须是1;向量中的元素要求
  递增排列
  m是一个指出在f对应频率点需要幅度的向量;m与f同阶
  npt指对频率响应进行内插点数,默认为512
  lap用于指定fir2在重复频率点附近插入的区域大小
  我们以例2来说明fir2的用法:
  例2:程序如下:
  f = [0 0.1 0.2 0.3 0.4 0.6 0.7 0.8 0.9 1];%设置频率向量f
  m = [1 1 0 0 1 1 0 0 1 1];%设置频率向量m
  b = fir2(80,f,m);%计算FIR滤波器系统函数的系数[h,w] = freqz(b,1,1024);%计算FIR滤波器的频率响应
  plot(f,m,w/pi,abs(h));%画出并比较理想与fir2函数设计的滤波器legend(’理想的’,’fir2设计的’);%设置标签说明两种曲线
  grid;
  title(’幅度响应比较’);%设置标题
  运行结果如图2:图2例2的运行结果
  例2是用80阶设计的,如果用更高阶数来设计可以得到更逼近的设计结果。由此可见这种方法虽然阶数较高,但是却可以随心所欲的进行设计。
  当然除了以上叙述的方法以外,还有更多的FIR滤波器设计方法,MATLAB的信号处理工具箱中也有其它的一些函数可以完成FIR滤波器的设计。比如,凯撒窗函数法、最小二乘法等。这里仅仅介绍上述两种方法供大家参考。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3