FIR数字滤波器的设计与实现

合集下载

fir滤波器设计实验报告

fir滤波器设计实验报告

fir滤波器设计实验报告fir滤波器设计实验报告引言:滤波器是数字信号处理中常用的工具,它能够对信号进行去噪、频率分析和频率选择等处理。

其中,FIR(Finite Impulse Response)滤波器是一种常见的数字滤波器,具有线性相位和稳定性等优点。

本实验旨在设计一个FIR滤波器,并通过实际测试验证其性能。

一、实验目的本实验的目的是通过设计一个FIR滤波器,掌握FIR滤波器的设计方法和性能评估。

具体包括以下几个方面:1. 了解FIR滤波器的基本原理和特点;2. 学习FIR滤波器的设计方法,如窗函数法、最小二乘法等;3. 掌握MATLAB等工具的使用,实现FIR滤波器的设计和性能评估;4. 通过实际测试,验证所设计FIR滤波器的性能。

二、实验原理FIR滤波器是一种非递归滤波器,其输出仅依赖于当前和过去的输入样本。

其基本原理是将输入信号与一组滤波器系数进行卷积运算,得到输出信号。

FIR滤波器的频率响应由滤波器系数决定,通过调整滤波器系数的值,可以实现不同的滤波效果。

在本实验中,我们采用窗函数法设计FIR滤波器。

窗函数法是一种常见的FIR滤波器设计方法,其基本思想是通过对滤波器的频率响应进行窗函数加权,从而实现对信号频率的选择。

常用的窗函数有矩形窗、汉宁窗、布莱克曼窗等。

三、实验过程1. 确定滤波器的要求:根据实际需求,确定滤波器的截止频率、通带衰减和阻带衰减等参数。

2. 选择窗函数:根据滤波器的要求,选择合适的窗函数。

常用的窗函数有矩形窗、汉宁窗、布莱克曼窗等,不同窗函数有不同的性能特点。

3. 计算滤波器系数:根据所选窗函数的特性,计算滤波器的系数。

这一步可以使用MATLAB等工具进行计算,也可以手动计算。

4. 实现滤波器:使用MATLAB等工具,将计算得到的滤波器系数应用于滤波器的实现。

可以使用差分方程、卷积等方法实现滤波器。

5. 评估滤波器性能:通过输入不同的信号,观察滤波器的输出,并评估其性能。

FIR滤波器设计实验报告

FIR滤波器设计实验报告

FIR滤波器设计实验报告实验目的:学习和掌握有限脉冲响应(FIR)滤波器的设计方法,了解数字滤波器的原理和实现。

实验器材:计算机、Matlab软件、FIR滤波器设计工具。

实验原理:1.确定滤波器的规格:包括通带频率、阻带频率、通带纹波、阻带衰减等参数。

2. 根据滤波器规格选择合适的FIR滤波器设计方法:常见的设计方法有窗函数法、频域近似法、Remez算法等。

3.根据设计方法计算FIR滤波器的系数:根据设计方法的不同,计算滤波器的系数也有所区别。

4.对FIR滤波器进行验证和优化:可以通过频率响应、幅频特性等指标对滤波器进行调整,并进行验证。

实验步骤:1.确定滤波器规格:设置通带频率为3kHz,阻带频率为5kHz,通带纹波为0.01dB,阻带衰减为40dB。

2.选择窗函数法进行FIR滤波器设计。

3.根据滤波器规格计算滤波器的阶数。

4.根据阶数选择合适的窗函数。

5.计算FIR滤波器的系数。

6.通过绘制滤波器的频率响应曲线进行验证。

7.分析滤波器的性能,并对滤波器进行优化。

实验结果:根据以上步骤进行设计和计算,得到了FIR滤波器的系数,利用Matlab绘制了滤波器的频率响应曲线。

分析和讨论:根据频率响应曲线,可以看出滤波器在通带频率范围内有较好的衰减效果,滤波器的阻带频率范围内衰减也满足要求。

但是在通带和阻带之间存在一定的过渡带,可能会对信号造成一部分的失真。

因此,可以考虑进一步优化滤波器的设计,使其在通带和阻带之间的过渡带更加平滑,减小失真的影响。

结论:通过本次实验,我们学习并掌握了FIR滤波器的设计方法,了解了数字滤波器的原理和实现。

在实际应用中,可以根据需要选择合适的FIR滤波器设计方法,并根据滤波器的规格进行计算和调整。

通过不断优化和验证,可以得到满足要求的FIR滤波器,实现对数字信号的滤波处理。

fir滤波器实验报告

fir滤波器实验报告

fir滤波器实验报告fir滤波器实验报告引言:滤波器是信号处理中常用的工具,它可以对信号进行频率选择性处理。

在数字信号处理中,FIR(Finite Impulse Response)滤波器是一种常见的滤波器类型。

本实验旨在通过设计和实现FIR滤波器,探索其在信号处理中的应用。

一、实验目的本实验的主要目的有以下几点:1. 了解FIR滤波器的基本原理和特性;2. 掌握FIR滤波器的设计方法;3. 实现FIR滤波器并对信号进行处理,观察滤波效果。

二、实验原理1. FIR滤波器的原理FIR滤波器是一种非递归滤波器,其输出仅依赖于输入和滤波器的系数。

它的基本原理是将输入信号与滤波器的冲激响应进行卷积运算,得到输出信号。

FIR滤波器的冲激响应是有限长度的,因此称为有限脉冲响应滤波器。

2. FIR滤波器的设计方法FIR滤波器的设计方法有很多种,常用的包括窗函数法、频率采样法和最小二乘法。

在本实验中,我们将使用窗函数法进行FIR滤波器的设计。

具体步骤如下:(1)选择滤波器的阶数和截止频率;(2)选择适当的窗函数,如矩形窗、汉宁窗等;(3)根据选择的窗函数和截止频率,计算滤波器的系数;(4)利用计算得到的系数实现FIR滤波器。

三、实验步骤1. 确定滤波器的阶数和截止频率,以及采样频率;2. 选择合适的窗函数,并计算滤波器的系数;3. 利用计算得到的系数实现FIR滤波器;4. 准备待处理的信号,如音频信号或图像信号;5. 将待处理的信号输入FIR滤波器,观察滤波效果;6. 调整滤波器的参数,如阶数和截止频率,观察滤波效果的变化。

四、实验结果与分析在实验中,我们选择了一个音频信号作为待处理信号,设计了一个10阶的FIR滤波器,截止频率为1kHz,采样频率为8kHz,并使用汉宁窗进行滤波器系数的计算。

经过滤波处理后,观察到音频信号的高频部分被有效地滤除,保留了低频部分,使得音频信号听起来更加柔和。

通过调整滤波器的阶数和截止频率,我们可以进一步调节滤波效果,使得音频信号的音色发生变化。

FIR滤波器的MATLAB设计与实现

FIR滤波器的MATLAB设计与实现

FIR滤波器的MATLAB设计与实现FIR滤波器(Finite Impulse Response Filter)是一种数字滤波器,其特点是其响应仅由有限长度的序列决定。

在MATLAB中,我们可以使用信号处理工具箱中的函数来设计和实现FIR滤波器。

首先,需要明确FIR滤波器的设计目标,包括滤波器类型(低通、高通、带通、带阻)、通带和阻带的频率范围、通带和阻带的增益等。

这些目标将决定滤波器的系数及其顺序。

在MATLAB中,我们可以使用`fir1`函数来设计FIR滤波器。

该函数的使用方式如下:```matlabh = fir1(N, Wn, type);```其中,`N`是滤波器长度,`Wn`是通带边缘频率(0到0.5之间),`type`是滤波器的类型('low'低通、'high'高通、'bandpass'带通、'stop'带阻)。

该函数会返回一个长度为`N+1`的滤波器系数向量`h`。

例如,如果要设计一个采样频率为10kHz的低通滤波器,通带截止频率为2kHz,阻带频率为3kHz,可以使用以下代码:```matlabfc = 2000; % 通带截止频率h = fir1(50, fc/(fs/2), 'low');```上述代码中,`50`表示滤波器的长度。

注意,滤波器的长度越大,滤波器的频率响应越陡峭,但计算成本也更高。

在设计完成后,可以使用`freqz`函数来分析滤波器的频率响应。

例如,可以绘制滤波器的幅度响应和相位响应曲线:```matlabfreqz(h);```除了使用`fir1`函数外,MATLAB还提供了其他函数来设计FIR滤波器,如`fir2`、`firpm`、`firls`等,具体使用方式可以参考MATLAB的文档。

在实际应用中,我们可以将FIR滤波器应用于音频处理、图像处理、信号降噪等方面。

例如,可以使用FIR滤波器对音频信号进行去噪处理,或者对图像进行锐化处理等。

fir滤波器设计实验报告

fir滤波器设计实验报告

fir滤波器设计实验报告一、实验目的本次实验的目的是设计FIR滤波器,从而实现信号的滤波处理。

二、实验原理FIR滤波器是一种数字滤波器,它采用有限长的冲激响应滤波器来实现频率选择性的滤波处理。

在FIR滤波器中,系统的输出只与输入和滤波器的系数有关,不存在反馈环路,因此具有稳定性和线性相位的特性。

FIR滤波器的设计最常采用Window法和最小二乘法。

Window法是指先对理想滤波器的频率特性进行窗函数的处理,再通过离散傅里叶变换来得到滤波器的时域响应。

最小二乘法则是指采用最小二乘法来拟合理想滤波器的频率特性。

本次实验采用的是Window法。

三、实验步骤1.设计滤波器的频率响应特性:根据实际需要设计出需要的滤波器的频率响应特性,通常采用理想滤波器的底通、高通、带通、带阻等特性。

2.选择窗函数:根据设计的滤波器的频率响应特性选择相应的窗函数,常用的窗函数有矩形窗、汉宁窗、汉明窗等。

3.计算滤波器的时域响应:采用离散傅里叶变换将设计的滤波器的频率响应特性转化为时域响应,得到滤波器的冲激响应h(n)。

4.归一化:将得到的滤波器的冲激响应h(n)进行归一化处理,得到单位加权的滤波器系数h(n)。

5.实现滤波器的应用:将得到的滤波器系数h(n)应用于需要滤波的信号中,通过卷积的方式得到滤波后的信号。

四、实验结果以矩形窗为例,设计一阶低通滤波器,截止频率为300Hz,采样频率为8000Hz,得到的滤波器系数为:h(0)=0.0025h(1)=0.0025滤波效果良好,经过滤波后的信号频率响应相对于滤波前有较明显的截止效应。

五、实验总结通过本次实验,我们掌握了FIR滤波器的设计方法,窗函数的选择和离散傅里叶变换的应用,使我们能够更好地处理信号,实现更有效的信号滤波。

在日常工作和学习中,能够更好地应用到FIR滤波器的设计和应用,提高信号处理的精度和效率。

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

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数字滤波器具有良好的滤波效果,可以用于信号处理和通信系统中的滤波需求。

FIR数字滤波器的模型化实现

FIR数字滤波器的模型化实现一、引言数字滤波器是数字信号处理中的重要部分,它通过对数字信号进行滤波处理,可以去除噪声、提高信号质量和提取有用的信息。

FIR数字滤波器是其中的一种,它通过对输入信号的加权求和来实现滤波效果,具有稳定性和易于设计的优点。

本文将介绍FIR数字滤波器的模型化实现方法,包括滤波器的基本原理、设计步骤和模拟实现过程。

二、FIR数字滤波器的基本原理FIR数字滤波器是一种线性时不变系统,其基本原理是通过对输入信号的每个采样点进行加权求和,得到输出信号。

其数学模型可以表示为:y(n) = b0*x(n) + b1*x(n-1) + b2*x(n-2) + … + bM*x(n-M)其中y(n)为输出信号,x(n)为输入信号,b0、b1、b2…bM为滤波器的系数,M为滤波器的阶数。

滤波器的系数决定了滤波器的频率特性,可以根据需要进行设计和调整,以实现不同的滤波效果。

三、FIR数字滤波器的设计步骤1. 确定滤波器的需求在进行FIR数字滤波器的设计之前,首先需要明确滤波器的设计需求,包括滤波器的通带和阻带频率、通带和阻带的衰减要求、滤波器的阶数等。

这些需求将指导后续的滤波器设计。

2. 确定滤波器的类型根据滤波器的需求,可以确定滤波器的类型,如低通滤波器、高通滤波器、带通滤波器或带阻滤波器。

不同的类型对应着不同的频率特性,需要根据具体情况进行选择。

3. 设计滤波器的系数根据滤波器的类型和需求,可以采用不同的设计方法来确定滤波器的系数。

常见的设计方法包括窗函数法、频率采样法、最小均方误差法等。

在确定系数后,可以得到一个完整的FIR数字滤波器。

四、FIR数字滤波器的模拟实现设计好FIR数字滤波器后,可以进行模拟实现,以验证其滤波效果和性能。

通常可以采用Matlab、Python等工具进行模拟实现。

下面以Matlab为例,简要介绍FIR数字滤波器的模拟实现过程。

1. 定义滤波器系数在Matlab中,可以通过给定的系数来定义一个FIR数字滤波器。

基于DSP的FIR数字滤波器的设计与仿真毕业设计论文

基于DSP的FIR数字滤波器的设计与仿真毕业设计论文研究背景数字信号处理在现代通信、音视频处理、图像处理等领域中起着至关重要的作用,数字滤波器是数字信号处理中的重要内容。

其中FIR数字滤波器是一种常用的滤波器,其具有线性相位和稳定性等特点,在数字信号处理中应用广泛。

因此,本毕业设计将以FIR 数字滤波器为研究对象,结合DSP平台,进行数字滤波器的设计与仿真研究。

研究目标本文旨在设计一种基于DSP的FIR数字滤波器,并且研究其性能和仿真效果。

主要目标包括:1. 掌握DSP平台的开发流程和设计方法,包括硬件平台和软件开发技术。

2. 研究FIR数字滤波器的原理和特点,掌握其设计方法和计算技巧。

3. 基于DSP平台设计实现FIR数字滤波器,包括硬件和软件两个方面,满足设计要求。

4. 仿真FIR数字滤波器的性能和效果,验证设计的正确性和可行性。

5. 撰写毕业设计论文,总结设计过程和结果,体现出自己的设计思路和方法。

研究方法本研究采用如下方法:1. 研究DSP平台的开发流程和设计方法,包括使用硬件平台和软件开发技术。

2. 研究FIR数字滤波器的原理和特点,掌握其设计方法和计算技巧。

3. 基于DSP平台设计实现FIR数字滤波器,采用Verilog语言描述硬件电路,C语言编写软件程序。

4. 利用模拟工具对FIR数字滤波器进行仿真,测试性能和效果。

5. 撰写毕业设计论文,总结设计过程和结果,体现出自己的设计思路和方法。

预期结果本研究预期可以达到如下结果:1. 掌握DSP平台的开发流程和设计方法,能够应用于数字信号处理和嵌入式系统开发等领域。

2. 研究FIR数字滤波器的原理和特点,掌握其设计方法和计算技巧,能够进行数字信号处理相关工作。

3. 基于DSP平台设计实现FIR数字滤波器,满足设计要求,具有较好的性能和稳定性。

4. 仿真FIR数字滤波器的性能和效果,能够验证设计的正确性和可行性。

5. 撰写毕业设计论文,总结设计过程和结果,体现出自己的设计思路和方法,具有较好的表达和撰写能力。

FIR数字滤波器

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

(2)学会调用MA TLAB 函数设计与实现FIR 滤波器。

二.FIR 数字滤波器的设计思想Matlab 信号处理工具箱为FIR 数字滤波器的设计提供了两种方法———窗函数法和等波纹最佳一致逼近法。

下面就窗函数法简要说明其设计思想。

窗口设计法是从时域出发,将理想滤波器的单位脉冲响应截取一段作为传输函数的系数。

通常情况下,滤波器指标往往在频域给出,算出的理想单位脉冲响应一般是非因果、无限长、物理上不可实现的,需先截短再右移使之成为有限长因果序列,只要截取的长度和方法合理,总能满足频域指标要求。

截短就是加窗,矩形窗最简单,在频域属最小平方逼近,但峰肩和波纹不太理想。

一般希望窗函数的频谱主瓣尽可能地窄,以获得较陡的过渡带,同时能量又要尽量集中在主瓣,以减小峰肩和波纹,进而增加阻带衰减。

实际工程中常用窗的特性及MATLAB 函数比较如表1所示。

表1 常用窗函数性能比较窗类型 最小阻带衰减主瓣宽度 精确过渡带宽 窗函数 矩形窗 21dB 4π/M 1.8π/M boxcar 三角窗 25dB 8π/M 6.1π/M bartlett 汉宁窗 44dB 8π/M 6.2π/M hanning 哈明窗 53dB 8π/M 6.6π/M hamming 布莱克曼窗74dB12π/M11π/Mblackman 取凯塞窗时用kaiserord 函数来得到长度M 和βkaiser利用窗口设计法设计FIR 数字滤波器的过程:)()()()()(ωωj DTFT n w d IDTFT j d eH n h n h eH −−→−−−→−−−→−⨯具体操作步骤如下:1、对设计指标进行归一化处理。

数字滤波器传输函数只与频域的相对值有关,故在设计时可先将滤波器设计指标对采样频率进行归一化处理,归一化公式为:2、根据阻带衰减要求和过渡带宽,由表1选择窗函数的类型并估计窗口长度M ,此时滤波器的阶数为M-1(注意窗口长度与滤波器类型的关系)。

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

© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.netFIR数字滤波器的设计与实现张建伟,展雪梅(中国电子科技集团公司第五十四研究所,河北石家庄050081)

摘 要 在数字信号处理中,数字滤波器是一种被广泛使用的信号处理部件。分析了FIR(有限冲激响应)数字滤波器的结构特征,得到了满足系统要求的数字滤波器设计方法,结合实际工程所要求的数字滤波器指标,利用MATLAB对FIR数字滤波器进行了设计和仿真,并根据FIR数字滤波器输出的幅频特性和相频特性图对滤波器的参数进行调整,从而得到满足性能要求的最佳数字滤波器参数。采用DSP芯片实现所设计的FIR数字滤波器。关键词 信号处理;数字滤波器;MATLAB;DSP

中图分类号 TN713+17 文献标识码 A 文章编号 1003-3106(2010)06-0054-03

DesignandImplementationofFIRDigitalFilterZHANGJian2wei,ZHANXue2mei(The54thResearchInstituteofCETC,ShijiazhuangHebei050081,China)Abstract Indigitalsignalprocessing,thedigitalfilterisawidelyusedsignalprocessingcomponent.Inthispaper,wefirstlyanalyzethestructuralfeatureofFIR(FiniteImpulseResponse)digitalfilterandobtainthefilterdesignmethodwhichcanmeetthesystemrequirements.AndthenweusetheMATLABtoolssoftwaretodesignandsimulatetheFIRdigitalfilterintermsofthedigitalfilterspecificationsrequiredbyengineering.Inordertoobtainthebestfilterparameters,wecanadjustthefilterparametersaccordingtotheamplitude2frequencyandphase2frequencycharacteristicoutputbyfilter.Finally,thedesignedFIRdigitalfilterisimplementedbyusingDSPchip.Keywords signalprocessing;digitalfilter;MATLAB;DSP

收稿日期:2010203216

0 引言随着信息时代和数字世界的到来,数字信号处理得到了快速发展,并已广泛应用于语音、图像、自动控制、航空、航天、医疗和家用电器等众多领域。而在数字信号处理领域中,数字滤波器又占据了十分重要的位置,利用所需信号和其他信号在频谱上的差别,通过数字滤波器可获得滤除杂波、保持原有信号不变的效果。由于数字滤波器所处理的信号为离散信号,可以用差分方程对其进行描述,用离散变换的方法来分析、处理信号,这样既有利于数学分析,又可清楚地描述出所设计滤波器的形式。

1 FIR数字滤波器结构特征与设计

111 FIR数字滤波器结构特征FIR数字滤波器的冲激响应只能延续一定的时间,N阶因果有限冲激响应滤波器的差分方程表达式为:

y(k)=∑Mk=0h(i)x(k-i)。

其卷积和是一个有限和,可以直接计算y(k),所以其涉及的基本操作就是简单的乘和加,其计算仅需要所给出的初始样本值及所要求的相关样本值。通过精确设计,有限冲激响应滤波器在整个频率范围内均能提供精确的线性相位,由于系统的单位脉冲序列为有限长序列,当输入有限时,输出也必然为有限,这样其稳定性总可以独立于滤波器系数之外。因此,在很多情况下,有限冲激响应滤波器成为首选,只要确定能满足要求的转移序列或者脉冲响应的常数,就可以准确地设计出满足要求的FIR

数字滤波器。通常所采用的设计方法主要有窗函数、频率采样法和等波纹最佳逼近法等,其中窗函数法是从时域进行设计的,其算法简单、物理意义清晰,因此得到了较为广泛的应用。

112 FIR数字滤波器设计1.2.1 FIR数字滤波器设计步骤(1)选择参数

在大多数应用中,需要设计的FIR数字滤波器

专题技术与工程应用54

2010RadioEngineeringVo1140No16© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net

的幅度或者相位(延时)响应是确定的。在某些情况下,则可能会指定滤波器的单位抽样响应或者阶跃响应。在实际应用中,关键的问题是用一个可实现的传输函数去逼近给定滤波器幅度响应指标,因此设计一个FIR数字滤波器之前,应首先根据实际需要确定所设计的FIR数字滤波器的技术参数。在频域中,参数的形式一般是给出幅度和相位响应。幅度参数以绝对参数或者相对参数来给出。绝对参数提供了对幅度响应函数的要求。相对参数以所要求分贝值的形式给出。在工程应用中,多给出相对参数指标。对于相位响应参数形式,通常指的是系统在通频带中有线性相位。而运用线性相位响应进行滤波器设计具有如下优点:①只采用实数算法,不涉及复数运算,运算相对简单;②延迟数量固定,不存在延迟失真;③计算量小,对于长度为N的滤波器(阶数为N-1),计算量仅为N/2数量级。(2)逼近确定了设计要求的技术参数后,建立一个理想的FIR数字滤波器模型。然后,利用数字滤波器的设计方法,设计出一个实际数字滤波器模型来逼近给定的目标,从而得到所设计的FIR数字滤波器。(3)性能分析和计算机仿真通过以上两步得到的FIR数字滤波器为冲激响应描述的滤波器。根据这个冲激响应就可以分析FIR数字滤波器的频率特性和相位特性,从而验证设计结果是否满足指标要求;或者利用计算机仿真,对设计的FIR数字滤波器进行分析,并根据仿真结果对FIR数字滤波器进行判断。1.2.2 利用MATLAB设计FIR数字滤波器在MATLAB进行线性相位FIR数字滤波器设计中,多采用窗函数法。窗函数法设计FIR滤波器的基本思想是:根据需要设计的滤波器技术指标,选择合适的滤波器长度N和窗函数ω(n),使通过窗函数的波形具有最窄宽度的主瓣和最小的旁瓣。其核心是根据给定的频率特性,通过加窗的方式来确定有限长单位脉冲响应序列h(n)。在实际应用中,通常采用的窗函数有以下几种,即矩形窗、巴特利(Bartlett)窗、汉宁(Hanning)窗、汉明(Hamming)窗、布莱克曼(Blackman)窗和凯塞(Kaiser)窗。根据工程需要进行实际的FIR数字滤波器设计,要考虑多方面要求,选择合适的窗函数,并结合计算机仿真对所得到FIR数字滤波器进行分析。在实际设计过程中,所要求的FIR数字滤波器指标为:fn=[1350,1825,2825,3500],a=[0,1,0],dev=[0.0005,0.005,0.0005],阻带最小衰减为65dB,采样频率为10kHz,则根据阻带最小衰减来选择凯塞窗,利用MATLAB的求阶函数和FIR数字滤波器的设计函数,其调用的参数格式为:h=fir1(N,

ω

n,

window,′type′),其中,N,ωn分别为FIR数字滤波器

阶数和归一化3dB截至频率,window为窗序列,它是窗序列产生函数的返回结果。此外还利用MATLAB自带的滤波器设计和分析工具进行参数调整与优化。在本设计中,将要求的参数输入MATLAB程序中,可以快速地设计出所需的FIR数字滤波器,再将相应的指标要求代入,最后利用的滤波器分析函数freqz来分析所设计出的FIR数字滤波器的幅频特性和相频特性,并用图形显示函数plot将它们显示出来。所设计的FIR数字滤波器幅频特性和相频特性如图1所示。

图1 FIR数字滤波器特性图2 FIR数字滤波器的实现DSP芯片是一种实时、快速、适于实现各种数字信号处理运算的微处理器。由于它具有丰富的硬件资源、高速的数据处理能力和强大的指令系统,因此在通信、航空、航天、雷达、工业控制及家用电器等领域得到广泛应用。目前DSP芯片的运算分为定点和浮点2种,实际工程应用中常采用定点DSP芯片来实现所设计的FIR数字滤波器,并对其中几个关键问题进行说明,在系统设计中具有重要的参考价值。

211 点数的确定在定点DSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。DSP芯片所给定的字长决定了整型数的最大表示范围,一般为

专题技术与工程应用2010年无线电工程第40卷第6期55

 © 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net

16位或24位。字长越长,所能表示的数的范围越大,精度也越高。在滤波器的实现过程中,由于得到的数值可能是整数,也可能是小数或混合小数;DSP在执行算术运算指令时,并不确定所要处理的数据是整数还是小数,因此,在编程时必须指定一个数的小数点处于哪一位,这就是点数的确定。在使用定点DSP芯片时,Q值的选择是一个关键性问题,从DSP芯片运算的处理过程来看,实际参与运算的都是变量,而作为一个物理参量都有一定的动态范围,只有确定动态范围,才能确定Q值。因此,在程序设计前,首先要找出参与运算的所有变量的变化范围,充分估计运算中可能出现的各种情况,然后再选择采用何种确定点数来保证运算结果正确可靠。这里,通过理论分析法和统计分析法确定变量绝对值最大值|max|,然后根据|max|再确定Q值。212 误差问题由于在使用定点DSP芯片实现FIR数字滤波器时,所有的数据都是定长的,运算也都是定点运算,因而会产生有限字长效应。所产生的误差主要包括:数模转换引起的量化误差、系数量化引起的误差以及运算过程中的舍入误差。尽管在使用定点DSP芯片时,产生误差是不能避免的,但是可以通过一些方法来减小误差。例如可以用2个存储单元来表示一个数,运算时使用双字运算;可以根据需要将滤波器系数都用双字表示,也可以只将一半的系数用双字表示,视需要而定;另外,FIR数字滤波器和IIR数字滤波器所引入的量化误差是不一样的。FIR数字滤波器主要采用非递归结构,因而在有限精度的运算中是稳定的;而IIR数字滤波器是递归结构,极点必须在z平面单位圆内才能稳定,这种结构运算中的四舍五入处理有时会引起寄生振荡。除了有限字长效应以外,不同结构引入的误差也有所不同。在实际设计中,要注意实现中的误差问题。在选择不同的结构时,应考虑它们所引入的误差,并用高级语言进行定点仿真,比较不同结构下误差的大小,从而做出合理选择。213 循环寻址DSP芯片中经常用到循环寻址的方法。该寻址方法可以对一块特定存储区实现循环的操作。把循环寻址理解为实现一个滑动窗,新数据引入后将覆盖老的数据,便得该窗中包含了需处理的最新数据。在数字信号处理中的FIR、卷积等运算中,循环寻址具有极其重要的意义。在TI公司的DSP芯片中,循环寻址通过如下方法实现:

相关文档
最新文档