本文我们学习低通滤波器的设计。

1、问题描述

  现在考虑我们有信号m(t)=Rect(t−τ/2τ)m(t)={\rm Rect}(\frac{t-{\tau}/{2}}{\tau})m(t)=Rect(τt−τ/2​)为矩形脉冲,波形如下

m(t)m(t)m(t)的傅立叶变换为M(f)=τSa(πfτ)e−jπfτM(f)=\tau{\rm Sa}(\pi f \tau)e^{-j\pi f\tau}M(f)=τSa(πfτ)e−jπfτ,其幅频特性如下图所示。

显然,其带宽是无穷大,第一过零点带宽为10Hz。现在我们想要设计一个低通滤波器,截止频率为10Hz。看看上面的矩形脉冲信号通过这样的滤波器之后,波形和频谱会有什么样的变化。设滤波器输出信号为s(t)s(t)s(t),系统模型如下图(a)所示。
我们希望设计的滤波器,应该是理想低通滤波器,其频率传递函数H(f)=Rect(f2fH)H(f)={\rm Rect}\Large( \frac{f}{2f_H}\Large)H(f)=Rect(2fH​f​),这里的滤波器上截止频率为fH=10f_H=10fH​=10Hz,如下图(b)所示。

2、用窗函数法生成FIR滤波器

首先我们考虑用窗函数法实现上述低通滤波器。由于冲激响应为h(t)=2fHSa(2πfHt)h(t)=2f_H{\rm Sa}(2\pi f_Ht)h(t)=2fH​Sa(2πfH​t),我们对其进行抽样,得到的离散序列为
h(nTsample)=2fHSa(2πfH⋅nTsample),h(nT_{\rm sample})=2f_H{\rm Sa}(2\pi f_H\cdot nT_{\rm sample}), h(nTsample​)=2fH​Sa(2πfH​⋅nTsample​),简写为
(1)h(n)=2fHSa(2πfH⋅n).\tag{1} h(n)=2f_H{\rm Sa}(2\pi f_H\cdot n). h(n)=2fH​Sa(2πfH​⋅n).(1)这个滤波器是不可实现的,因为它的冲激响应长度nnn是无限的,并且是非因果的。为了产生一个有限长度的冲激响应,就需要用窗口对其进行截断。通过截断处理并保留脉冲响应的中心部分,就可以得到线性相位FIR滤波器。若滤波器上截止频率为fHf_HfH​,系统抽样间隔为TsampleT_{\rm sample}Tsample​,冲激响应的长度NNN=51,这里nnn也成为FIR滤波器抽头系数的个数,则得到的FIR滤波器的冲激响应序列为

h =2*f_H*sinc(2*f_H*(-25:25)*T_sample);

这里采用的窗口是简单的矩形窗。下面的命令可以显示滤波器的频率响应

fvtool(h,1)

可以看到冲激响应如下图所示。在第nnn个采样点上的幅度大小就是FIR滤波器的抽头系数h(n)h(n)h(n),这里n=1,2,...51n=1,2,...51n=1,2,...51。注意由于为物理可实现滤波器,因此h(26)h(26)h(26)对应的是中心点,即(1)中n=0n=0n=0的点。

下图为上述FIR滤波器的幅频特性,注意纵坐标为分贝值,横坐标为归一化频率(即真实频率除以抽样频率)。

我们发现,由于对理想滤波器进行了截断处理,因此得到的滤波器就不再是理想滤波器了。首先从通带到阻带的不是陡峭的,且阻带里的幅度也不为零,存在纹波。事实上,如果我们增大抽头系数个数NNN,传输特性会有所改善。下面两张图分别为N=101N=101N=101和N=501N=501N=501时的幅频特性,显然通带变得更加平坦,阻带电平也更小。

2、用fdatool设计滤波器并保存抽头系数

  实际在仿真过程中,我们利用MATLAB中的滤波器设计插件fdatool,可以很方便地在可视化界面中设计滤波器参数,然后导出参数。

  1. 在MATLAB命令行窗口中,输入fdatoo命令,就可以打开滤波器设计界面,如下图所示。
  2. 参数设计:如果采样速率为100Hz,从通带到阻带的过渡带为[8Hz,10Hz],低通滤波器,等纹波FIR。设置完成后,点下方的“Design Filter”按钮,就可以设计出滤波器来。可以在左上方“Current Filter Information"窗口中看到,设计出的滤波器阶数(即抽头数NNN)为63。正上方“Magnitude Response(dB)”窗口中为滤波器的幅频特性,横坐标最大值为fsample/2f_{\rm sample}/2fsample​/2。

    可以看到由于选择了“等纹波”类型,上图中阻带内的纹波是相同的。如果改成"Window"类型,频率传递函数如下图所示,此时纹波不在相等。


在fdatool界面中,菜单栏下有一排按钮,选择其中的冲激响应按钮,可以看到滤波器的冲激响应,如下图所示。显然,每个原点的幅值就是滤波器的抽头系数,两个点之间的横坐标差值就是采样间隔TsampleT_{\rm sample}Tsample​。

若点击“Filter Coefficients”按钮,可以看到滤波器的抽头系数。若N=63N=63N=63,可以看到"Filter Coefficients"窗口显示的63个抽头系数。

3. 输出抽头系数:我们需要把设计好的滤波器抽头系数保存下来。尽管有几种不同的方式,我们这里主要介绍如何保存在内存中供MATLAB的程序调用。首先在fdatool界面下点击菜单"File–>Export…",就会弹出下图中右边的"Export"界面。在界面中选择"Workspace"和“Num”,滤波器系数就输出到MATLAB工作空间中的“Num”向量中。回到MATLAB主菜单,可以在工作区中看到"Num"向量,这样就可以直接进行调用了。如下图所示。

4. 信号通过滤波器:我们采用卷积函数conv进行运算。得到波形如下图所示,显然输出波形与输入波形相比,有时延。请思考时延大小取决于什么?

滤波器输出频谱如下图所示。其中红颜色图形为输出信号频谱。经过滤波后,频率大于10Hz的成分被滤除掉了。

现代通信原理A.2:FIR低通滤波器设计相关推荐

  1. Python 实现FIR低通滤波器设计

    FIR(Finite Impulse Response,有限脉冲响应)低通滤波器是一种数字滤波器,它可以在数字信号处理中用来对信号进行低通滤波. 下面是一个简单的 Python 代码示例,用于设计 F ...

  2. 通信原理 简易数字基带信号系统仿真设计的matlab实现(带眼图)

    数字基带传输系统的输入信号是由终端设备或编码设备产生的二进制脉冲序列,通常是单极性的矩形脉冲信号(NRZ 码).为了使这种信号适合于信道的传输,一般要经过码形变换器,把单极性的二进制脉冲变成双极性脉冲 ...

  3. 通信原理及系统系列10—— 设计无码间串扰的通信系统(奈奎斯特第一准则)

  4. 基于Matlab的模拟通信实验平台设计,【通信原理仿真实验】通信原理虚拟实验仿真平台的设计和实现_玛雅作文网...

    作文「通信原理虚拟实验仿真平台的设计和实现」共有 4564 个字,其中有 2704 个汉字,1316 个英文,162 个数字,382 个标点符号.作者佚名,请您欣赏.玛雅作文网荟萃众多优秀学生作文,如 ...

  5. 通信原理实验c语言,基于LabVIEW软件的通信原理实验教学平台设计方案

    1.引言本文引用地址:http://www.eepw.com.cn/article/201809/388499.htm <通信原理>课程是我校通信工程专业.电子信息工程专业的一门专业基础课 ...

  6. 【滤波器】基于高通+低通+带通+带阻FIR滤波器设计含Matlab源码

    1 简介 本文利用kaiser窗​实现了FIR带通数字滤波器的设计,设计结果符合FIR数字滤波器技术指标要求. 2 部分代码 %------------------------------------ ...

  7. 【STM32F407的DSP教程】第37章 STM32F407的FIR低通滤波器实现(支持逐个数据的实时滤波)

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第37章       STM32F407的FIR低通滤波器实 ...

  8. 使用MATLAB设计FIR低通滤波器

    ** 使用MATLAB设计FIR低通滤波器 ** 关于现代通信原理作业. https://blog.csdn.net/tanghonghanhaoli/article/details/10053358 ...

  9. 通信原理课程设计报告

    目录 引言............................................................................................... ...

最新文章

  1. html5 drap 文件夹,带有显示ID的Html5 drap and drop问题
  2. hashmap 判断key是否存在
  3. CentOS6.4之Linux软件包管理
  4. C#中对注册表的操作指南
  5. 2017的金秋,派卧底去阿里、京东、美团、滴滴带回来的面试题及答案
  6. Oracle安装图文详解!
  7. 信息与通信工程专业知识点预览(复试必看)
  8. day18 - 正则表达式
  9. 基于VPX总线架构下的Virtex-7与C6678信号处理的VPX功能板简介
  10. “以图搜图”引擎及网站合集
  11. 用Python做一个自动发送邮件的工具
  12. yyyy-MM-dd 转化成 中国标准时间(Tue Dec 31 2019 00:00:00 GMT+0800 (中国标准时间))
  13. 无中介租房搜房工具 V1.0
  14. 自动化运维工具——ansile详解
  15. 社区项目发现的问题四 datatable的注意事项
  16. 伸缩式起重机的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  17. 高新技术企业申报认定需要满足哪些条件?
  18. COPC酞菁钴,cAS号:3317-67-7磺化酞菁钴 催化剂 深蓝色粉末 磺化酞菁钴
  19. python:求出歌手的得分
  20. windows 定时重启

热门文章

  1. 计算机二级数据库mysql题库_全国计算机二级mysql数据库模拟试题
  2. 《Wireshark网络分析从入门到实践》整理和总结
  3. 经营三类医疗器械不使用计算机,三类医疗器械计算机管理系统
  4. UltraISO制作U盘启动盘安装Win7/9/10系统攻略
  5. 【内网学习笔记】10、ew 的使用
  6. 稀疏矩阵的相加(三元组)
  7. c++学习 28.案例-五只小猪称体重
  8. tmac v6设置中文_Technitium MAC Address Changer(mac地址修改器) 免费版v6.0.7
  9. 【25】核心易中期刊推荐——智能控制机器人
  10. 07-ET框架的数据库连接