实验4 基于MATLAB的FIR数字滤波器设计

合集下载

用MATLAB设计FIR数字滤波器

用MATLAB设计FIR数字滤波器

实验八 用MATLAB 设计FIR 数字滤波器(二)一、实验目旳:1、加深对窗函数法设计FIR 数字滤波器旳基本原理旳理解。

2、学习用MATLAB 语言旳窗函数法编写设计FIR 数字滤波器旳程序。

3、理解MATLAB 语言有关窗函数法设计FIR 数字滤波器旳常用函数用法。

二、实验原理:1、用窗函数法设计FIR 数字滤波器 FIR 数字滤波器旳系统函数为N-1-n n=0H(z)=h(n)z ∑这个公式也可以当作是离散LSI 系统旳系统函数M-m -1-2-mmm=0012m N -1-2-k-k12k k k=1bz b +b z +b z ++b z Y(z)b(z)H(z)====X(z)a(z)1+a z +a z ++a z1+a z ∑∑ 分母a 0为1,其他a k 全都为0时旳一种特例。

由于极点所有集中在零点,稳定和线性相位特性是FIR 滤波器旳突出长处,因此在实际中广泛使用。

FIR 滤波器旳设计任务是选择有限长度旳h(n),使传播函数H(e j ω)满足技术规定。

重要设计措施有窗函数法、频率采样法和切比雪夫等波纹逼近法等。

本实验重要简介窗函数法。

用窗函数法设计FIR 数字滤波器旳基本环节如下:(1)根据过渡带和阻带衰减指标选择窗函数旳类型,估算滤波器旳阶数N 。

(2)由数字滤波器旳抱负频率响应H(e j ω)求出其单位脉冲响应h d (n)。

可用自定义函数ideal_lp实现抱负数字低通滤波器单位脉冲响应旳求解。

程序清单如下:function hd=ideal_lp(wc,N) %点0到N-1之间旳抱负脉冲响应%wc=截止频率(弧度)%N=抱负滤波器旳长度tao=(N-1)/2;n=[0:(N-1)];m=n-tao+eps; %加一种小数以避免0作除数hd=sin(wc*m)./(pi*m);其他选频滤波器可以由低通频响特性合成。

如一种通带在ωc1~ωc2之间旳带通滤波器在给定N值旳条件下,可以用下列程序实现:Hd=ideal_lp(wc2,N)-ideal_lp(wc1,N)(3)计算数字滤波器旳单位冲激响应h(n)=w(n)h d(n)。

Matlab设计FIR数字滤波器

Matlab设计FIR数字滤波器

FIR数字滤波器专业:学号:XX:一课题目的:1学会使用Matlab的各项功能。

2学会把自己在课堂上学习的知识运用到实践当中。

3了解利用Matlab设计FIR数字滤波器的基本方法。

4在课程设计的过程中掌握程序编译及软件设计的基本方法。

5提高自己对于新知识的学习能力及进行实际操作的能力。

二课题要求:在信号处理过程中所处理的信号往往混有噪音,从接受到的信号中消除或减弱噪音是信号处理过程中十分重要的问题。

根据有用信号和噪音的不同特性,提取有用信号的过程称为滤波,实现滤波功能的系统称为滤波器。

而数字滤波器又是滤波器中运用极为广泛的一种滤波器。

数值滤波技术是数字信号处理的一个重要组成部分,滤波器的设计是信号处理的核心问题之一。

FIR数字滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。

要求通过网络及各种资料解决实际问题设计一个符合要求的FIR数字滤波器。

三课题内容:数字滤波器和模拟滤波器有着相同的滤波概念,根据其频率响应特性可分为低通、高通、带通、带阻等类型。

与模拟滤波器相比,数字滤波器除了具有数字信号处理固有优点外,还有滤波精度高、稳定性好、灵活性强等优点。

在数字信号处理中,由于信号中经常混有各种复杂成分,所以很多信号分析都是基于滤波器而进行的,FIR数字滤波器在数字信号处理中发挥着重要作用,采用Matlab软件对FIR数字滤波器进行仿真设计,简化了设计中繁琐的计算。

设计中采用窗函数法,频率采样法和优化设计方法,通过调用Matlab函数设计FIR数字滤波器。

绘制出滤波器的特性图。

利用所设计的滤波器对多个频带叠加的正弦信号进行处理,对比滤波前后的信号时域和频域图,验证滤波器的效果。

最后录制一段语音信号,并对录制的信号进行采样和加噪,绘制出采样后语音信号的时域波形和频谱图,然后用所设计的滤波器对加噪后的信号进行滤波,绘制出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。

实验四 参考 基于MATLAB的FIR数字滤波器设计

实验四  参考 基于MATLAB的FIR数字滤波器设计

实验4 基于MATLAB 的FIR 数字滤波器设计一、 实验目的(1) 加深对数字滤波器的常用指标理解。

(2) 学习数字滤波器的设计方法。

二、 实验原理 低通滤波器1()1()P P P SS H H δδδπ⎧-≤Ω≤+Ω≤Ω⎪⎨Ω≤Ω≤Ω≤⎪⎩低通滤波器的常用指标:1、 通带边缘频率P Ω,2、 阻带边缘频率SΩ ,3、 通带起伏P δ,4、通带峰值起伏])[1(log2010dB p pδα--=,5、阻带起伏sδ,最小阻带衰减])[(log 2010dB s S δα-=。

三、 要求 (1)在MA TLAB 中,熟悉函数fir1、kaiserord 、remezord 、remez 的使用;B = fir1(n,Wn,'high','noscale')设计滤波器;[n,Wn,beta,ftype] = kaiserord(f,a,dev)估计滤波器阶数;[n,fo,ao,w] = remezord (f,a,dev ,fs)计算等波纹滤波器阶数n 和加权函数w(ω); B=remez(n,f,a)进行等波纹滤波器的设计(2)阅读附录中的实例,学习FIR 滤波器的设计方法及其在MA TLAB 中的实现;(3)给出FIR 数字滤波器的冲激响应,绘出它们的幅度和相位频响曲线,讨论它们各自的实现形式和特点。

四、 实验内容利用MA TLAB 编程,分别用窗函数法和等波纹滤波器法设计两种FIR 数字滤波器,指标要求如下:通带边缘频率:π45.01=ΩP ,π65.02=ΩP ,通带峰值起伏:][1dB p≤α。

阻带边缘频率:π3.01=ΩS ,π75.02=ΩS ,最小阻带衰减:][40dB S ≥α。

附录:例1 用凯塞窗设计一FIR 低通滤波器,通带边界频率π3.0=Ωp ,阻带边界频率π5.0=Ωs ,阻带衰减 不小于50dB 。

S Ω-PΩ-P SΩPassband StopbandTransitionbandFig 1 Typical magnitudespecification for a digital LPF解首先由过渡带宽和阻带衰减来决定凯塞窗的N和π2.0=Ω-Ω=∆Ωps,,上图给出了以上设计的频率特性,(a) 为N=30直接截取的频率特性(b)为凯塞窗设计的频率特性。

基于matlab的fir数字滤波器的设计

基于matlab的fir数字滤波器的设计

一、引言数字滤波器是数字信号处理中至关重要的组成部分,它能够对数字信号进行滤波处理,去除噪音和干扰,提取信号中的有效信息。

其中,fir数字滤波器作为一种常见的数字滤波器类型,具有稳定性强、相位响应线性等特点,在数字信号处理领域得到了广泛的应用。

本文将基于matlab软件,探讨fir数字滤波器的设计原理、方法和实现过程,以期能够全面、系统地了解fir数字滤波器的设计流程。

二、fir数字滤波器的基本原理fir数字滤波器是一种有限长冲激响应(finite impulse response, FIR)的数字滤波器,其基本原理是利用线性相位特性的滤波器来实现对数字信号的筛选和处理。

fir数字滤波器的表达式为:$$y(n) = \sum_{k=0}^{M}h(k)x(n-k)$$其中,y(n)为输出信号,x(n)为输入信号,h(k)为滤波器的系数,M为滤波器的长度。

fir数字滤波器的频率响应特性由其系数h(k)决定,通过设计合适的系数,可以实现对不同频率成分的滤波效果。

三、fir数字滤波器的设计方法fir数字滤波器的设计方法主要包括窗函数法、频率抽样法、最小最大法等。

在matlab中,可以通过信号处理工具箱提供的fir1函数和firls函数等来实现fir数字滤波器的设计。

下面将分别介绍这两种设计方法的基本原理及实现步骤。

1. 窗函数法窗函数法是fir数字滤波器设计中最为常见的方法之一,其基本原理是通过对理想滤波器的频率响应进行窗函数加权来满足设计要求。

在matlab中,可以使用fir1函数实现fir数字滤波器的设计,其调用格式为:h = fir1(N, Wn, type)其中,N为滤波器的阶数,Wn为滤波器的截止频率,type为窗函数的类型。

通过调用fir1函数,可以灵活地设计出满足特定要求的fir数字滤波器。

2. 频率抽样法频率抽样法是fir数字滤波器设计中的另一种重要方法,其基本原理是在频域上对理想滤波器的频率响应进行抽样,并拟合出一个最优的滤波器。

基于MATLAB设计FIR滤波器

基于MATLAB设计FIR滤波器

基于MATLAB设计FIR滤波器FIR(Finite Impulse Response)滤波器是一种数字滤波器,它具有有限的冲激响应长度。

基于MATLAB设计FIR滤波器可以使用signal工具箱中的fir1函数。

fir1函数的语法如下:b = fir1(N, Wn, window)其中,N是滤波器的阶数,Wn是截止频率,window是窗函数。

要设计一个FIR低通滤波器,可以按照以下步骤进行:步骤1:确定滤波器的阶数。

阶数决定了滤波器的截止频率的陡峭程度。

一般情况下,阶数越高,滤波器的陡峭度越高,但计算复杂度也会增加。

步骤2:确定滤波器的截止频率。

截止频率是指在滤波器中将信号的频率限制在一定范围内的频率。

根据应用的需求,可以选择适当的截止频率。

步骤3:选择窗函数。

窗函数是为了在时域上窗口函数中心增加频率衰减因子而使用的函数。

常用的窗函数有Hamming、Hanning等。

窗函数可以用来控制滤波器的幅度响应特性,使得它更平滑。

步骤4:使用fir1函数设计滤波器。

根据以上步骤确定滤波器的阶数、截止频率和窗函数,可以使用fir1函数设计FIR滤波器。

具体代码如下:N=50;%设定阶数Wn=0.5;%设定截止频率window = hanning(N + 1); % 使用Hanning窗函数步骤5:使用filter函数对信号进行滤波。

设计好FIR滤波器后,可以使用filter函数对信号进行滤波。

具体代码如下:filtered_signal = filter(b, 1, input_signal);其中,input_signal是输入信号,filtered_signal是滤波后的信号。

以上,便是基于MATLAB设计FIR滤波器的简要步骤和代码示例。

根据具体需求和信号特性,可以进行相应的调整和优化。

基于MATLAB的FIR和IIR数字滤波器的设计

基于MATLAB的FIR和IIR数字滤波器的设计

基于MATLAB的FIR和IIR数字滤波器的设计一、本文概述随着数字信号处理技术的飞速发展,数字滤波器作为其中的核心组件,已经广泛应用于通信、音频处理、图像处理、生物医学工程等诸多领域。

在数字滤波器中,有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器是最常见的两种类型。

它们各自具有独特的优点和适用场景,因此,对这两种滤波器的深入理解和设计掌握是工程师和研究人员必备的技能。

本文旨在通过MATLAB这一强大的工程计算工具,详细介绍FIR 和IIR数字滤波器的设计原理、实现方法以及对比分析。

我们将简要回顾数字滤波器的基本概念和分类,然后重点阐述FIR和IIR滤波器的设计理论,包括窗函数法、频率采样法、最小均方误差法等多种设计方法。

接下来,我们将通过MATLAB编程实现这些设计方法,并展示如何根据实际应用需求调整滤波器参数以达到最佳性能。

本文还将对FIR和IIR滤波器进行性能对比,分析它们在不同应用场景下的优缺点,并提供一些实用的设计建议。

我们将通过几个典型的应用案例,展示如何在MATLAB中灵活应用FIR和IIR滤波器解决实际问题。

通过阅读本文,读者将能够深入理解FIR和IIR数字滤波器的设计原理和实现方法,掌握MATLAB在数字滤波器设计中的应用技巧,为未来的工程实践和研究工作打下坚实的基础。

二、FIR滤波器设计有限脉冲响应(FIR)滤波器是一种数字滤波器,其特点是其脉冲响应在有限的时间后为零。

因此,FIR滤波器是非递归的,没有反馈路径,从而保证了系统的稳定性。

在设计FIR滤波器时,我们主要关注的是滤波器的阶数、截止频率和窗函数的选择。

在MATLAB中,有多种方法可以用来设计FIR滤波器。

其中,最常用的方法是使用fir1函数,该函数可以设计一个线性相位FIR滤波器。

该函数的基本语法是b = fir1(n, Wn),其中n是滤波器的阶数,Wn是归一化截止频率,以π为单位。

该函数返回一个长度为n+1的滤波器系数向量b。

实验四FIR数字滤波器设计与软件实现

实验四FIR数字滤波器设计与软件实现

实验四FIR数字滤波器设计与软件实现
实验目的:
掌握FIR数字滤波器的设计与软件实现方法,了解滤波器的概念与基
本原理。

实验原理:
FIR数字滤波器全称为有限脉冲响应数字滤波器,其特点是具有有限
长度的脉冲响应。

滤波器通过一系列加权系数乘以输入信号的延迟值,并
将这些值相加得到输出信号。

FIR滤波器的频率响应由滤波器系数所决定。

实验步骤:
1.确定所需的滤波器的设计规格,包括截止频率、通带波纹、阻带衰
减等。

2.选择适当的滤波器设计方法,如窗函数、最佳近似法、最小二乘法等。

3.根据所选方法,计算滤波器的系数。

4.在MATLAB环境下,使用滤波器的系数实现滤波器。

5.输入所需滤波的信号,经过滤波器进行滤波处理。

6.分析输出的滤波信号,观察滤波效果是否符合设计要求。

实验要求:
1.完成FIR数字滤波器的设计和软件实现。

2.对比不同设计方法得到的滤波器性能差异。

3.分析滤波结果,判断滤波器是否满足设计要求。

实验器材与软件:
1.个人电脑;
2.MATLAB软件。

实验结果:
根据滤波器设计规格和所选的设计方法,得到一组滤波器系数。

通过
将滤波器系数应用于输入信号,得到输出滤波信号。

根据输出信号的频率
响应、通带波纹、阻带衰减等指标,评估滤波器的性能。

实验注意事项:
1.在选择设计方法时,需要根据滤波器要求和实际情况进行合理选择。

2.在滤波器实现过程中,需要注意滤波器系数的计算和应用。

3.在实验过程中,注意信号的选择和滤波结果的评估方法。

用MAtlab实现FIR数字滤波器的设计

用MAtlab实现FIR数字滤波器的设计

设计方法
• 一、窗函数设计法 • 二、频率抽样设计法 • 三、最小二乘逼近设计法
FIR 数 字 滤 波 器 的 文 件
一、fir1.m
• 本文件采用窗函数法设计FIR数字滤波器,其调用格式是
• 1)b=fir1(N ,W c)
• 2)b=fir1(N,W c ,’high’) • 3)b=fir1(N,W c ,’stop’)
实践课题
FIR 数 字 滤 波 器 的 设 计
实践目的


通过实践加深对Matlab软件的认识。 能熟练应用并基本掌握Matlab软件, 通过实践对课本以外的内容有初步的 了解。 通过设计FIR数字滤波器,对滤波器 的功能和原理有初步的认识和了解。
实践课题简介
在数字信号处理的许多领域中, 如图像处理、数字通信等领域,常 常要求滤波器具有线性相位。FIR数 字滤波器的最大优点就是容易设计 成线性相位特性,而且它的单位冲 激响应是有限长的,所以它永远是 稳定的。

Hale Waihona Puke 上式中N为滤波器的阶次,W c是通带截止频率,其值在0~1之间, 1对应采样频率的一半,b是设计好的滤波器系数(单位冲激响应序 列)其长度为N+1。
对于格式(1)若W c是一标量,则可用来设计低通滤波器;若W c 是 的向量,则用来设计带通滤波器。 格式(2)用来设计高通滤波器。 格式(3)用来设计带阻滤波器。
部分滤波器的例子(频率抽样法)

部分滤波器的例子(最小二乘逼近设计法)

Fircls1设计的低通滤波器,归一化截止频率 为0.3,通带波纹为0.02,阻带波纹为0.008。
实践总结

通过这次实践课题的设计与制作,使我 对Matlab这个软件有了进一步的了解,并且 加深了课本上的知识。与此同时,使我对 滤波器有了初步的认识。提高了我的理解 以及分析能力,理论和实践相结合,不仅 巩固了我的理论知识,同时更提高了我的 实践能力,使我受益匪浅。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验4 基于MATLAB 的FIR 数字滤波器设计实验目的:加深对数字滤波器的常用指标和设计过程的理解。

实验原理:低通滤波器的常用指标:P P P for H Ω≤Ω+≤Ω≤-,1)(1δδπδ≤Ω≤Ω≤ΩS S for H ,)(通带边缘频率P Ω,阻带边缘频率S Ω ,通带起伏P δ,通带峰值起伏])[1(log 2010dB p pδα--=,阻带起伏s δ,最小阻带衰减])[(log 2010dB s S δα-=。

数字滤波器有IIR 和FIR 两种类型,它们的特点和设计方法不同。

在MATLAB 中,可以用b=fir1(N,Wn,’ftype’,taper) 等函数辅助设计FIR 数字滤波器。

N 代表滤波器阶数;Wn 代表滤波器的截止频率(归一化频率),当设计带通和带阻滤波器时,Wn 为双元素相量;ftype 代表滤波器类型,如’high ’高通,’stop ’带阻等;taper 为窗函数类型,默认为海明窗,窗系数需要实现用窗函数blackman, hamming,hanning chebwin, kaiser 产生。

S PP SPassband StopbandTransition bandFig 1 Typical magnitude specification for a digital LPF例1 用凯塞窗设计一FIR低通滤波器,通带边界频率π3.0,阻带边界频Ω=p,阻带衰减不小于率π5.0Ω=s50dB。

解首先由过渡带宽和阻带衰减来决定凯塞窗的N和π2.0=Ω-Ω=∆Ωps ,,上图给出了以上设计的频率特性,(a) 为N=30直接截取的频率特性(b)为凯塞窗设计的频率特性。

凯塞窗设计对应的MATLAB程序为:wn=kaiser(30,4.55);nn=[0:1:29];alfa=(30-1)/2;hd=sin(0.4*pi*(nn-alfa))./(pi*(nn-alfa));h=hd.*wn;[h1,w1]=freqz(h,1);或者:b = fir1(29,0.4,kaiser(30,4.55));[h1,w1]=freqz(b,1);plot(w1/pi,20*log10(abs(h1)));axis([0,1,-80,10]);grid;xlabel('归一化频率/ ') ;ylabel('幅度/dB') ;还可以使用[n,Wn,beta,ftype] = kaiserord(f,a,dev)函数来估计滤波器阶数等,得到凯塞窗滤波器:fcuts = [0.3 0.5]; %归一化频率omega/pimags = [1 0];devs = [0.05 10^(-2.5)];[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs); %计算出凯塞窗N,beta的值hh = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');freqz(hh);实际中,一般调用MATLAB信号处理工具箱函数remezord来计算等波纹滤波器阶数N和加权函数W(ω),调用函数remez可进行等波纹滤波器的设计,直接求出滤波器系数。

函数remezord中的数组fedge 为通带和阻带边界频率,数组mval是两个边界处的幅值,而数组dev 是通带和阻带的波动,fs是采样频率单位为Hz。

例2 利用雷米兹交替算法设计等波纹滤波器,设计一个线性相位低通FIR数字滤波器,其指标为:通带边界频率f c=800Hz,阻带边界f r=1000Hz,通带波动阻带最小衰减At=40dB,采样频率f s=4000Hz。

解在MATLAB中可以用remezord 和remez两个函数设计,其结果如图2,MATLAB程序如下:fedge=[800 1000];mval=[1 0];dev=[0.0559 0.01];fs=4000;[N,fpts,mag,wt]=remezord(fedge,mval,dev,fs);b=remez(N,fpts,mag,wt);[h,w]=freqz(b,1,256);plot(w*2000/pi,20*log10(abs(h)));grid;xlabel('频率/Hz') ;ylabel('幅度/dB');一、实验内容: 利用MATLAB 编程设计一个数字带通滤波器,指标要求如下:通带边缘频率:π45.01=ΩP ,π65.02=ΩP ,通带峰值起伏:][1dB p ≤α。

阻带边缘频率:π3.01=ΩS ,π75.02=ΩS ,最小阻带衰减:][40dB S ≥α。

分别用窗函数法和等波纹滤波器法设计两种FIR 数字滤波器。

实验要求:给出FIR 数字滤波器的冲激响应,绘出它们的幅度和相位频响曲线,讨论它们各自的实现形式和特点。

1-1)用窗函数法实现:调用函数[n,wn,bta,ftype]=kaiserord (f ,a ,dev ,fs )参数:f=[0.3 0.45 0.65 0.8]为对应数字频率π3.01=ΩS ,π45.01=ΩP ,π65.02=ΩP ,,π75.02=ΩSa=[0 1 0]为由f 指定的各个频带上的幅值向量,一般只有0和1表示;和f 长度关系为(2*a 的长度)—2=(f 的长度)devs=[0.01 0.1087 0.01]用于指定各个频带输出滤波器的频率响应与其期望幅值之间的最大输出误差或偏差,长度与a 相等,计算公式:阻带衰减误差=,通带波动衰减误差=fs缺省值为2HZ>> [n,wn,bta,ftype]=kaiserord([0.3 0.45 0.65 0.8],[0 1 0],[0.01 0.1087 0.01]);%用kaiserord函数估计出滤波器阶数n和beta参数>> h1=fir1(n,wn,ftype,kaiser(n+1,bta),'noscale');>> [hh1,w1]=freqz(h1,1,256);>> figure(1)>> subplot(2,1,1)>> plot(w1/pi,20*log10(abs(hh1)))>> grid>> xlabel('归一化频率w');ylabel('幅度/db');>> subplot(2,1,2)>> plot(w1/pi,angle(hh1))>> grid>> xlabel('归一化频率w');ylabel('相位/rad');h1 =Columns 1 through 80.0041 0.0055 -0.0091 -0.0018 -0.0056 -0.0000 0.0391 -0.0152 Columns 9 through 16-0.0381 0.0077 -0.0293 0.0940 0.0907 -0.2630 -0.0517 0.3500 Columns 17 through 24-0.0517 -0.2630 0.0907 0.0940 -0.0293 0.0077 -0.0381 -0.0152 Columns 25 through 310.0391 -0.0000 -0.0056 -0.0018 -0.0091 0.0055 0.0041图4-1如果直接用freqz(h1,1,256);画图得:1-2)用等波纹法设计:调用函数[n,fpts,mag,wt]=remezord(f,a,dev)f=[0.3 0.45 0.65 0.8]a=[0 1 0]dev=[0.01 0.1087 0.01]其含义同函数[n,wn,bta,ftype]=kaiserord(f,a,dev,fs)中的参数相同。

>> [n,fpts,mag,wt]=remezord([0.3 0.45 0.65 0.8],[0 1 0],[0.01 0.10870.01]);%用remezord函数估算出remez函数要用到的阶n、归一化频带边缘矢量fpts、频带内幅值响应矢量mag及加权矢量w,使remez 函数设计出的滤波器满足f、a及dev指定的性能要求。

>> h2=remez(n,fpts,mag,wt);%设计出等波纹滤波器>> [hh2,w2]=freqz(h2,1,256);>> figure(2)>> subplot(2,1,1)>> plot(w2/pi,20*log10(abs(hh2)))>> grid>> xlabel('归一化频率w');ylabel('幅度/db');>> subplot(2,1,2)>> plot(w2/pi,angle(hh2))>> grid>> xlabel('归一化频率w');ylabel('相位/rad');>> h2h2 =Columns 1 through 9-0.0013 0.0092 -0.0255 -0.0642 0.1177 0.0922 -0.2466 -0.0466 0.3116Columns 10 through 17-0.0466 -0.2466 0.0922 0.1177 -0.0642 -0.0255 0.0092 -0.0013图4-2 用freqz(h2,1,256);直接得图:二、对课本作业9.23画图。

2-1)用汉宁窗实现:1)手动计算>> n=0.001:58.001;>> hd=sin(0.18125*pi*(n-29))./(pi*(n-29));>> win=0.5+0.5*cos(2*pi*(n-29)/58);>> h1=2*cos(pi*(n-29)/2).*hd.*win;>> [hh1,w1]=freqz(h1,1,256);>> figure(1)>> subplot(2,1,1)>> plot(w1,20*log10(abs(hh1)))>> grid>> xlabel('数字频率w/rad');ylabel('幅度/db');>> subplot(2,1,2)>> plot(w1,angle(hh1))>> grid>> xlabel('数字频率w/rad');ylabel('相位/rad');图4-32-2)用自带的fir1函数:>> n=59;>> wn=[3/8 5/8];>> h2=fir1(n,wn,'bandpass',hann(n+1));>> [hh2,w2]=freqz(h2,1,256);>> figure(2)>> subplot(2,1,1)>> plot(w2,20*log10(abs(hh2)))>> xlabel('数字频率w/rad');ylabel('幅度/db');>> grid>> subplot(2,1,2)>> plot(w2,angle(hh2))>> xlabel('数字频率w/rad');ylabel('相角/rad');>> grid图4-42-3)用等波纹法设计:调用函数[n,fpts,mag,wt]=remezord(f,a,dev)f=[0.2625 0.375 0.625 0.7375]a=[0 1 0]dev=[0.01 0.1087 0.01]>> [n,fpts,mag,wt]=remezord([0.2625 0.375 0.625 0.7375],[0 1 0],[0.01 0.1087 0.01]); >> h2=remez(n,fpts,mag,wt);>> [hh2,w2]=freqz(h2,1,256);>> figure(2)>> subplot(2,1,1)>> plot(w2/pi,20*log10(abs(hh2)))>> grid>> xlabel('归一化频率w');ylabel('幅度/db');>> subplot(2,1,2)>> plot(w2/pi,angle(hh2))>> grid>> xlabel('归一化频率w');ylabel('相位/rad');>> h2画图为:另外带通滤波器还可以用低通和高通级联的方法实现,因为步骤过多,这里不作讨论。

相关文档
最新文档