为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

ccs仿真fir带通滤波器 利用MATLAB仿真软件系统结合窗函数法设计一个数字带通FIR滤波器

2017-10-23 39页 doc 78KB 150阅读

用户头像

is_594886

暂无简介

举报
ccs仿真fir带通滤波器 利用MATLAB仿真软件系统结合窗函数法设计一个数字带通FIR滤波器ccs仿真fir带通滤波器 利用MATLAB仿真软件系统结合窗函数法设计一个数字带通FIR滤波器 课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位:信息工程学院 题 目:利用MATLAB仿真软件系统结合窗函数法设计一个数字带通FIR滤波器 初始条件: 1. 数字信号处理与滤波器基础知识 2. 《信号与系统》基本理论知识 3. MATL… 啤酒厂实习心得 为期一个星期的实习结束了,我在这一个星期的实习中学到了很多在课堂上根本就学不到的知识,受益非浅。现在我就对这一个星期的实习做一个工作小结。首先介绍一下我的实习单...
ccs仿真fir带通滤波器 利用MATLAB仿真软件系统结合窗函数法设计一个数字带通FIR滤波器
ccs仿真fir带通滤波器 利用MATLAB仿真软件系统结合窗函数法一个数字带通FIR滤波器 课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位:信息工程学院 题 目:利用MATLAB仿真软件系统结合窗函数法设计一个数字带通FIR滤波器 初始条件: 1. 数字信号处理与滤波器基础知识 2. 《信号与系统》基本理论知识 3. MATL… 啤酒厂实习 为期一个星期的实习结束了,我在这一个星期的实习中学到了很多在课堂上根本就学不到的知识,受益非浅。现在我就对这一个星期的实习做一个工作小结。首先介绍一下我的实习单位:xxx啤酒,1998年2月成立,注册资金1.8亿,年产量15万吨.xx… 物联网技术与应用多选 A 按照部署方式和服务对象可将云计算划分为(ABC ) A、公有云 B、私有云 C、混合云。 1 D、国有云 C 采用智能交通管理系统(ITMS)可以(ABC ) A.防止交通污染. C.减少交通事故. B.解决交通拥堵 车载网络的主… 课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位:信息工程学院 题 目:利用MATLAB仿真软件系统结合窗函数法设计一个数字带通FIR滤波器 初始条件: 1. 数字信号处理与滤波器基础知识 2. 《信号与系统》基本理论知识 3. MATLAB编程基础知识 4. 装有MATLAB的PC机 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1、课程设计工作量:1周。 2、技术要求:利用MATLAB仿真软件系统结合窗函数法设计一个数字带通FIR滤波器 3、查阅至少5篇参考文献。按《武汉理工大学课程设计工作》要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。 时间安排: 2 指导教师签名:年月日 系主任(或责任教师)签名:年月日 摘要 随着数字技术的发展,滤波技术逐渐由模拟滤波技术扩展到了数字滤波技术。数字滤波技术是指凭借数字技术实现滤波,在软件中对采集到的数据进行的处理形成滤波效果。 数字滤波技术应用集中体现在数字滤波器。数字滤波器由数字乘法器、加法器和延时单元组成的一种算法或装置。数字滤波器的功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。FIR滤波器相比于IIR滤波器,在信道具有线性相位特性的图像处理以及数据传输中显现出了其优势,FIR滤波器具有严格的线性相位,总是稳定,总能用因果系统来实现,可以运用快速傅里叶变换(FFT)算法来实现过滤信号,从而可大大提高运算效率。 FIR滤波器的设计方法主要有窗函数法、频率取样法和等波纹逼近法。其中最常用的是窗函数法。窗函数具体可分为六种窗函数,分别为矩形窗、三角窗、汉宁窗、海明窗、布拉克曼窗和凯泽窗。本报告实现了在MATLAB环境下用窗 3 函数法设计FIR滤波器,并给出了利用MATLAB环境下的 通信工作箱实现的FIR滤波器的方法。 关键词:数字滤波器;FIR滤波器;窗函数法;MATLAB。 With the development of digital technology, the filtering technique is extended to the digital filtering technology from the analog filtering technique .The digital filtering technology achieves filtering by digital technology. The datacollected in the softwarewill be disposed to eliminate interference. The application of digital filtering technology is embodied in the digital filter. A digital filter is an algorithm or device consisting of a digital multiplier, adder, and a delay unit. The function of the digital filter is to operate the digital code of the input discrete signal, in order to achieve the purpose of changing the frequency domain. According to characteristics of the impulse response function, the impulse response function can be divided into two classes: infinite impulse response (IIR) filter and finite impulse response (FIR) filter. FIR filter compared to IIR filter shows its advantages in the area of image processing and data transmitting whose 4 channel has linear phase characteristics. The FIR filter has the strict linear phase, is always stable, can be achieved with the causal system and can filtersignal by using fast Fourier transform (FFT) algorithm, which can greatly improve the computational efficiency. The design methods of FIR filter mainly include window function method, frequency sampling method and equal ripple approximation method. Window function method is the most commonly used method. Window function can be divided into six kinds of window functions, respectively, for the rectangular window, triangular window, Hamming window, Hamming window, Blackman window and Kaiser window. This report implementsusing the window function method to design the FIR filter in the MATLAB environment, and the use the communication work box of the MATLAB environment to finish the. FIR filter. Key words:the digital filter; the FIR filter; the window function method; MATLAB. 5 1. 绪 论 ............................................................................................................................................ 1 2. 设计原 理 .................................................................................................................................... 2 2.1 MATLAB .......................................................................................................................... 2 2.2 数字滤波技 术 .................................................................................................................. 3 2.3 FIR滤波 器 ........................................................................................................................ 3 2.4 窗函数设计 法 .................................................................................................................. 4 2.4.1 设计原 理 ............................................................................................................... 4 6 2.4.2 设计影 响 ............................................................................................................... 5 2.4.3 窗函数种 类 ........................................................................................................... 6 3. 设计内 容 .................................................................................................................................. 10 3.1 MATLAB中窗函数介 绍 ............................................................................................... 10 3.2 设计方 案 ........................................................................................................................ 10 3.3 设计参 数 ........................................................................................................................ 11 4. 仿真与分 析 .............................................................................................................................. 12 4.1 窗函数的时域波 7 形 ........................................................................................................ 12 4.2 FIR滤波器的实 现 .......................................................................................................... 13 4.2.1 函数法设计FIR滤波 器 ..................................................................................... 13 4.2.2 通信工具箱设计FIR滤波 器 ............................................................................. 19 5. FIR滤波器测 试 ........................................................................................................................ 22 5.1 FIR滤波器滤波性能测 试 .............................................................................................. 22 5.2 FIR滤波器稳定性测 试 .................................................................................................. 24 5.3 FIR滤波器时延测 试 ...................................................................................................... 26 6. 设计结论与体 8 会 ................................................................................................. ..................... 27 7 致 谢 ................................................................................................. .......................................... 28 参考文 献 ................................................................................................. ...................................... 29 附录:MATLAB程 序 ................................................................................................. ................ 30 1. 绪论 随着数字技术日益的发展与应用,数字信号处理已经成为 一门极其重要的学科和技术,相应的滤波技术的发展领域也 得到了扩展,由传统的模拟滤波技术扩展到了先进的数字滤 波技术。在数字信号处理中数字滤波器占有极其重要的地 位,它具有精度高、可靠性好、灵活性大等优点。这些优点 使其在通信、语音、图像、自动控制等众多领域得到了广泛 的应用。数字滤波器的功能是对输入离散信号的数字代码进 行运算处理,以达到改变信号频谱的目的。 数字滤波器根据其单位冲激响应函数的时域特性可分为两 类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤 9 波器。这时FIR滤波器相比于IIR滤波器优势在于:FIR滤波器具有严格的线性相位,同时又可以具有任意的幅度特性;此外FIR滤波器的单位抽样响应是有限长的,因此滤波器一定稳定;再有,只要经过一定的延时,任何非因果有限长序列都能变成因果有限长序列,因而总能用因果系统来实现。最后,FIR滤波器由于单位冲激响应是有限长的,因而可以用快速傅里叶变换(FFT)算法来实现过滤信号,从而可大大提高运算效率。 数字滤波器的设计通常借助数学软件实现。MATLAB就是常用软件之一。MATLAB是矩阵实验室(Matrix Laboratory)的简称,是一种用于算法开发、数据可视化、数据分析及数值计算的高级技术计算语言和交互环境。设计数字滤波器常使用MATLAB软件。这种方法与传统的设计思路相比较,是非常的简便的。因为MATLAB具有计算功能强大的特点,且使用MATLAB绘图非常方便,拥有功能强大的工具箱。MATLAB工具箱主要包含两个部分:核心部分和各种可选的工具箱。且除内部函数以外,MATLAB的所有核心文件和工具箱文件都是可读可写的源文件,用户可通过对源文件的修改及加入自己的文件构成新的工具箱。除上述优点以外,MATLAB的帮助功能的强大更是其显著优势之一。 由上述可知,在进入信息时代的今天,数字技术高速发展, 10 使用MATLAB完成数字滤波器的设计在通信工程中具有很重要的意义和作用,在数字通信网络中不可或缺的一个步骤,其重要性可见一斑。 2.设计原理 2.1 MATLAB MATLAB是矩阵实验室(Matrix Laboratory)的简称,是一种用于算法开发、数据可视化、数据分析及数值计算的高级技术计算语言和交互环境。MATLAB的应用范围非常广,包括信号和图像处理、通信、控制系统设计、测试和测量、财务建模和分析,以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB的使用环境,以解决这些应用领域内特定类型的问题。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比使用FORTRAN和C等语言完成相同的事情会简捷许多。 与传统的设计思路相比较,应用MATLAB这一软件来设计滤波器,是非常的简便的。具体来说主要有以下几点: 1) MATLAB计算功能强大。其具有高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来。 2) MATLAB绘图非常方便。其具有完备的图形处理功能, 11 实现了计算结果和编程的可视化。在FORTRAN和C等语言,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。而且,MATLAB还具有较强的编辑图形界面的能力。 3) MATLAB拥有功能强大的工具箱。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分有数百的核心内部函数。工具箱又分为两类:功能性工具箱和学科性工具箱。 功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能及与硬件实时交互功能。功能性工具箱用于多种学科。 学科性工具箱的专业性比较强,如control、signal processing、communication等。这些工具箱都是由该领域内学术很高的专家编写的,所以无需用户编写自己学科范围内的基础程序,而直接进行高、精、尖的研究即可。 除内部函数以外,MATLAB的所有核心文件和工具箱文件都是可读可写的源文件,用户可通过对源文件的修改及加入自己的文件构成新的工具箱。 4) 帮助功能完整:自带的帮助功能是非常强大的帮助手册。[1] 2.2 数字滤波技术 滤波技术包括模拟滤波技术和数字滤波技术。模拟滤波技 12 术是使用模拟手段实现滤波,数字滤波技术则使用数字手段实现滤波。此处具体分析数字滤波技术如下。 数字滤波技术是指在软件中对采集到的数据进行电磁兼容消除干扰的处理。一般来说,除了在硬件中对信号采取抗干扰措施之外,还要在软件中进行数字滤波的处理,以进一步消除附加在数据中的各式各样的干扰,使采集到的数据能够真实的反映现场的工艺实际情况。数字滤波器根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。IIR滤波器的特征是具有无线持续时间的冲激响应,这种滤波器一般需要用递归模型来实现;FIR滤波器使冲激响应只能持续一段时间,工程中可采用递归方法实现,也可以采用非递归方式实现。[2] 数字滤波技术应用集中体现在数字滤波器。数字滤波器由数字乘法器、加法器和延时单元组成的一种算法或装置。数字滤波器的功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。 相较于模拟滤波的很多不足,数字滤波器具有以下优点: 1) 是程序滤波,不需要增加硬件设备,所以可靠性高,稳定性好。 2) 可以对频率很低的信号实现滤波,克服了模拟滤波的缺陷。 13 3) 可以根据信号不同,采用不同的滤波方法或参数,具有灵活、方便、功能强的特点。 2.3 FIR滤波器 FIR(Finite Impulse Response)滤波器,即有限长单位冲激响应滤波器。它被广泛应于各类数字信号处理系统,可以满足滤波器对幅度和相位特性的严格要求。[3]在图像处理以及数据传输中,都要求信道具有线性相位特性,这时FIR滤波器就显现出了其优势:FIR滤波器具有严格的线性相位,同时又可以具有任意的幅度特性;此外FIR滤波器的单位抽样响应是有限长的,因此滤波器一定稳定;再有,只要经过一定的延时,任何非因果有限长序列都能变成因果有限长序列,因而总能用因果系统来实现。最后,FIR滤波器由于单 位冲激响应是有限长的,因而可以用快速傅里叶变换(FFT)算法来实现过滤信号,从而可大大提高运算效率。[4] 但是,FIR滤波器也有不足,FIR滤波器必须用很长的冲激击响应滤波器才能很好的逼近锐截止的滤波器,这意味着需要很大的运算量,因而要取得很好的衰减特性,FIR滤波器系统函数的阶次需要比IIR滤波器高得多。 FIR滤波器的设计方法主要有窗函数法、频率取样法和等波纹逼近法。其中最常用的是窗函数法。 2.4 窗函数设计法 14 2.4.1 设计原理 窗函数设计法也称为傅里叶级数法。FIR滤波器的设计问题,就是要使设计的FIR滤波器的频率响应H(ejw)去逼近所要求的理想的滤波器频率响应Hd(ejw)。从单位取样响应序列来看,就是使设计的滤波器的h(n)逼近理想的滤波器单位取样响应hd(n),可以得到以下公式2-1、2-2 Hd(e) jw n ~ ~jwnh(n)e(公式2-1) d 1hd(n) 2 由于理想的选频滤波器的频率响应 Hd(ejw - jwH(e d)dj nd (公式2-2) )是逐段恒定的,且在频带边界有不连续点,因此hd(n)一定是无限长序列,且是非因果的,物理上无法实现的。故不能采用公式上述公式来设计所需要的FIR滤波器。实际中要设计的FIR滤波器,其h(n)必然是有限长的,且是因果的,物理上可以实现的,所以要用有限长的h(n)逼近理想的滤波器单位取样响应hd(n),最有效的方法就是截断hd(n),或者说是一个有限长度的窗口函数序列w(n)来截取hd(n),见公式2-3即 h(n) hd(n)w(n)(公式2-3) 由此,引出窗函数的基本思想:先选取一个理想滤波器(它的单位抽样响应是无限长的、非因果、物理不可实现的), 15 再截取(或加窗),它的单位抽样响应得到线性相位因果FIR滤波器。这种方法的重点是选择一个合适的窗函数(序列形状及长度)和理想滤波器。 按照复卷积公式,在时域如果是相乘的,在频域则是周期性卷积关系[6],可以推导出公式2-4,即 1H,e, 2π j π ~πHdej Wej, ~ , d (公式2-4) ,,,, 因而H(ejw)逼近Hd(ejw)的好坏,完全取决于窗函数的频率特性W(ejw)。 2.4.2设计影响 加窗处理对理想矩形频率响应产生以下几点影响: 1) 是理想频率特性不连续点处边沿加宽,形成一个过渡带,过渡带的宽度等于窗的频率响应WR( )的主瓣宽度4 2)截止频率 /N。这里所说的过渡带食指连个肩峰之间的宽度,与滤波/N)要小。 器的真正过渡带还有一些区别,也就是说,滤波器的过渡带比这个数值(4 c 2 /N的地方(即过渡带的两边),H( )出现最大的肩峰,肩峰的两侧(过渡带外)形成欺负振荡,其振荡幅度取决于旁瓣的相对幅度,而振荡的多上,则取决于旁瓣的多少。 3) 增加截取长度N,则在主瓣附近的窗的频率响应见公式2-5 N N sin sin 22 NsinxWR, 16 , (公式2-5) x sin 2 2 其中x N /2。可见,改变N,只能改变窗谱的主瓣宽度、改变 坐标的比例以及改变WR, ,的绝对值大小,而不能改变主瓣与旁瓣的相对比例(当然N太小时,会影响旁瓣的相对值),这个相对比例是由sinx/x决定的,或者说是由窗函数的形状决定的。因而,当截止长度N增加时,只会减小过渡带宽4 /N,而不会改变肩峰的相对值。 /N减小,故例如,在矩形窗的情况下,最大相对肩峰值为8.95,,N增加时,2 起伏振荡变密,最大肩峰总是8.95,,这种现象称为吉布斯(Gibbs)效应。[4] 2.4.3窗函数种类 为了改善滤波器的性能,需使窗函数谱满足: 1)窗函数主瓣尽可能窄,以使设计出来的滤波器有较陡的过渡带。 2)尽量减少最大旁瓣的相对幅度,也就是能量集中于主瓣,以减小带内、带外波动的最大幅度,增大阻带衰减。[5] 一般来说,以上两点很难同时满足。当选取主瓣宽度很窄时,旁瓣的分量势必增加,从而带内、带外的波动也增加了;当选取最小的旁瓣幅度时,降低了带内、带外的波动,但是过渡带的陡度减小了。所以实际采用的窗函数其特性往往是它们的折中,在保证主瓣宽度达到一定要求的前提下,适当 17 增加主瓣宽度来换取旁瓣波动的减小。 下面介绍几种常用的窗函数。 1)矩形窗(Rectangular Window)函数的时域形式可表示为公式2-6 1,w(n) RN(n) 0, 它的频域特性为公式2-7 0 n N~1其他(公式2-6) WRej e,, N~1 ~j 2 N sin 2 (公式2-7) sin 2 2) 巴特列特窗(Bartlett Window)函数时域形式(又称三角窗)可表示为公式2-8 2n N~1 BR(n) 2n 2~,N~1 窗谱为公式2-9 20 n (公式2-8) 1(N~1) n N~121(N~1)2 Wej ,, N~1 N sin ~j N~1 sin ~j N~1 2 4 2 4 2 2 e e(公式2-9) N~1 N sin sin 2 2 2 式中“ ”当且仅当N远大于1时成立。 此时,窗谱主瓣宽度为8 18 /N。可以看出,三角形窗的频谱密度函数永远是正值。 1 2 n ,n, 1~cos RN(n) 2N~1 3) 汉宁窗(Hanning Window)函数时域形式可表示为公式2-10 (公式2-10) 利用傅利叶变换的调制特性,由上式可得汉宁窗的平谱函数为公式2-11 Wej ,, 2 2 ~j 0.5WR, ,,0.25 WR ~ ,WR , e N~1 N~1 N~1 2 (公式2-11) W, ,e 式中,RN的傅里叶变换为公式2-12 19 N~1 ~j 2 WRe ,, W, ,e j R N~1 ~j 2 (公式2-12) 当N远大于1时,N~1 N,窗谱的幅度函数可表示为公式2-13 2 2 W, , 0.5WR, ,,0.25 WR ~ ,WR , NN (公式2-13) 这三部分之和使旁瓣互相抵消,能量更集中在主瓣,汉宁窗函数的最大旁瓣值比主瓣值低31dB,但是主瓣宽度比矩形窗函数的主瓣宽度增加了一倍,为8 /N。 4) 海明窗(Hamming Window)函数时域形式可表示为公式2-14 ,n, 0.54~0.46cos N~1 ~j 2 20 2 n RN(n) N~1 (公式2-14) j RWe WR, ,eNR式中,的傅里叶变换为公式2-12, ,, 当N远大于1时,N~1 N,窗谱的幅度函数可表示为公式2-15 2 2 W, , 0.54WR, ,,0.23 WR ~ ,WR , N-1N-1 2 2 0.54WR, ,,0.23 WR ~ ,WR , NN (公式2-15) 结果可将99.963%的能量集中在窗谱的主瓣内,与汉宁窗相比,主瓣宽度相同为8 /N, 但旁瓣幅度更小,旁瓣峰值小于主瓣峰值的1%。 5) 布拉克曼窗(Blackman Window) 为了更进一步抑制旁瓣,可再加上余弦的二次谐波分量,得到布拉克曼窗,见公式2-16 ,n, 0.42~0.5cos 21 其频谱的幅度函数为公式2-17 2 n 4 n ,0.08cos RN(n) N~1 N~1 (公式2-16) 2 2 W, , 0.42WR, ,,0.25 WR ~ ,WR , N-1N-1 4 4 ,0.04 WR ~ ,WR , N-1N-1 (公式2-17) 此时主瓣宽度为矩形窗谱主瓣宽度的三倍,即为12 6) 凯泽窗(Kaiser Window) 这是一种适应性较强的窗,其窗函数表示式为公式2-18 2 2n Io ~ 1~ N~1 ,n, Io /N。 (公式2-18) 是可以自由选择的参数, 越大,其中0 n N~1,Io, ,是第一类变形零阶贝塞尔函数,则 ,n,窗越窄,而频谱的旁瓣越小,但主瓣宽度也响应增加。 表2归纳了以上六种窗的主 22 要性能[4],供设计FIR滤波器时参考。 表2窗函数基本参数 以上表格里的参数设置是最佳窗函数设计,根据设计的要求,选择一个合适的窗函数进行滤波器的设计,从上表可以看出:最小带阻衰减仅有窗函数决定,不受N的影响,而过渡带的宽度则随窗函数的增加而减小。 3.设计内容 3.1 MATLAB中窗函数介绍 MATLAB工具箱已经提供了各种窗函数的构造函数,因而窗函数的构造十分方便,下面给出几种常用窗函数的构造方法: 1) 矩形窗:利用w=boxcar(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函数的值组成。‘w=boxcar(n)’等价于‘w=ones(1,n)’. 2) 三角窗:利用w=triang(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函数的值组成。w=triang(N-2)等价于bartlett(N)。 3) 汉宁窗:利用w=hanning(n)得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。 4) 海明窗:利用w=hamming(n)得到窗函数,其中n为窗 23 函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。它和汉宁窗的主瓣宽度相同,但是它的旁瓣进一步被压低。 5) 布拉克曼窗:利用w=blackman(n)得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。它的主瓣宽度是矩形窗主瓣宽度的3倍,为12*pi/N,但是它的最大旁瓣值比主瓣值低57dB。 6) 凯泽窗:利用w=kaiser(n,beta)的形式得到窗函数。 3.2设计方案 MATLAB内拥有丰富的函数,其中便有用于通信仿真的一系列函数,并且MATLAB中还集成了通信设计的工具箱。不管是内置的函数,还是通信工具箱,均有专用于滤波器设计的工具,常用的主要有用函数法设计和用通信工具箱设计,下面分别予以实现带通滤波器。 方案一:函数法设计 1)给定所要求的频率响应函数Hd(e2)利用傅里叶反变换求得hd(n) jw ); 3)由过渡带和阻带最小衰减的要求,利用表,选定形状 (n)及N的大小,一般N要通过几次试探而最后确定; 4)求得所设计的FIR滤波器的单位抽样响应 24 h(n) hd(n)w(n),n 0,1, ,N~1 5) 利用傅里叶变换求Hd(e设计。 方案二:通信工具箱设计 1) MATLAB信号处理工具箱中已集成了用于滤波器设计和分析的工具:FDATool。利用它可以实现数字滤波器的可视化设计与分析,操作简单方便,在MATLAB命令行中输入fdatool命令即可打开滤波器设计工具, 2) 通过选择相应参数后,点击design即可得到滤波器的幅频响应曲线,在analysis菜单中可以选择查看相频响应,群时延,相时延等曲线,并且利用该工具箱设计的滤波器可以直接在simulink仿真中应用进行信号仿真,十分方便。 jw ),检验是否满足设计要求,如不满足,则需要重新 3.3设计参数 用窗函数法设计一个FIR带通滤波器。指示如下: 1) 采样频率为20kHz; 2) 通带边缘频率:fp1=3kHz,fp2=7kHz; 3) 通带峰值起伏: p 1dB; 4) 阻带边缘频率:fs1=1.5kHz,fs2=8.5kHz; 5) 最小阻带衰减:As>40dB 25 4.仿真与分析 4.1窗函数的时域波形 在MATLAB环境中可以直接调用w=boxcar(n)的形式得到矩形窗时域函数,调用w=triang(n)的形式得到三角窗时域函数,调用w=hanning(n)得到汉宁窗时域函数,调用w=hamming(n)得到海明窗时域函数,调用w=blackman(n)得到布拉克曼窗时域函数,调用w=kaiser(n,beta)得到凯泽窗的时域函数。设计程序并运行,在MATLAB中运行如下代码 n=50; x=1:50; juxing=boxcar(n); %构造矩形窗 sanjiao=triang(n); %构造三角窗 haning=hanning(n); %构造汉宁窗 haming=hamming(n); %构造海明窗 bulaikeman=blackman(n); %构造布拉克曼窗 kaize=kaiser(n); %构造凯泽窗 plot(x,juxing,?b.?,x,sanjiao,?bx?,x,haning,?r-?,x,haming,?r+? ,x,bulaikeman,?kd?,x,kaize,?k*?); legend(„矩形窗?,?三角窗?,?汉宁窗?,?海明窗?,?布拉克曼窗?,?凯泽窗?); 运行结果如图4.1所示 图4.1六种窗函数绘图比较 26 如图4.1所示,可以观察到矩形窗、三角窗、汉宁窗、海明窗、布拉克曼窗、凯泽窗的时域波形图。 4.2 FIR滤波器的实现 4.2.1 函数法设计FIR滤波器 函数法设计以Blackman窗为示例,其他窗函数的程序大体相同,只是在window= blackman(N);和hn = fir1(N-1,wc, blackman(N));处要调自己的窗函数,并适当改变N值且选择窗函数时要考虑到通带峰值起伏 p 1dB与阻带最小衰减As>40dB。 设计程序产生五张图,第一张figure(1)为Blackman窗函数的时域波形图;第二张figure(2)为Blackman窗函数频谱图;第三张figure(3)为Blackman窗函数单位脉冲响应;第四张figure(4)为所设计出的FIR带通滤波器幅频响应图;第五张figure(5)为所设计出的FIR带通滤波器幅频与相频响应图。设计程序并运行,在MATLAB中运行如下代码 fs=20; %采样频率 wls = 1.5/10*pi; %截止频率归一化处理 wlp = 3/10*pi; whp = 7/10*pi; wc = [wlp/pi,whp/pi]; B = wlp-wls; %过渡带宽计算 N = ceil(11/0.15); %按Blackman窗 27 计算所需的滤波器的阶数 n=0:N-1; window= blackman(N); %Blackman窗计 算 [h1,w]=freqz(window,1); %离散系统频率响 应特性B,A为系数向量,N=512 figure(1); %Blackman窗时域 波形 stem(window); axis([0 80 0 1.2]); %左右下上 grid; xlabel(„n?); title(„Blackman窗函数?); figure(2); %Blackman窗频 谱 plot(w/pi,20*log(abs(h1)/abs(h1(1)))); axis([0 1 -350 0]); grid; xlabel(„w/pi?); ylabel(„幅度(dB)?); title(„Blackman窗函数的频谱?); hn = fir1(N-1,wc, blackman(N)); [h2,w]=freqz(hn,1,512); figure(3); %Blackman窗函 数单位脉冲响应 stem(n,hn); axis([0 60 -0.3 0.3]); grid; xlabel(„n?); ylabel(„h(n)?); title(„Blackman窗函数的单位脉冲响应?); figure(4); %带通滤波器幅频 响应图 plot(w/pi,20*log(abs(h2)/abs(h2(1)))); grid; xlabel(„w/pi?); ylabel(„幅度(dB)?); 28 title(„Blackman窗设计带通滤波器的幅频响应图?); figure(5); %带通滤波器幅频 和相频响应曲线 freqz(hn,1,fs,fs); 运行结果如图4.2至图4.6所示 Blackman窗函数 1 0.8 0.6 0.4 0.2 n 图4.2 Blackman窗函数 Blackman窗函数的频谱 -50 -100 幅度(dB) -150 -200 29 -250 -300 -350 00.10.20.30.4 0.5w/pi 0.60.70.80.91 图4.3 Blackman窗函数频谱 Blackman窗函数的单位脉冲响应 h(n) 10 20 30n 40 50 60 图4.4 Blackman窗函数的单位脉冲响应 Blackman窗设计带通滤波器的幅频响应图 250 30 200 150 幅度(dB) 100 50 -50 -100 00.10.20.30.4 0.5w/pi 0.60.70.80.91 图4.5 Blackman窗设计出的带通滤波器的幅频响应图 50Magnitude (dB) -50-100 0123 456Frequency (Hz) 78910 2000Phase (degrees) -2000-4000 31 0123 456Frequency (Hz) 78910 图4.6 Blackman窗设计出的带通滤波器的幅频和相频响应图 由仿真波形图可以得出以下几个方面的分析结果: 由图4.2可以看出,布拉克曼窗典型的升余弦窗,基本符合布拉克曼窗函数的时域表达式,所加的窗口是余弦函数(二阶升余弦窗)。 由图4.3可以看出,布拉克曼窗函数的阻带内衰减大约在-140dB到-300dB其绝对值大于40dB,满足最小阻带衰减As>40dB要求,也就是说旁瓣幅度远小于主瓣幅度,能量全部集中在主瓣,主瓣宽度也有所增加,效果比较明显。 由图4.4可以看出,布拉克曼窗设计的带通滤波器的单位冲激响应为偶对称,也就是说当N为偶数时,单位冲激响应序列为偶函数,这说明FIR带通滤波器相位是严格的线性关系。 由图4.5可以看出,布拉克曼窗设计的带通滤波器阻带边缘频率为0.15π与0.85π,满足阻带边缘频率:fs1=1.5kHz,fs2=8.5kHz;带通下限截止频率大约为0.3π,带 32 通上限截止频率大约为0.7π,在通带频率之外的频率的信号的幅度将受到很大的衰减,以致信号不能通过滤波器,满足通带边缘频率:fp1=3kHz,fp2=7kHz。 由图4.6可以看出,布拉克曼窗设计的带通滤波器在通带近似为一条直线,故满足通 带峰值起伏 p 1dB;且在通带内FIR带通滤波器相位是严格的线性关系,频率最大 值为10kHz,故满足采样频率为20kHz。 根据以上的结果分析可以得到:本次设计结果符合设计要求。 4.2.2 通信工具箱设计FIR滤波器 MATLAB信号处理工具箱中已集成了用于滤波器设计和分析的工具:FDATool,利用它可以实现数字滤波器的可视化设计与分析,操作简单方便,在MATLAB命令行中输入fdatool命令即可打开滤波器设计工具,如图4.7所示 图4.7 FDATool工具界面 通过选择相应参数后,点击Design即可得到滤波器的幅频响应曲线,在analysis菜单中可以选择查看相频响应,群时延,相时延等曲线,并且利用该工具箱设计的滤波器可以直 33 接在simulink仿真中应用进行信号仿真,十分方便。这里以凯瑟窗FIR带通滤波器为例。仿真结果如图4.8至4.10所示。 图4.8 Kaiser窗的单位脉冲响应 图4.9Kaiser窗设计出的带通滤波器的幅频响应图 图4.10Kaiser窗设计出的带通滤波器的幅频和相频响应图 由仿真波形图可以得出以下几个方面的分析结果: 由图4.8可以看出,凯泽窗设计的带通滤波器的单位冲激响应为偶对称,也就是说当N为偶数时,单位冲激响应序列为偶函数,这说明FIR带通滤波器相位是严格的线性关系。 由图4.9可以看出,凯泽窗设计的带通滤波器阻带边缘频率为0.15π与0.85π,满足阻带边缘频率:fs1=1.5kHz,fs2=8.5kHz;可以看出阻带内的衰减大于80dB,满足最小阻带衰减As>40dB要求;带通下限截止频率大约为0.3π,带通上限截止频率大约为0.7π,在通带频率之外的频率的信号的幅度将受到很大的衰减,以致信号不能通过滤波器,满足通带边缘频率:fp1=3kHz,fp2=7kHz。 34 由图4.10可以看出,凯泽窗设计的带通滤波器在通带近似为一条直线,故满足通带峰值起伏 p 1dB;且在通带内FIR带通滤波器相位是严格的线性关系,频率最大值为 10kHz,故满足采样频率为20kHz。 根据以上的结果分析可以得到:本次设计结果符合设计要求。 5. FIR滤波器测试 利用MATLAB中提供的filter函数可以选择不同的滤波器对数字信号进行滤波。 filter是一维数字滤波器其一般形式为Y = filter(B,A,X) ,输入X为滤波前序列,Y为滤波结果序列,B/A提供滤波器系数,B为分子(极点影响相位),A为分母系数(零点影响幅度)。此处针对FIR滤波器的滤波性能、稳定性及时延进行测试。 5.1 FIR滤波器滤波性能测试 由MATLAB模拟生成含有不同频率的数字信号,然后利用设计的FIR滤波器对数字信号进行滤波,模拟生成的信号包含有两个在阻带的有频率(f1=1000Hz,f2=9000Hz)和一个在通带的频率(5000Hz),这里用汉宁窗FIR带通滤波器处理模拟生成含有不同频率的数字信号,设计程序并运行,在MATLAB中运行如下代码 35 fs=20000; %设定采样频 率 fp1=1500;fp2=8500; fs1=3000;fs2=7000; Ws1=(fp1+fs1)/fs;Ws2=(fp2+fs2)/fs; M=ceil(6.2/0.15); haning=hanning(M); %生成长度为M的hanning窗 %第一截止频率 %第二截 止频率 %截止频率归一化处理 b=fir1(M-1,[Ws1,Ws2],haning); %生成fir滤 波器 freqz(b,1,fs,fs); %绘制幅频 和相频响应曲线 t=0:1/fs:2; x=sin(2*pi*1000*t)+sin(2*pi*5000*t)... +sin(2*pi*9000*t); %生成混合信号 xo=filter(b,2,x); %用滤波器对 信号进行滤波 figure; nn=5000:5100; %取一段信 号 subplot(211); tt=nn/fs; plot(tt,x(nn)); %绘制原始信号 axis([0.25,0.255,-4,4]); 36 ylabel(„原始信号?);xlabel(„时间?); subplot(212); plot(tt,xo(nn)); %绘制滤波后的信号 axis([0.25,0.255,-0.5,0.5]); ylabel(„滤波后的信号?);xlabel(„时间?); 运行结果如图5.1、5.2所示 50 Magnitude (dB) -50-100-150 1000 2000 3000 400050006000Frequency (Hz) 7000 8000 900010000 1000 Phase (degrees) -1000-2000-3000 37 1000 2000 3000 400050006000Frequency (Hz) 7000 8000 900010000 图5.1 Hanning窗设计出的带通滤波器的幅频和相频响应图 42 原始信号滤波后的信号 0-2 -4 0.250.25050.2510.25150.2520.25250.2530.25350.2540.25450 .255 时间0.5 -0.5 0.250.25050.2510.25150.2520.25250.2530.25350.2540.25450 .255 38 时间 图5.2 FIR滤波器滤波前(上)与滤波后(下)信号 由图5.1可以看出,频率最大值为10kHz,故满足采样频率为20kHz;图中可以看出通带边缘频率为3kHz和7kHz,满足通带边缘频率:fp1=3kHz,fp2=7kHz;通带内FIR带通滤波器相位是严格的线性关系,汉宁窗设计的带通滤波器在通带近似为一条直线,故满足通带峰值起伏 p 1dB;阻带边缘频率为1.5kHzHz、8.5kHz,满足阻带边缘频;阻 带内最小衰减As>40dB。 由图5.2可以看出,滤波前信号频率不单一,含有多种频率的正弦波;而滤波后的信号只含有单一频率的正弦波。可以得出此滤波器的滤波效果良好。 5.2 FIR滤波器稳定性测试 由信号与系统知识可知,当一个系统的Z域的传递函数的极点都在单位圆内时,系统是稳定的。因为FIR滤波器的传递函数的分母为1,所以FIR滤波器一定是稳定的。MATLAB中也提供了专门用于绘制零极点图的函数:zplane(),通过该函数可以轻松绘制系统的零极点图,以汉宁窗设计的FIR滤波器为例,设计程序并运行,在MATLAB 39 中运行如下代码 fs=20000; %设定采样频率 fp1=1500;fp2=8500; fs1=3000;fs2=7000; %第一截止频率 %第二截止频率 Ws1=(fp1+fs1)/fs;Ws2=(fp2+fs2)/fs; %截止频率归一化处理 M=ceil(6.2/0.15); haning=hanning(M); %生成长度为M的hanning窗 b=fir1(M-1,[Ws1,Ws2],haning); %生成fir滤波器 zplane(b,1); %生成零极点图 运行结果如图5.3所示 3 2 1 Imaginary Part -1 -2 -3 40 -5 -4 -3 -2-1Real Part 1 2 图5.3 FIR滤波器零极点图 由图5.3可以看出, FIR设计的滤波器是属于无极点的系统,因而系统一定是稳定的。 5.3 FIR滤波器时延测试 主要测试FIR滤波器的群时延与相时延,以汉宁窗设计的FIR滤波器为例,测试结果如下图5.4所示。 图5.4 FIR滤波器的群时延(左)与相时延(右) 由图5.4可以看出,FIR滤波器有一定的群时延与相时延,这是FIR滤波器的缺点之一,但其时延不会随频率变化而变化,故不会产生波形失真。滤波器的滤波性能越好,阶数越 41 高,时延越大。实际设计时,应该综合考虑。 6.设计结论与体会 本次课程设计完成了设计任务在一周的时间内利用MATLAB仿真软件系统结合窗函数法设计一个数字带通FIR滤波器,且达到了一定的技术指标:采样频率为20kHz;通带 p边缘频率:fp1=3kHz,fp2=7kHz;通带峰值起伏: 1dB;阻带边缘频率:fs1=1.5kHz, fs2=8.5kHz;最小阻带衰减:As>40dB。故有一定的使用价值。并且按《武汉理工大学课程设计工作规范》要求撰写设计报告书,设计报告书规范整洁,达到了要求。至此成功完成了本次课程设计。 完成本次课程设计,让我对数字信号处理这门课程有了初步的了解,并对滤波技术有了新的认识,加入了数字滤波这一新的概念。并了解了数字滤波器根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。这次课程设计重点研究了FIR滤波器的特点,理解了窗函数法的工作原理:先选取一个理想滤波器(它的单位抽样响应是无限长的、非因果、物理不可实现的),再截取(或加窗),它的单位抽样响应得到线性相位因果FIR滤波器。在仿真过程中,我学习了MATLAB 42 的编程方法与仿真方法,并使用了MATLAB自带的通信工具箱,着实体会到了MATLAB软件的计算功能的强大,绘图的方便,其拥有的工具箱的专业,帮助功能的有效。分析波形过程中,我加深了对信号与系统课程中的基本理论知识,并对数字信号处理这门课程有了初步的了解。 通过这次学习,我利用MATLAB仿真软件系统结合窗函数法制作了一个数字带通FIR滤波器,我不但了解了数字信号处理与滤波器基础知识,理解了信号与系统等课程的理论知识,而且还学会了一些MATLAB编程语言,更对MATLAB软件也有了更深刻的认识,理解到了其在本专业的重要地位与其强大性。另外,我又一次提高了自己写报告的能力,有很大的收获。开设这门课设对我们来说是很有用的,加深了我对专业知识的理解,并让我重新认识了MATLAB的重要性,提高了独立完成工程的能力,提高了撰写报告的能力。成功完成了本次课程设计,对以后学习工作必将产生积极效果。 7致谢 转眼间,为期一周的课程设计已经结束。回想起这几天的时光,有失有得,有悲有喜。过去的虽已成为历史,但总有些事情是忘不了的:忘不了自己的辛勤努力,忘不了同学间的互相帮助,更忘不了老师对我的指导教诲。此时,我要对 43 所有帮助过我的人表示衷心的感谢~ 感谢魏勤老师为我们打下良好的理论知识基础,并对我们严格要求,细心指导,使我们对专业知识有了更深刻的认识。在实验和设计说明书写作过程中遇到的疑问和难题,老师也会不厌其烦地讲解,并提出了宝贵的建议。魏老师待人诚恳、为人和善、知识渊博,这都深深地影响和激励着我。 在此,谨向魏老师致以诚挚的谢意~并祝愿老师身体健康,工作顺利,万事如意。 参考文献 [1]刘浩,韩晶.MATLAB R2014a完全自学一本通[M].北京:电子工业出版社.2015.1:2-5 [2]潘永才,傅俊菁等著.数字FIR滤波器的MATLAB设计[J].半导体技术,2001,26(8):52-54 [3]陈雁.用MATLAB设计及FPGA实现FIR滤波器的方法[J].计算机仿真,2003,20(12):144 [4]程佩青.数字信号处理教程(第三版)[M].北京:清华大学出版社,2007.2:323-343. [5]刘泉,阙大顺,郭志强.数字信号处理(第2版)[M].北京:电子工业出版社,2009.6:174-206 [6]刘泉,江雪梅.信号与系统[M].北京:高等教育出版社,2006.2:41-42 附录:MATLAB程序 % 程序一 44 %观察到矩形窗、三角窗、汉宁窗、海明窗、布拉克曼窗、凯泽窗的时域波形图 n=50; x=1:50; juxing=boxcar(n); %构造矩形窗 sanjiao=triang(n); %构造三角窗 haning=hanning(n); %构造汉宁窗 haming=hamming(n); %构造海明窗 bulaikeman=blackman(n); %构造布拉克曼窗 kaize=kaiser(n); %构造凯泽窗 plot(x,juxing,?b.?,x,sanjiao,?bx?,x,haning,?r-?,x,haming,?r+? ,x,bulaikeman,?kd?,x,kaize,?k*?); legend(„矩形窗?,?三角窗?,?汉宁窗?,?海明窗?,?布拉克曼窗?,?凯泽窗?); %程序二 %利用函数法中的Blackman窗实现FIR滤波器 fs=20; %采样频率 wls = 1.5/10*pi; %截止频率归一化处理 wlp = 3/10*pi; whp = 7/10*pi; wc = [wlp/pi,whp/pi]; B = wlp-wls; %过渡带宽计算 N = ceil(11/0.15); %按Blackman窗计算所需的滤波器的阶数 n=0:N-1; window= blackman(N); %Blackman窗计算 [h1,w]=freqz(window,1); %离散系统频率响应特性B,A为系数向量,N=512 45 figure(1); %Blackman窗时域 波形 stem(window); axis([0 80 0 1.2]); %左右下上 grid; xlabel(„n?); title(„Blackman窗函数?); figure(2); %Blackman窗频 谱 plot(w/pi,20*log(abs(h1)/abs(h1(1)))); axis([0 1 -350 0]); grid; xlabel(„w/pi?); ylabel(„幅度(dB)?); title(„Blackman窗函数的频谱?); hn = fir1(N-1,wc, blackman(N)); [h2,w]=freqz(hn,1,512); figure(3); %Blackman窗函 数单位脉冲响应 stem(n,hn); axis([0 60 -0.3 0.3]); grid; xlabel(„n?); ylabel(„h(n)?); title(„Blackman窗函数的单位脉冲响应?); figure(4); %带通滤波器幅频 响应图 plot(w/pi,20*log(abs(h2)/abs(h2(1)))); grid; xlabel(„w/pi?); ylabel(„幅度(dB)?); title(„Blackman窗设计带通滤波器的幅频响应图?); figure(5); %带通滤波器幅频 和相频响应曲线 freqz(hn,1,fs,fs) %程序三 46 %FIR滤波器的滤波性能测试 fs=20000; %设定采样频 率 fp1=1500;fp2=8500; fs1=3000;fs2=7000; Ws1=(fp1+fs1)/fs;Ws2=(fp2+fs2)/fs; %第一截止频率 % 第二截止频率 %截止频率归一化处理 M=ceil(6.2/0.15); haning=hanning(M); b=fir1(M-1,[Ws1,Ws2],haning); freqz(b,1,fs,fs); t=0:1/fs:2; x=sin(2*pi*1000*t)+sin(2*pi*5000*t)... +sin(2*pi*9000*t); xo=filter(b,2,x); figure; nn=5000:5100; subplot(211); tt=nn/fs; plot(tt,x(nn)); axis([0.25,0.255,-4,4]); ylabel(„原始信号?);xlabel(„时间?); subplot(212); plot(tt,xo(nn)); axis([0.25,0.255,-0.5,0.5]); ylabel(„滤波后的信号?);xlabel(„时间?); %程序四 47 %FIR滤波器稳定性测试 %生成长度为M的hanning窗 %生成fir滤波器 %绘制幅频和相频响应曲线 %生成混合信号 %用滤波器对信号进行滤波 %取一段信号 %绘制原始信号 %绘制滤波后的信号 fs=20000; %设定采样频率 fp1=1500;fp2=8500; fs1=3000;fs2=7000; %第一截止频率 %第二截止频率 Ws1=(fp1+fs1)/fs;Ws2=(fp2+fs2)/fs; %截止频率归一化处理 M=ceil(6.2/0.15); haning=hanning(M); %生成长度为M的hanning窗 b=fir1(M-1,[Ws1,Ws2],haning); zplane(b,1); %生成fir滤波器 %生成零极点图 指导教师签字: 年月日 课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位:信息工程学院 题 目:利用MATLAB 48 仿真软件系统结合窗函数法设计一个数字带通FIR滤波器 初始条件: 1. 数字信号处理与滤波器基础知识 2. 《信号与系统》基本理论知识 3. MATL… 课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位:信息工程学院 题 目:利用MATLAB仿真软件系统结合窗函数法设计一个数字带通FIR滤波器 初始条件: 1. 数字信号处理与滤波器基础知识 2. 《信号与系统》基本理论知识 3. MATL… 课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位:信息工程学院 题 目:利用MATLAB仿真软件系统结合窗函数法设计一个数字带通FIR滤波器 初始条件: 1. 数字信号处理与滤波器基础知识 2. 《信号与系统》基本理论知识 3. MATL… 百度搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网92to.com,您的在线图书馆 49
/
本文档为【ccs仿真fir带通滤波器 利用MATLAB仿真软件系统结合窗函数法设计一个数字带通FIR滤波器】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索