FIR数字滤波器设计及软件实现

合集下载

fir

fir

1、设计任务1、用MATLAB软件实现FIR滤波器;2、设计基于DSP的FIR滤波器硬件框图;3、了解用DSP实现FIR滤波器的关键问题;4、完成必要的软件流程图。

2.前言在信号与信息处理过程中,在对信号作分析处理时,滤波是一种十分重要的算法,滤波是将信号中特定波段频率滤除的操作。

数字信号处理通常采用FFT/IFFT 实现,那么其中需要滤除的频率,可以采用“滤波函数”与被处理信号相乘而达到目的。

滤波分为模拟滤波和数字滤波,数字滤波它是通过一种算法排除可能的随机干扰,提高检测精度的一种手段, 随着数字技术的飞速发展,数字滤波理论也得到了长足的进步,现在广泛用于对信号的过滤、检测与参数的估计、语音和图像处理、模式识别、频谱分析等应用中等信号处理中。

滤波需要用到的是滤波器,滤波器的种类很多,实现方法也多种多样。

在数字信号处理中,数字滤波器有及其重要的地位。

在许多信号处理应用中用数字滤波器替代模拟滤波器具有许多优势。

数字滤波器容易实现不同的幅度和相位频率特性指标,克服了与模拟滤波器性能相关的电压漂移、温度漂移和噪声等问题。

数字滤波器根据其单位冲激响应函数的时域特性可分为两类: 无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。

IIR数字滤波器的设计方法是利用模拟滤波器成熟的理论及设计图表进行设计的,因而保留了一些典型模拟滤波器优良的幅度特性,但设计中只考虑了幅度特性,没考虑相位特性,所设计的滤波器一般是某种确定的非线性相位特性。

为了得到线性相位特性,对IIR滤波器必须另外加相位校正网络,使滤波器设计变得复杂,成本也高,又难以得到严格的线性相位特性。

而FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性,又因为FIR滤波器的h(n)是有限长的,所以它一定是稳定的,同时为了使FIR数字滤波器的设计更优化,因而研究FIR数字滤波器的优化设计具有重要的意义。

在数字滤波器的设计过程中,软件模拟的方法不仅能及时地提供系统运行的信息,还可以随时改变系统结构从而验证全新的系统,所以软件仿真变得非常重 要。

FIR数字滤波器设计与软件实现实验报告222

FIR数字滤波器设计与软件实现实验报告222

FIR数字滤波器设计与软件实现实验报告222 FIR数字滤波器设计与软件实现实验报告222实验标题:FIR数字滤波器设计与软件实现实验目的:1.学习FIR数字滤波器的基本原理和设计方法;2.掌握使用MATLAB软件进行FIR数字滤波器设计的方法;3.通过实验验证FIR数字滤波器的性能和效果。

实验器材与软件:1.个人计算机;2.MATLAB软件。

实验步骤:1.确定所需的滤波器类型和设计要求;2.根据设计要求选择合适的滤波器设计方法,如窗函数法、最优化方法等;3.使用MATLAB软件进行滤波器设计,并绘制滤波器的频率响应曲线;4.将设计好的滤波器用于信号处理,观察滤波效果。

实验结果与分析:1.进行实验前,首先确定滤波器的类型和设计要求。

例如,我们选择低通滤波器,要求通带频率为1kHz,阻带频率为2kHz,通带最大衰减为1dB,阻带最小衰减为60dB。

2.在MATLAB软件中,我们选择窗函数法进行滤波器设计。

根据设计要求,选择合适的窗函数,如矩形窗、汉宁窗等。

根据设计要求和窗函数的特点,确定滤波器的长度N和窗函数的参数。

3. 使用MATLAB中的fir1函数进行滤波器设计,并绘制滤波器的频率响应曲线。

根据频率响应曲线,可以分析滤波器的性能是否符合设计要求。

4. 将设计好的滤波器用于信号处理,观察滤波效果。

在MATLAB中,可以使用filter函数对信号进行滤波处理,然后绘制原始信号和滤波后的信号的时域波形和频谱图进行对比分析。

实验结论:1.通过本次实验,我们学习了FIR数字滤波器的基本原理和设计方法;2.掌握了使用MATLAB软件进行FIR数字滤波器设计的方法;3.实验结果显示,设计的FIR数字滤波器可以满足设计要求,具有良好的滤波效果。

4.FIR数字滤波器在数字信号处理中具有广泛的应用前景,对于滤除噪声、改善信号质量等方面有重要意义。

fir数字滤波器设计与软件实现数字信号处理实验原理

fir数字滤波器设计与软件实现数字信号处理实验原理

fir数字滤波器设计与软件实现数字信号处理实验原理FIR数字滤波器设计的基本原理是从理想滤波器的频率响应出发,寻找一个系统函数,使其频率响应尽可能逼近滤波器要求的理想频率响应。

为了实现这一目标,通常会采用窗函数法进行设计。

这种方法的基本思想是,将理想滤波器的无限长单位脉冲响应截断为有限长因果序列,并用合适的窗函数进行加权,从而得到FIR滤波器的单位脉冲响应。

在选择窗函数时,需要考虑其频率响应和幅度响应。

常见的窗函数包括矩形窗、三角形窗、汉宁窗、汉明窗、布莱克曼窗和凯泽窗等。

每种窗函数都有其特定的特性,如主瓣宽度、旁瓣衰减等。

根据实际需求,可以选择合适的窗函数以优化滤波器的性能。

在软件实现上,可以使用各种编程语言和信号处理库进行FIR滤波器的设计和实现。

例如,在MATLAB中,可以使用内置的`fir1`函数来设计FIR滤波器。

该函数可以根据指定的滤波器长度N和采样频率Fs,自动选择合适的窗函数并计算滤波器的系数。

然后,可以使用快速卷积函数`fftfilt`对输入信号进行滤波处理。

此外,还可以使用等波纹最佳逼近法来设计FIR数字滤波器。

这种方法的目标是找到一个最接近理想滤波器频率响应的实数序列,使得在所有可能的实
数序列中,该序列的误差平方和最小。

通过优化算法,可以找到这个最优序列,从而得到性能更优的FIR滤波器。

总的来说,FIR数字滤波器设计与软件实现数字信号处理实验原理是基于对理想滤波器频率响应的逼近和优化,通过选择合适的窗函数和算法,实现信号的滤波处理。

基于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滤波器设计与实现⼀、摘要 前⾯⼀篇⽂章介绍了通过FDATool⼯具箱实现滤波器的设计,见“”,这⾥通过⼏个例⼦说明采⽤Matlab语⾔设计FIR滤波器的过程。

⼆、实验平台 Matlab7.1三、实验原理 以低通滤波器为例,其常⽤的设计指标有:1. 通带边缘频率f p(数字频率为Ωp)2. 阻带边缘频率f st (数字频率为Ωst)3. 通带内最⼤纹波衰减δp=-20log10(1-αp),单位为 dB4. 阻带最⼩衰减αs=-20log10(αs),单位为 dB5. 阻带起伏αs6. 通带峰值起伏αp 其中,以1、2、3、4条最为常⽤。

5、6条在程序中估算滤波器阶数等参数时会⽤到。

数字频率 = 模拟频率/采样频率四、实例分析例1 ⽤凯塞窗设计⼀FIR低通滤波器,通带边界频率Ωp=0.3pi,阻带边界频率Ωs=0.5pi,阻带衰减δs不⼩于50dB。

⽅法⼀:⼿动计算滤波器阶数N和β值,之后在通过程序设计出滤波器。

第⼀步:通过过渡带宽度和阻带衰减,计算滤波器的阶数B和β值。

第⼆步:通过程序设计滤波器。

程序如下: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('归⼀化频率/p') ;ylabel('幅度/dB') ;波形如下:⽅法⼆:采⽤[n,Wn,beta,ftype] = kaiserord(f,a,dev)函数来估计滤波器阶数等,得到凯塞窗滤波器。

这⾥的函数kaiserord(f,a,dev)或者kaiserord(f,a,dev,f s): f为对应的频率,f s为采样频率;当f⽤数字频率表⽰时,f s则不需要写。

a=[1 0]为由f指定的各个频带上的幅值向量,⼀般只有0和1表⽰;a和f长度关系为(2*a的长度)- 2=(f的长度) devs=[0.05 10^(-2.5)]⽤于指定各个频带输出滤波器的频率响应与其期望幅值之间的最⼤输出误差或偏差,长度与a相等,计算公式:阻带衰减误差=αs,通带衰减误差=αp,可有滤波器指标中的3、4条得到。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FIR数字滤波器设计实验_完整版

FIR数字滤波器设计实验_完整版本实验旨在设计一种FIR数字滤波器,以滤除信号中的特定频率成分。

下面是完整的实验步骤:材料:-MATLAB或其他支持数字信号处理的软件-计算机-采集到的信号数据实验步骤:1.收集或生成需要滤波的信号数据。

可以使用外部传感器采集数据,或者在MATLAB中生成一个示波器信号。

2. 在MATLAB中打开一个新的脚本文件,并导入信号数据。

如果你是使用外部传感器采集数据,请将数据以.mat文件的形式保存,并将其导入到MATLAB中。

3.对信号进行预处理。

根据需要,你可以对信号进行滤波、降噪或其他预处理操作。

这可以确保信号数据在输入FIR滤波器之前处于最佳状态。

4.确定滤波器的设计规范。

根据信号的特性和要滤除的频率成分,确定FIR滤波器的设计规范,包括滤波器的阶数、截止频率等。

你可以使用MATLAB中的函数来帮助你计算滤波器参数。

5. 设计FIR滤波器。

使用MATLAB中的fir1函数或其他与你所使用的软件相对应的函数来设计满足你的规范条件的FIR滤波器。

你可以选择不同的窗函数(如矩形窗、汉宁窗等)来平衡滤波器的频域和时域性能。

6. 对信号进行滤波。

将设计好的FIR滤波器应用到信号上,以滤除特定的频率成分。

你可以使用MATLAB中的conv函数或其他相应函数来实现滤波操作。

7.分析滤波效果。

将滤波后的信号与原始信号进行比较,评估滤波效果。

你可以绘制时域图、频域图或其他特征图来分析滤波效果。

8.优化滤波器设计。

如果滤波效果不理想,你可以调整滤波器设计参数,重新设计滤波器,并重新对信号进行滤波。

这个过程可能需要多次迭代,直到达到最佳的滤波效果。

9.总结实验结果。

根据实验数据和分析结果,总结FIR滤波器设计的优点和缺点,以及可能的改进方向。

通过完成以上实验步骤,你将能够设计并应用FIR数字滤波器来滤除信号中的特定频率成分。

这对于许多信号处理应用都是非常重要的,如音频处理、图像处理和通信系统等。

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

实验四FIR数字滤波器设计与软件实现
实验目的:
FIR(Finite Impulse Response)数字滤波器是一种常用的数字滤波器,本实验旨在通过设计和软件实现FIR数字滤波器,加深对数字滤波器的理解和应用。

实验材料和设备:
1.个人电脑
2. 数字信号处理软件(如MATLAB、Python等)
实验步骤:
1.确定滤波器的类型和设计要求,如低通滤波器、高通滤波器、带通滤波器等。

给定滤波器的截止频率、通带衰减和阻带衰减等参数。

2.使用指定的设计方法,如窗函数法、频率采样法等,进行FIR滤波器的设计。

根据设计要求选择合适的窗函数(如矩形窗、汉宁窗、布莱克曼窗等)或频率采样点。

3.进行FIR滤波器的软件实现。

在数字信号处理软件中,根据设计好的滤波器系数(也称为权值),通过卷积操作对输入信号进行滤波。

可以使用已有的滤波器设计函数或自行编写代码实现。

4.对输入信号进行滤波,观察滤波效果。

可以通过绘制输入信号和输出信号的时域图和频域图,分析滤波效果。

根据需要,可以对滤波器进行调整和优化。

5.根据实验结果,对滤波器的性能进行评估。

可以对比不同设计方法和参数选择的滤波器性能,分析其优缺点。

注意事项:
1.在选择滤波器的设计方法时,要根据实际需求和要求来选择。

不同方法有不同的适用范围和设计效果。

2.在进行滤波器实现时,要注意系数计算的精度和卷积操作的效率。

3.在进行滤波效果评估时,要综合考虑时域和频域等多个指标,避免单一指标的片面评价。

fir数字滤波器设计及软件实现

实验二 FIR 数字滤波器设计与软件实现1.实验目的(1)掌握用窗函数法设计FIR 数字滤波器的原理和方法。

(2)掌握用等波纹最佳逼近法设计FIR 数字滤波器的原理和方法。

(3)掌握FIR 滤波器的快速卷积实现原理。

(4)学会调用MATLAB 函数设计与实现FIR 滤波器。

2. 两种设计FIR 滤波器的方法比较窗函数法简单方便,易于实现。

但存在以下缺点:滤波器边界频率不易精确控制。

窗函数法总使通带和阻带波纹幅度相等,不能分别控制通带和阻带波纹幅度。

所设计的滤波器在阻带边界频率附近的衰减最小,距阻带边界频率越远,衰减越大。

,所以如果在阻带边界频率附近的衰减刚好达到设计指标要求,则阻带中其他频段的衰减就有很大富余量,存在较大的资源浪费。

等波纹最佳逼近法是一种优化设计方法,克服了窗函数法的缺点,使最大误差最小化,并在整个逼近频段上均匀分布。

用等波纹最佳逼近法设计的FIR 数字滤波器的幅频响应在通带和阻带都是等波纹的,而且可以分别控制通带和阻带波纹幅度。

与窗函数法相比,由于这种设计法使最大误差均匀分布,所以设计的滤波器性能价格比最高。

阶数相同时,这种设计方法使滤波器的最大逼近误差最小,即通带最大衰减最小,阻带最小衰减最大。

指标相同时,这种设计法使滤波器阶数最低。

3. 滤波器参数及实验程序清单(1) 滤波器参数选取根据加噪信号频谱图和实验要求,可选择一低通滤波器进行滤波,确定滤波器指标参数:通带截止频率Hz f p 130=,阻带截至频率Hz f s 150=,换算成数字频率,通带截止频率ππω26.02==T f p p ,通带最大衰减为dB p 1.0=α,阻带截至频率ππω3.02==T f s s ,阻带最小衰减为dB s 60=α。

(2) 实验程序清单 图1 程序流程图信号产生函数xtg 程序清单function xt=xtg%产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1000Hz %载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10Hz.N=1600;Fs=1000;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;fc=Fs/10;f0=fc/10; %载波频率fc=Fs/10,单频调制信号频率为f0=Fc/10;mt=cos(2*pi*f0*t); %产生单频正弦波调制信号mt ,频率为f0ct=cos(2*pi*fc*t); %产生载波正弦波信号ct ,频率为fcxt=mt.*ct; %相乘产生单频调制信号xtnt=2*rand(1,N)-1; %产生随机噪声nt%=======设计高通滤波器hn,用于滤除噪声nt 中的低频成分,生成高通噪声======= fp=150; fs=200;Rp=0.1;As=70; % 滤波器指标fb=[fp,fs];m=[0,1]; % 计算remezord函数所需参数f,m,devdev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)];[n,fo,mo,W]=remezord(fb,m,dev,Fs); % 确定remez函数所需参数hn=remez(n,fo,mo,W); % 调用remez函数进行设计,用于滤除噪声nt中的低频成分yt=filter(hn,1,10*nt); %滤除随机噪声中低频成分,生成高通噪声yt%================================================================ xt=xt+yt; %噪声加信号fst=fft(xt,N);k=0:N-1;f=k/Tp;figure(1);subplot(2,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t)');axis([0,Tp/4,min(xt),max(xt)]);title('信号加噪声波形');subplot(2,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title('信号加噪声的频谱');axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('幅度');FIR数字滤波器设计及软件实现程序清单clear all;close allxt=xtg; %调用xtg产生信号xt, xt长度N=1600,并显示xt及其频谱fp=130;fs=150;Rp=0.1;As=60;Fs=1000; % 输入给定指标%用窗函数法设计滤波器wc=(fp+fs)/Fs; %理想低通滤波器截止频率(关于pi归一化)B=2*pi*(fs-fp)/Fs;Nb=ceil(11*pi/B);hn=fir1(Nb-1,wc,blackman(Nb));y1t=fftfilt(hn,xt,1600); %调用函数fftfilt对xt滤波figure(2);t=0:0.001:1.599; %绘制滤波后的信号时域波形图subplot(2,1,1);plot(t,y1t);grid;xlabel('t/s');ylabel('y_1(t)');title('滤波后的y_1(t)的波形');axis([0 0.5 -1 1]);subplot(2,1,2);[h w]=freqz(hn); %绘制低通滤波器的损耗函数曲线plot(w/pi,20*log10(abs(h)));grid;xlabel('ω/π');ylabel('幅度(dB )');title('窗函数法低通滤波器的损耗函数曲线');axis([0 1 -120 5]);%用等波纹最佳逼近法设计滤波器fb=[fp,fs];m=[1,0]; %确定remezord 函数所需参数f,m,devdev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)];[Ne,fo,mo,W]=remezord(fb,m,dev,Fs); %确定remez 函数所需参数hn=remez(Ne,fo,mo,W); %调用remez 函数进行设计y2t=fftfilt(hn,xt,1600); %调用函数fftfilt 对xt 滤波figure(3);t=0:0.001:1.599; %绘制滤波后的信号时域波形图subplot(2,1,1);plot(t,y2t);grid;xlabel('t/s');ylabel('y_2(t)');title('滤波后的y_2(t)的波形');axis([0 0.5 -1 1]);subplot(2,1,2);[h w]=freqz(hn); %绘制低通滤波器的损耗函数曲线plot(w/pi,20*log10(abs(h)));grid;xlabel('ω/π');ylabel('幅度(dB )');title('等波纹逼近法低通滤波器的损耗函数曲线');axis([0 1 -80 5]);4. 实验结果在matlab 中键入以上程序,得到的仿真结果如下图2 具有加性噪声的信号x(t)及其频谱图3 窗函数法设计的滤波器损耗函数曲线及其滤波后的信号)(1t y图4 等波纹逼近法设计的滤波器损耗函数曲线及其滤波后的信号)(2t y由上述实验结果可见用窗函数法设计滤波器,滤波器长度 Nb=184。

FIR数字滤波器设计与软件实现实验报告222

FIR数字滤波器设计与软件实现实验报告222 FIR数字滤波器设计与软件实现实验报告222实验报告标题:FIR数字滤波器设计与软件实现实验目的:1.掌握FIR数字滤波器的设计原理;2.学会使用软件进行FIR数字滤波器设计;3.实现FIR数字滤波器的软件仿真。

实验材料与设备:1.计算机;2.FIR滤波器设计软件。

实验原理:FIR(Finite Impulse Response)数字滤波器是一种线性时不变滤波器,具有无穷冲击响应长度。

其传递函数表达式为:H(z)=b0+b1*z^(-1)+b2*z^(-2)+...+bM*z^(-M)其中,H(z)为滤波器的传递函数,z为z变换的复数变量,b0,b1,...,bM为滤波器的系数,M为滤波器的阶数。

FIR滤波器的设计包括理想滤波器的设计和窗函数法的设计两种方法。

本实验使用窗函数法进行FIR滤波器的设计。

窗函数法的步骤如下:1.确定滤波器的阶数M;2.设计理想低通滤波器的频率响应Hd(w);3.根据滤波器的截止频率选择合适的窗函数W(n);4.计算滤波器的单位脉冲响应h(n);5.调整滤波器的单位脉冲响应h(n)的幅度;6.得到滤波器的系数b0,b1,...,bM。

实验步骤:1.在计算机上安装并打开FIR滤波器设计软件;2.根据实验要求选择窗函数法进行FIR滤波器的设计;3.输入滤波器的阶数M和截止频率,选择合适的窗函数;4.运行软件进行滤波器设计,得到滤波器的系数;5.使用软件进行FIR滤波器的软件仿真。

实验结果:经过软件仿真,得到了FIR数字滤波器的单位脉冲响应和频率响应曲线,满足设计要求。

滤波器的阶数和截止频率对滤波器的响应曲线有一定影响。

通过调整滤波器阶数和截止频率,可以得到不同的滤波效果。

实验结论:本实验通过窗函数法进行FIR数字滤波器的设计,并通过软件进行了仿真。

实验结果表明,FIR数字滤波器具有良好的滤波效果,可以用于信号处理和通信系统中的滤波需求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五:FIR数字滤波器设计及软件实现
一、实验目的:
(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。

(2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。

(3)掌握FIR滤波器的快速卷积实现原理。

(4)学会调用MATLAB函数设计与实现FIR滤波器。

二、实验内容及步骤:
(1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理;
(2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图1所示;
图1 具有加性噪声的信号x(t)及其频谱如图
(3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。

先观察xt的频谱,确定滤波器指标参数。

(4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调用MATLAB 函数fir1设计一个FIR低通滤波器。

并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。

绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。

(4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB 函数remezord和remez设计FIR数字滤波器。

并比较两种设计方法设计的滤波器阶数。

友情提示:
○1MATLAB函数fir1和fftfilt的功能及其调用格式请查阅本课本;

2采样频率Fs=1000Hz ,采样周期T=1/Fs ; ○
3根据图10.6.1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz ,阻带截至频率fs=150Hz ,换算成数字频率,通带截止频率p 20.24p f ωπ=T =π,通带最大衰为0.1dB ,阻带截至频率s 20.3s f ωπ=T =π,阻带最小衰为60dB 。

]

4实验程序框图如图2所示。

图2 实验程序框图
三、实验程序:
1、信号产生函数xtg 程序清单:
%xt=xtg(N) 产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1000Hz %载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10Hz.
function xt=xtg
N=1000;Fs=1000;T=1/Fs;Tp=N*T;
t=0:T:(N-1)*T;
fc=Fs/10;f0=fc/10; %载波频率fc=Fs/10,单频调制信号频率为f0=Fc/10;
mt=cos(2*pi*f0*t); %产生单频正弦波调制信号mt,频率为f0
ct=cos(2*pi*fc*t); %产生载波正弦波信号ct,频率为fc
xt=mt.*ct; %相乘产生单频调制信号xt
nt=2*rand(1,N)-1; %产生随机噪声nt
%=======设计高通滤波器hn,用于滤除噪声nt中的低频成分,生成高通噪声=======
fp=120; fs=150;Rp=0.2;As=60; % 滤波器指标
fb=[fp,fs];m=[0,1]; % 计算remezord函数所需参数f,m,dev
dev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)];
[n,fo,mo,W]=remezord(fb,m,dev,Fs); % 确定remez函数所需参数
hn=remez(n,fo,mo,W); % 调用remez函数进行设计,用于滤除噪声nt中的低频成分
yt=filter(hn,1,10*nt); %滤除随机噪声中低频成分,生成高通噪声yt
%================================================================
xt=xt+yt; %噪声加信号
fst=fft(xt,N);k=0:N-1;f=k/Tp;
subplot(3,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t)');
axis([0,Tp/5,min(xt),max(xt)]);title('(1) 信号加噪声波形')
subplot(3,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title('(2) 信号加噪声的频谱')
axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('幅度')
2、主程序/实验程序清单:
clear all;clear all;
%==调用xtg产生信号xt, xt长度N=1000,并显示xt及其频谱,=========
N=1000;xt=xtg;
fp=120; fs=150;Rp=0.2;As=60;Fs=1000; % 输入给定指标
% (1) 用窗函数法设计滤波器
wc=(fp+fs)/Fs; %理想低通滤波器截止频率(关于pi归一化)
B=2*pi*(fs-fp)/Fs; %过渡带宽度指标
Nb=ceil(11*pi/B); %blackman窗的长度N
hn=fir1(Nb-1,wc,blackman(Nb));
Hw=abs(fft(hn,1024)); % 求设计的滤波器频率特性
ywt=fftfilt(hn,xt,N); %调用函数fftfilt对xt滤波
%以下为用窗函数法设计法的绘图部分(滤波器损耗函数,滤波器输出信号波形)
f=[0:1023]*Fs/1024;
figure(2)
subplot(2,1,1)
plot(f,20*log10(Hw/max(Hw)));grid;title('(3) 低通滤波器幅频特性')
axis([0,Fs/2,-120,20]);
xlabel('f/HZ');ylabel('幅度')
t=[0:N-1]/Fs;Tp=N/Fs;
subplot(2,1,2)
plot(t,ywt);grid;
axis([0,Tp/2,-1,1]);xlabel('t/s');ylabel('y_w(t)');
title('(4) 滤波噪声后的信号波形')
% (2) 用等波纹最佳逼近法设计滤波器
fb=[fp,fs];m=[1,0]; % 确定remezord函数所需参数f,m,dev
dev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)];
[Ne,fo,mo,W]=remezord(fb,m,dev,Fs); % 确定remez函数所需参数
hn=remez(Ne,fo,mo,W); % 调用remez函数进行设计
Hw=abs(fft(hn,1024)); % 求设计的滤波器频率特性
yet=fftfilt(hn,xt,N); % 调用函数fftfilt对xt滤波
%以下为用等纹波设计法的绘图部分(滤波器损耗函数,滤波器输出信号波形)f=[0:1023]*Fs/1024;
figure(3)
subplot(2,1,1)
plot(f,20*log10(Hw/max(Hw)));grid;title('(5) 低通滤波器幅频特性') axis([0,Fs/2,-80,10]);
xlabel('f/HZ');ylabel('幅度')
%t=[0:N-1]/Fs;Tp=N/Fs;
subplot(2,1,2)
plot(t,yet);grid;
axis([0,Tp/2,-1,1]);xlabel('t/s');ylabel('y_e(t)');
title('(6) 滤波噪声后的信号波形')
四、实验波形:
五、思考题:
(1)如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法
设计线性相位低通滤波器?请写出设计步骤。

答:用窗函数法设计线性相位低通滤波器的设计步骤教材中有详细的介绍。

(2)如果要求用窗函数法设计带通滤波器,且给定通带上、下截止频率为pl ω和pu ω,阻带上、下截止频率为sl ω和su ω,试求理想带通滤波器的截止频率cl cu ωω和。

答:希望逼近的理想带通滤波器的截止频率cl cu ωω和分别为:
cl sl pl cu su pu ()/2, ()/2ωωωωωω=+=+。

(3)解释为什么对同样的技术指标,用等波纹最佳逼近法设计的滤波器阶数低?
①用窗函数法设计的滤波器,如果在阻带截止频率附近刚好满足,则离开阻带截止频率越远,阻带衰减富裕量越大,即存在资源浪费;
② 几种常用的典型窗函数的通带最大衰减和阻带最小衰减固定,且差别较大,又不能分别控制。

所以设计的滤波器的通带最大衰减和阻带最小衰减通常都存在较大富裕。

如本实验所选的blackman 窗函数,其阻带最小衰减为74dB,而指标仅为60dB 。

③ 用等波纹最佳逼近法设计的滤波器,其通带和阻带均为等波纹特性,且通带最大衰减和阻带最小衰减可以分别控制,所以其指标均匀分布,没有资源浪费,所以期阶数低得多。

相关文档
最新文档