窗函数法设计线性相位FIR数字滤波器

需积分: 10 11 下载量 17 浏览量 更新于2024-09-19 收藏 160KB DOC 举报
"该资源是一份关于线性相位FIR数字滤波器设计的课程设计报告,由学生龙三峰在西南科技大学完成,指导教师为张小京。报告涵盖了用窗函数法设计线性相位FIR高通和低通数字滤波器的任务,详细阐述了设计过程和相关理论知识。" 线性相位FIR数字滤波器在数字信号处理和通信工程领域中扮演着重要角色,因其具有理想的频率响应特性和易于实现等优点而被广泛应用。本报告主要关注如何利用窗函数法来设计这类滤波器。 窗函数法设计FIR滤波器的基本思想是首先确定理想的频率响应Hd(e^(jω)),然后找到相应的单位脉冲响应hd(n)。通过将hd(n)与特定的窗函数wN(n)相乘,得到实际滤波器的单位脉冲响应h(n) = hd(n) * wN(n)。为了实现线性相位特性,h(n)需要满足特定的对称条件,这通常意味着h(n)是偶对称或奇对称的。 在MATLAB环境中,可以使用内置函数`fir1`来设计线性相位FIR滤波器。例如,`fir1(N,wc)`可以生成一个N阶的FIR滤波器,其6dB截止频率为wc,使用的是默认的hamming窗。通过调整函数参数,可以定制不同类型的滤波器,如高通或低通滤波器。 在设计过程中,学生首先进行了资料调研,确定了设计方案,然后编写程序并验证实验结果。课程设计的目的是让学生掌握窗函数法设计FIR滤波器的原理,理解线性相位特性的要求,以及不同窗函数对滤波器性能的影响。此外,报告还包括了使用`fft`函数计算滤波器频率响应的方法。 在实际应用中,FIR滤波器的性能受到多种因素的影响,包括窗函数的选择(如hamming、hann、blackman等)、滤波器阶数N、截止频率wc以及所需的过渡带宽度等。通过对比不同的设计参数,可以优化滤波器的性能,满足特定的信号处理需求,如信号的平滑、降噪、频谱分析等。 这份课程设计报告详细介绍了线性相位FIR数字滤波器设计的基本步骤和理论基础,对于学习数字信号处理和通信工程的学生来说,是一份宝贵的参考资料。通过这样的实践,学生能够深入理解滤波器设计的原理,并提高实际操作技能。
2015-11-13 上传
FIR线性相位滤波器设计程序 FIR Linear Phase Filter Design Program ============================================= 编译命令: gfortran *.for (i1mach.for中定义了4个标准输入输出设备号:1输入:键盘;2输出:显示;3打印;4信息:显示) 编译输出: a.out/a.exe : 编译过程中会报告“警告”信息,可不理会 运行文件: a.out/a.exe < input.txt 输入采用归一化滤波器参数来设计滤波器。 编译环境: 在Windows中,程序使用MinGW环境编译。 在ubuntu linux中,程序使用build-essential环境编译,需要下载gfortran。 f2c是一个开源的fortran到c的转换软件,如果不想混合编程的话,可以用它。 ============================================= 这是1976年IEEE组织编辑出版的《IEEE电气工程师 数字信号处理 FORTRAN程序库》的FORTRAN源码之一。整个程序库总计33个源码文件,将陆续上传。 在上传之前,我对程序的执行结果做了初步校对。感兴趣的朋友可以参照程序库的影印版进行全面校对,并欢迎反馈结果。 该程序库的影印版参见http://download.csdn.net/download/wuyijun2010/2718795。 一些程序跟程序库的打印稿略有出入,主要是使用了一些小的函数,如i1mach.for等,并不对程序的完整性产生影响。 Fortran语言已经比较古老了。许多人不屑于使用它,认为不如C/C++好用。 其实,Fortran语言非常经典。使用Fortran编程,你大可不必关心诸如“指针、内存分配、数组越界”等等易错的问题。 学好Fortran编程,并不比学好C花更多时间,甚至更短。 最主要的,它是科学计算的主要程序语言。你不会拿一个算法的C程序去发表吧。 ============================================= 该书出版后的三十五年后的今天,这些算法仍然占据着数字信号处理领域的重要位置。即使今天的处理器速度已经今非昔比,这些精炼高效的程序仍然非常有效,因为算法的实现方式直接关系到系统成本。 同期还出版了由奥本海姆和谢弗合著的《数字信号处理》一书。今天这仍是一本关于数字信号处理方法的经典著作。作者在绪论中提到的应用几乎包括了现代信息处理的各个领域。一些领域的信号处理依靠传统模拟设备是不可能实现的。由于器件速度限制,当时的数字信号处理大多还不能实时实现。尽管如此,抱着数字化系统终将付诸现实的信念,人们积极地开始了对各种数字系统的研究工作。 今天,越来越多的数字信号处理系统不仅能够实时实现,而且已经成为了各种设备的核心。很多设备,只有在输入输出端口,才进行数字到模拟之间的转换,内部则完全是数字处理系统。 因此,掌握数字信号处理知识和方法,应该是每个电子工程师必备的。 ============================================= 摘录前言 <1976年出版> 在过去的十五年里,数字信号处理已极其活跃。 数字信号处理进展的重要方面是算法和这些算法程序的具体化。 本程序分为八章,每章部有专门的提要。 第一章中重点叙述了离散付里叶变换(DFT)并且给出了各种快速付里叶变换(FFT)及其有关的算法。 第二章中包括了功率谱估计的周期图和相关法算法以及相关谱估计和互谱估计的算法。 第三章中是以快速FFT为基础的卷积程序。 第四章中给出了有关线性预测信号处理技术的几种算法,包括自相关法,协方差法和格点法。 第五章中主要阐述了有限冲激响应(FIR)数字滤波器的设计与综合。 第六章中给出了有关无限冲激响应(IIR)数字滤波器设计程序的综合资料。 第七章里叙述了倒谱和同态算法,侧重于同态系统相位计算的难点。 第八章里给出了有关内插和抽取的几个程序。 本书是在1976年初,由IEEE声学、语言学以及信号处理学会所组成的数字信号处理委员会,着手进行的一项计划的结晶。 本书所有程序符合下列要求: (1)必须包括全部用户文件。 (2)程序必须用FORTRAN语言,并且符合ANSI FORTRAN标准。 (3)编码应全部注释并已经排除错误,尽可能地清晰,明撩。 (4)编码应能传送,并且与机器无关。 (5)应提供有关输入,输出综合调试实例。 程序的可移植性在这项计划里是很重要的目的。 特别注意了保证精度,明撩以及材料的一致性。 所有程序编码的列表,直接从中央收集计算机可读源材料中打印出。 作者的文件手稿打入计算机系统之后,迸行最后的编辑和校正。 书中全部打印材料由计算机带动的照相排版机得到。 =============================================