欢迎来到天天文库
浏览记录
ID:22911852
大小:48.00 KB
页数:10页
时间:2018-11-01
《《fir数字滤波器》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验四FIR数字滤波器 一、实验目的1.学习和掌握FIR数字滤波器的计算机实现方法和过程2.运用计算机模拟验证滤波器的性能,获得对FIR数字滤波器的感性认识3.巩固和加深对所学的FIR数字滤波器的设计、幅频响应和窗函数等方面知识的理解和掌握。 二、实验内容1.设计要求用窗函数法设计一FIR数字低通滤波器,要求其技术指标为通带内ω<ωp=0.2π,幅度衰减不大于-1dB;阻带内ω>ωs=0.3π,幅度衰减不小于-30dB。采用直接型结构,在计算机上编程实现所设计的FIR数字滤波器,验证其滤波性能。在计算机上编程画出所设计的FIR数字滤波器的幅频响应曲线。2.设计过程根据阻带衰减-30dB
2、,选择汉宁窗函数:, 0≤n≤N-1 由过渡区宽度Δω=ωs-ωp=0.1π,确定滤波器的阶数: N≥2=80,取N=81。 取ωc=(ωs+ωp)/2=0.25π,则滤波器的单位取样响应为: , 0≤n≤80滤波器的输入输出方程为: h(n)偶对称,N为奇数,滤波器的幅频响应为:3.计算机实现在理解和掌握以上设计过程的基础上,根据h(n)和y(n)的表达式编制程序实现滤波器的计算,并验证其滤波性能。滤波器的输入仍采用正弦抽样信号,方法同实验三。其频率f、取样周期T、取样点数N仍通过人机对话方式输入,以便调整。为了直观地看出系统的滤波性能,
3、程序中需作图画出输入和输出信号的波形。计算h(n)时要注意,当n=(N-1)/2=40时,分母为0,是0/0型,其值h(40)=0.25。因此该项要单独赋值,否则计算机会给出出错信息。根据H(ω)的表达式,编程绘制滤波器的幅频特性曲线。可在ω=0~π之间取若干个点,逐点画出H(ω)。 四、实验步骤对FIR数字滤波器,系统的模拟截止频率应根据Ω=ω/T来换算。若取ωc=(ωp+ωs)/2=0.25π,取样间隔T=0.001s,则因此,50Hz的正弦信号应无衰减地通过滤波器,125Hz左右的信号处于过度带,有一定的衰减;150Hz以上的信号处于阻带,几乎不能通过滤波器。实验步骤如下:(1)
4、令T=0.001s,N=100(注意此N为信号的采样点数,不是滤波器的阶数),分别输入50Hz、125Hz、150Hz和200Hz的正弦信号,观察输出波形,并与输入进行比较,验证滤波器的性能。记录输入输出大致波形。(2)将输入信号分别改变成50Hz与80Hz、50Hz与150Hz、50Hz与200Hz两正弦信号的迭加,再观察滤波器的输入输出波形,体会和评价滤波结果。记录输入输出大致波形。(3)观察系统的幅频响应曲线,注意其通带纹波、阻带衰减和过渡区。记录幅频响应的大致形状。(4)将系统改成采用矩形窗函数(即将h(n)改成),比较两者通带纹波、阻带衰减和过渡区的大小,体会不同窗函数的性能
5、。记录有关结果。(5)将滤波器的阶数即窗函数的长度N减小(可改成41或21),观察滤波器过渡区大小的变化。记录有关结果。 四、C语言参考程序(1)FIR数字滤波器 #include #include #include #include #definePI3.1415926 floatx[100],y[180]; voiddraw(); voidaxis(); main() { intN,f,n,k; floatT,h[81]; /*键盘输入f、N、T*/ printf("Thefrequen
6、cyoftheSinewavef="); scanf("%d",&f); printf("ThenumberofsamplesN="); scanf("%d",&N); printf("ThesamplingperiodT="); scanf("%f",&T); /*产生正弦输入信号*/ for(n=0;n7、5; else { h[n]=sin(0.25*PI*(n-40))/(PI*(n-40)); h[n]=h[n]*(1-cos(PI*n/40))/2; } } /*计算滤波器的输出*/ for(n=0;n
7、5; else { h[n]=sin(0.25*PI*(n-40))/(PI*(n-40)); h[n]=h[n]*(1-cos(PI*n/40))/2; } } /*计算滤波器的输出*/ for(n=0;n
此文档下载收益归作者所有