FIR数字滤波器的设计及软件实现
fir滤波器的主要设计方法 -回复
fir滤波器的主要设计方法-回复fir滤波器是一种基本的数字滤波器,主要用于数字信号处理中的滤波操作。
它的设计方法有很多种,包括频率采样法、窗函数法、最优权系数法等。
本文将一步一步回答"[fir滤波器的主要设计方法]",让我们一起来了解一下吧。
一、频率采样法频率采样法是fir滤波器设计的最基本方法之一。
它的主要思想是在频域中对滤波器的频响特性进行采样,然后通过反变换得到滤波器的冲激响应。
这种方法的优点是设计简单,适用于各种滤波器的设计。
1. 确定滤波器的截止频率和通带、阻带的要求。
根据应用的具体需求,确定滤波器的频率范围和滤波特性。
2. 设计理想的滤波器频率响应。
根据频率范围和滤波特性的要求,设计所需的滤波器频率响应。
常见的有低通、高通、带通、带阻等类型。
3. 进行频率采样。
根据滤波器频率响应的要求,在频域中进行一系列均匀或者非均匀的采样点。
4. 反变换得到滤波器的冲激响应。
对采样得到的频率响应进行反傅里叶变换,得到滤波器的冲激响应。
5. 标准化处理。
对得到的冲激响应进行标准化处理,使得滤波器的增益等于1。
6. 实现滤波器。
根据得到的冲激响应,使用差分方程或者卷积的方法实现fir滤波器。
二、窗函数法窗函数法是一种常用的fir滤波器设计方法,它主要是通过在频域中将理想的滤波器乘以一个窗函数来实现滤波器的设计。
1. 确定滤波器的截止频率和通带、阻带的要求,根据具体应用的需求确定滤波器的频率范围和滤波特性。
2. 设计理想的滤波器频率响应。
根据频率范围和滤波特性要求,设计所需的滤波器频率响应。
3. 选择窗函数。
根据滤波器的频率响应和窗函数的性质,选择合适的窗函数。
4. 计算窗函数的系数。
根据选择的窗函数,计算窗函数的系数。
5. 实现滤波器。
将理想滤波器的频率响应与窗函数相乘,得到实际的滤波器频率响应。
然后使用反变换将频率响应转换为滤波器的冲激响应。
6. 标准化处理。
对得到的冲激响应进行标准化处理,使得滤波器的增益等于1。
实验五FIR数字滤波器的设计
实验五FIR数字滤波器的设计FIR数字滤波器(Finite Impulse Response)是一种数字滤波器,它的输出仅由有限数量的输入样本决定。
设计FIR数字滤波器的步骤如下:1.确定滤波器的要求:首先需要明确滤波器的频率响应、截止频率、通带和阻带的幅频响应等要求。
2.选择滤波器类型:根据实际需求选择合适的滤波器类型,如低通滤波器、高通滤波器、带通滤波器或带阻滤波器等。
3.确定滤波器的阶数:根据滤波器类型和要求,确定滤波器的阶数。
通常情况下,滤波器的阶数越高,能够实现更陡峭的频率响应,但会引入更多的计算复杂度。
4.设计滤波器的理想频率响应:根据滤波器的要求和类型,设计滤波器的理想频率响应。
可以使用常用的频率响应设计方法,如窗函数法、最小最大法或线性相位法等。
这些方法可以实现平滑的频率响应或者良好的阻带衰减。
5.确定滤波器的系数:根据设计的理想频率响应,通过反变换或优化算法确定滤波器的系数。
常用的优化算法包括频域方法、时域方法、最小二乘法或最小相位法等。
6.实现滤波器:将所得的滤波器系数转化为滤波器的差分方程形式或直接计算滤波器的频域响应。
7.评估滤波器性能:使用合适的测试信号输入滤波器,并对滤波器的输出进行评估。
可以使用指标,如频率响应曲线、幅度响应误差、相位响应误差或阻带衰减等指标来评估滤波器性能。
8.优化滤波器性能:根据评估结果,进行必要的修改和优化设计,以满足滤波器的要求。
通过以上步骤,可以设计出满足需求的FIR数字滤波器。
需要注意的是,FIR数字滤波器设计的复杂度和性能需要权衡与平衡,以满足实际应用的要求。
数字信号处理实验FIR数字滤波器的设计
数字信号处理实验:FIR数字滤波器的设计1. 引言数字滤波器是数字信号处理的关键技术之一,用于对数字信号进行滤波、降噪、调频等操作。
FIR (Finite Impulse Response) 数字滤波器是一种常见的数字滤波器,具有线性相应和有限的脉冲响应特性。
本实验旨在通过设计一个FIR数字滤波器来了解其基本原理和设计过程。
2. FIR数字滤波器的基本原理FIR数字滤波器通过对输入信号的每一个样本值与滤波器的冲激响应(滤波器的系数)进行线性加权累加,来实现对信号的滤波。
其数学表达式可以表示为:y(n) = b0 * x(n) + b1 * x(n-1) + b2 * x(n-2) + ... + bN * x(n-N)其中,y(n)表示滤波器的输出,x(n)表示滤波器的输入信号,b0~bN表示滤波器的系数。
FIR数字滤波器的脉冲响应为有限长度的序列,故称为有限冲激响应滤波器。
3. FIR数字滤波器的设计步骤FIR数字滤波器的设计主要包括以下几个步骤:步骤1: 确定滤波器的阶数和截止频率滤波器的阶数决定了滤波器的复杂度和性能,而截止频率决定了滤波器的通带和阻带特性。
根据实际需求,确定滤波器的阶数和截止频率。
步骤2: 选择滤波器的窗函数窗函数是FIR滤波器设计中常用的一种方法,可以通过选择不同的窗函数来实现不同的滤波器特性。
常用的窗函数有矩形窗、汉宁窗、汉明窗等。
根据实际需求,选择合适的窗函数。
步骤3: 计算滤波器的系数根据选择的窗函数和滤波器的阶数,使用相应的公式或算法计算滤波器的系数。
常见的计算方法有频率采样法、窗函数法、最小二乘法等。
步骤4: 实现滤波器根据计算得到的滤波器系数,可以使用编程语言或专用软件来实现滤波器。
步骤5: 评估滤波器性能通过输入测试信号,观察滤波器的输出结果,评估滤波器的性能和滤波效果。
常见评估指标有滤波器的幅频响应、相频响应、群延迟等。
4. 实验步骤本实验将以Matlab软件为例,演示FIR数字滤波器的设计步骤。
FIR滤波原理及verilog设计
FIR滤波原理及verilog设计FIR滤波器是一种基于有限长冲激响应(Finite Impulse Response)的数字滤波器,它主要用于对数字信号进行滤波处理,例如降噪、去除杂音和频带限制等。
本文将介绍FIR滤波的原理,并给出一个基于Verilog的FIR滤波器设计。
一、FIR滤波原理:FIR滤波器是一种非递归滤波器,其输出是输入信号的线性组合。
它通过计算输入信号与一组滤波系数之间的加权和来实现滤波。
每一个滤波系数决定了输入信号在输出中所占的权重,当输入信号通过滤波器时,每一个采样点都与滤波系数进行乘法运算,并将结果相加得到输出。
Y(n)=h(0)*X(n)+h(1)*X(n-1)+h(2)*X(n-2)+…+h(N-1)*X(n-N+1)其中,Y(n)为输出信号的当前采样值,X(n)为输入信号的当前采样值,h(i)为滤波器的滤波系数,N为滤波器的阶数。
二、FIR滤波器的设计:1.滤波器的阶数N的选择:2.滤波系数h(i)的计算:滤波系数的计算是根据所需滤波器的频率响应来确定的。
常见的计算方法有窗函数法、频率采样法和最佳化法等。
具体的计算方法可以根据不同的需求进行选择。
三、基于Verilog的FIR滤波器设计:以下是一个基于Verilog的FIR滤波器设计示例,该设计以32阶FIR滤波器为例。
```verilogmodule FIR_filterinput wire clk,input wire reset,input wire signed [15:0] X,output reg signed [15:0] Yparameter N = 32;reg signed [15:0] delay_line [N-1:0];parameter signed [15:0] h [N-1:0] = {32'b0000_0000_0000_0000, /* 系数h0 */32'b0000_0000_0000_0000,/*系数h1*/...32'b0000_0000_0000_0000};/*系数h31*/if(reset) beginY<=0;for(int i=0; i<N; i=i+1) begindelay_line[i] <= 0;endendelse beginY <= (h[0] * X) + (h[1] * delay_line[0]) + ... + (h[N-1] * delay_line[N-2]);for(int i=N-1; i>0; i=i-1) begindelay_line[i] <= delay_line[i-1];enddelay_line[0] <= X;endendendmodule```在上面的Verilog代码中,FIR_filter模块包含了一个clk时钟信号、一个reset复位信号,以及输入信号X和输出信号Y。
FIR数字滤波器设计与软件实现
实验二J FIR 数字滤波器设计与软件实现 一、实验指导1.实验目的掌握用等波纹最佳逼近法设计FIR 数字滤波器的原理和方法。
掌握F1R 滤波器的快速卷积实现原理。
学会调用MATLAB 函数设计与实现FIR 滤波器。
2.实验内容及步骤(1) 认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR 数 字滤波器的原理;(2) 调用信号产生函数xtg 产生具有加性噪声的信号XI,并自动显 示xt 及其频谱,如图1所示;(3) 请设计低通滤波器,从髙频噪声中提取xt 中的单频调幅信号, 要求信号幅频失真小于,将噪声频谱衰减60dBo 先观察xt 的频谱, 确定滤波器指标参数。
(1) 掌握用窗函数法设计FIR 数字滤波器的原理和方法。
(町彳書号力口喋声漩形0 0.05 0.1 OJS 0.2 0.250.3 0.35 0 4 0,45 0.5t/3 图1具有加性噪声的信号x(t)及其频谱如图1O5务°•6(4)根据滤波器指标选择合适的窗函数.计算窗函数的长度N,调用MATLAB函数firl设计一个FIR低通滤波器。
并编写程序,调用MATLAB快速卷积函数fftmt实现对xt的滤波。
绘图显示滤波器的频响特性曲线.滤波器输出信号的幅频特性图和时域波形图。
(4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB函数remezord和remez设计FIR数字滤波器。
并比较两种设计方法设计的滤波器阶数。
提示:①MATLAB函数firl的功能及其调用格式请查阅教材;②采样频率Fs=iOOOHz,釆样周期T=l/Fs;◎根据图1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp二120Hz,阻带截至频率fs=150Hz,换算成数字频率,通带截止频率iyp=2VpT = 0247r,通带最大衰为,阻带截至频率迅=2龙£丁 = 0・3兀,阻带最小衰为60dBo④实验程序框图如图2所示,供读者参考。
实验四FIR数字滤波器设计与软件实现
实验四FIR数字滤波器设计与软件实现
实验目的:
掌握FIR数字滤波器的设计与软件实现方法,了解滤波器的概念与基
本原理。
实验原理:
FIR数字滤波器全称为有限脉冲响应数字滤波器,其特点是具有有限
长度的脉冲响应。
滤波器通过一系列加权系数乘以输入信号的延迟值,并
将这些值相加得到输出信号。
FIR滤波器的频率响应由滤波器系数所决定。
实验步骤:
1.确定所需的滤波器的设计规格,包括截止频率、通带波纹、阻带衰
减等。
2.选择适当的滤波器设计方法,如窗函数、最佳近似法、最小二乘法等。
3.根据所选方法,计算滤波器的系数。
4.在MATLAB环境下,使用滤波器的系数实现滤波器。
5.输入所需滤波的信号,经过滤波器进行滤波处理。
6.分析输出的滤波信号,观察滤波效果是否符合设计要求。
实验要求:
1.完成FIR数字滤波器的设计和软件实现。
2.对比不同设计方法得到的滤波器性能差异。
3.分析滤波结果,判断滤波器是否满足设计要求。
实验器材与软件:
1.个人电脑;
2.MATLAB软件。
实验结果:
根据滤波器设计规格和所选的设计方法,得到一组滤波器系数。
通过
将滤波器系数应用于输入信号,得到输出滤波信号。
根据输出信号的频率
响应、通带波纹、阻带衰减等指标,评估滤波器的性能。
实验注意事项:
1.在选择设计方法时,需要根据滤波器要求和实际情况进行合理选择。
2.在滤波器实现过程中,需要注意滤波器系数的计算和应用。
3.在实验过程中,注意信号的选择和滤波结果的评估方法。
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 (Finite Impulse Response)数字滤波器是一种非递归的滤波器,具有线性相位响应和有限脉冲响应。
本文将探讨FIR数字滤波器的设计与实现,包括滤波器的原理、设计方法和实际应用。
原理FIR数字滤波器通过对输入信号的加权平均来实现滤波效果。
其原理可以简单描述为以下步骤: 1. 输入信号经过一个延迟线组成的信号延迟器。
2. 延迟后的信号与一组权重系数进行相乘。
3. 将相乘的结果进行加和得到输出信号。
FIR滤波器的特点是通过改变权重系数来改变滤波器的频率响应。
不同的权重系数可以实现低通滤波、高通滤波、带通滤波等不同的滤波效果。
设计方法FIR滤波器的设计主要有以下几种方法:窗函数法窗函数法是一种常用简单而直观的设计方法。
该方法通过选择一个窗函数,并将其与理想滤波器的频率响应进行卷积,得到FIR滤波器的频率响应。
常用的窗函数包括矩形窗、汉宁窗、哈密顿窗等。
不同的窗函数具有不同的特性,在设计滤波器时需要根据要求来选择合适的窗函数。
频率抽样法频率抽样法是一种基于频率抽样定理的设计方法。
该方法首先将所需的频率响应通过插值得到一个连续的函数,然后对该函数进行逆傅里叶变换,得到离散的权重系数。
频率抽样法的优点是可以设计出具有较小幅频纹波的滤波器,但需要进行频率上和频率下的补偿处理。
最优化方法最优化方法是一种基于优化理论的设计方法。
该方法通过优化某个性能指标来得到最优的滤波器权重系数。
常用的最优化方法包括Least Mean Square(LMS)法、Least Square(LS)法、Parks-McClellan法等。
这些方法可以根据设计要求,如通带波纹、阻带衰减等来得到最优的滤波器设计。
实现与应用FIR数字滤波器的实现可以通过硬件和软件两种方式。
硬件实现在硬件实现中,可以利用专门的FPGA(Field-Programmable Gate Array)等数字集成电路来实现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数字滤波器的设计指标
fir数字滤波器的设计指标FIR数字滤波器的设计指标主要包括以下几个方面:1. 频率响应:FIR数字滤波器的频率响应是指滤波器对不同频率信号的响应程度。
设计时需要根据应用场景确定频率响应特性,例如低通、高通、带通等。
低通滤波器用于消除高频噪声,高通滤波器用于保留低频信号,带通滤波器则用于限制信号在特定频率范围内的传输。
2. 幅频特性:FIR数字滤波器的幅频特性是指滤波器在不同频率下的幅值衰减情况。
设计时需要根据频率响应特性调整幅频特性,以满足信号处理需求。
例如,在通信系统中,为了消除杂散干扰和多径效应,需要设计具有特定幅频特性的滤波器。
3. 相位特性:FIR数字滤波器的相位特性是指滤波器对信号相位的影响。
设计时需要确保滤波器的相位特性满足系统要求,例如线性相位特性。
线性相位特性意味着滤波器在不同频率下的相位延迟保持恒定,这对于许多通信系统至关重要。
4. 群延迟特性:FIR数字滤波器的群延迟特性是指滤波器对信号群延迟的影响。
群延迟是指信号通过滤波器后,各频率成分的延迟时间。
设计时需要根据应用场景调整群延迟特性,以确保信号处理效果。
例如,在语音处理中,需要降低滤波器的群延迟,以提高语音信号的清晰度。
5. 稳定性:FIR数字滤波器的稳定性是指滤波器在实际应用中不发生自激振荡等不稳定现象。
设计时需要确保滤波器的稳定性,避免产生有害的谐波和振荡。
6. 计算复杂度:FIR数字滤波器的计算复杂度是指滤波器在实现过程中所需的计算资源和时间。
设计时需要权衡滤波器的性能和计算复杂度,以满足实时性要求。
例如,在嵌入式系统中,计算资源有限,需要设计较低计算复杂度的滤波器。
7. 硬件实现:FIR数字滤波器的硬件实现是指滤波器在实际硬件平台上的实现。
设计时需要考虑硬件平台的特性,如处理器速度、内存容量等,以确定合适的滤波器结构和参数。
8. 软件实现:FIR数字滤波器的软件实现是指滤波器在软件平台上的实现。
设计时需要考虑软件平台的特性,如编程语言、算法库等,以确定合适的滤波器设计和实现方法。
fir数字滤波器设计实验报告
fir数字滤波器设计实验报告FIR数字滤波器设计实验报告概述数字滤波器是数字信号处理中的重要组成部分,广泛应用于音频、图像、视频等领域。
其中,FIR数字滤波器是一种常见的数字滤波器,具有线性相位、稳定性好、易于实现等优点。
本实验旨在设计一种基于FIR数字滤波器的信号处理系统,实现对信号的滤波和降噪。
实验步骤1. 信号采集需要采集待处理的信号。
本实验采用的是模拟信号,通过采集卡将其转换为数字信号,存储在计算机中。
2. 滤波器设计接下来,需要设计FIR数字滤波器。
为了实现对信号的降噪,我们选择了低通滤波器。
在设计滤波器时,需要确定滤波器的阶数、截止频率等参数。
本实验中,我们选择了8阶低通滤波器,截止频率为500Hz。
3. 滤波器实现设计好滤波器后,需要将其实现。
在本实验中,我们采用MATLAB 软件实现FIR数字滤波器。
具体实现过程如下:定义滤波器的系数。
根据滤波器设计的公式,计算出系数值。
利用MATLAB中的filter函数对信号进行滤波。
将采集到的信号作为输入,滤波器系数作为参数,调用filter函数进行滤波处理。
处理后的信号即为滤波后的信号。
4. 结果分析需要对处理后的信号进行分析。
我们可以通过MATLAB绘制出处理前后的信号波形图、频谱图,比较它们的差异,以评估滤波器的效果。
结果显示,经过FIR数字滤波器处理后,信号的噪声得到了有效的降低,滤波效果较好。
同时,频谱图也显示出了滤波器的低通特性,截止频率处信号衰减明显。
结论本实验成功设计并实现了基于FIR数字滤波器的信号处理系统。
通过采集、滤波、分析等步骤,我们实现了对模拟信号的降噪处理。
同时,本实验还验证了FIR数字滤波器的优点,包括线性相位、稳定性好等特点。
在实际应用中,FIR数字滤波器具有广泛的应用前景。
FIR滤波器设计与实现实验报告
实验二:FIR滤波器设计与实现专业班级:12电子信息工程团队成员:顾鹏伟陆遥张春辉一、【实验目的】1 通过实验巩固FIR滤波器的认识和理解。
2 熟练掌握FIR低通滤波器的窗函数设计方法。
3 理解FIR的具体应用。
二、【实验内容】在通信、信息处理以及信号检测等应用领域广泛使用滤波器进行去噪和信号的增强。
FIR滤波器由于可实现线性相位特性以及固有的稳定特征而等到广泛应用,其典型的设计方法是窗函数设计法。
设计流程如下:(1)设定指标:截止频率fc,过渡带宽度△f,阻带衰减A。
(2)求理想低通滤波器(LPF)的时域响应hd(n)。
(3)选择窗函数w(n),确定窗长N。
(4)将hd(n)右移(N-1)/2点并加窗获取线性相位FIR滤波器的单位脉冲响应h(n)。
(5)求FIR的频域响应H(e ),分析是否满足指标。
如不满足,转(3)重新选择,否则继续。
(6)求FIR的系统函数H(z)。
(7)依据差分方程由软件实现FIR滤波器或依据系统函数由硬件实现。
实验要求采用哈明窗(Hamming)设计一个FIR低通滤波器并由软件实现。
哈明窗函数如下:w(n)=0.54-0.46cos(),0≤n≤N-1;设采样频率为fs=10kHz。
实验中,窗长度N和截止频率fc应该都能调节。
具体实验内容如下:(1)设计FIR低通滤波器(FIR_LPF)(书面进行)。
(2)依据差分方程编程实现FIR低通滤波器。
(3)输入信号x(n)=3.0sin(0.16πn )+cos(0.8πn )到fc=2000Hz,N=65的FIR_LPF,求输出信号y(n),理论计算并画出0≤f≤fs范围输入信号x(n)和输出信号y(n)的幅度谱,标出峰值频率,观察滤波器的实际输出结果,分析其正确性。
(4)输入信号x(n)=1.5sin(0.2πn )-cos(0.4πn )+1.2sin(0.9πn)到fc=1100Hz,N=65的FIR_LPF,求输出信号y(n),理论计算并画出0≤f≤fs范围输入信号x(n)和输出信号y(n)的幅度谱,标出峰值频率,观察滤波器的实际输出结果,分析其正确性。
dsp实验报告 fir实验报告
dsp实验报告 fir实验报告DSP实验报告:FIR实验报告引言:数字信号处理(Digital Signal Processing,DSP)是一门研究如何对数字信号进行处理和处理的学科。
其中,滤波器是数字信号处理中最常用的技术之一。
本实验报告旨在介绍FIR(Finite Impulse Response)滤波器的原理、设计和实现过程,并通过实验验证其性能。
一、FIR滤波器的原理FIR滤波器是一种线性时不变系统,其输出信号仅由输入信号的有限个历史样本决定。
其基本原理是将输入信号与滤波器的冲激响应进行卷积运算,以实现对输入信号的滤波处理。
二、FIR滤波器的设计方法1. 理想低通滤波器设计方法理想低通滤波器的频率响应在截止频率之前为1,在截止频率之后为0。
通过对理想低通滤波器的频率响应进行采样和离散化,可以得到FIR滤波器的系数序列。
2. 窗函数法设计FIR滤波器窗函数法是一种常用的FIR滤波器设计方法。
其基本思想是将理想低通滤波器的频率响应与一个窗函数进行乘积,从而得到实际可实现的FIR滤波器的系数序列。
常用的窗函数有矩形窗、汉宁窗、汉明窗等。
三、FIR滤波器的实现FIR滤波器可以通过直接形式和间接形式两种方式实现。
直接形式是按照滤波器的差分方程进行计算,而间接形式则是利用FFT(Fast Fourier Transform)算法将滤波器的系数序列转换为频域进行计算。
四、FIR滤波器的性能评估1. 幅频响应幅频响应是评估FIR滤波器性能的重要指标之一。
通过绘制滤波器的幅频响应曲线,可以直观地观察滤波器在不同频率下的衰减情况。
2. 相频响应相频响应是评估FIR滤波器性能的另一个重要指标。
相频响应描述了滤波器对输入信号的相位延迟情况,对于某些应用场景,相频响应的稳定性和线性性非常重要。
3. 稳态误差稳态误差是指FIR滤波器在达到稳态后输出信号与理想输出信号之间的差异。
通过对滤波器的输入信号进行模拟或实际测试,可以计算出滤波器的稳态误差,并评估其性能。
FIR滤波器的设计
FIR滤波器的设计FIR (Finite Impulse Response) 滤波器是数字信号处理中常用的一种滤波器。
与 IIR (Infinite Impulse Response) 滤波器相比,FIR 滤波器具有线性相位响应和稳定性的特点。
在设计 FIR 滤波器时,我们通常需要确定滤波器的阶数、通带和阻带的频率范围、滤波器的类型等参数。
下面将介绍 FIR 滤波器的设计过程。
首先,我们需要确定FIR滤波器的阶数。
阶数决定了滤波器的复杂度和性能。
一般来说,较高阶数的滤波器可以提供更好的频率响应,但会增加计算复杂度。
阶数的选择需要根据实际需求进行权衡。
接下来,我们需要确定滤波器的通带和阻带的频率范围。
通带频率范围是指信号在经过滤波器后保持不变的频率范围,而阻带频率范围是指信号在经过滤波器后被衰减的频率范围。
根据不同的应用需求,我们可以选择不同的频率范围。
然后,我们需要选择滤波器的类型。
FIR滤波器有很多不同的类型,包括低通、高通、带通和带阻等。
选择不同的滤波器类型取决于所需的滤波器特性。
例如,如果我们想要保留信号中低频成分,可以选择低通滤波器;如果我们想要去除信号中的低频成分,可以选择高通滤波器。
在确定了滤波器的阶数、频率范围和类型后,我们可以开始进行滤波器的设计。
FIR滤波器设计的目标是在给定的频率范围内最小化滤波器的误差。
有很多方法可以用来设计FIR滤波器,包括窗函数法、频率抽样法和最小二乘法等。
下面以窗函数法为例进行介绍。
窗函数法是一种常用的FIR滤波器设计方法。
它基于窗函数的特性,在频域上对输入信号进行加权,从而实现滤波的目的。
设计过程中,我们需要选择一个合适的窗函数,并确定其对应的参数。
在选择窗函数时,我们需要考虑窗函数的主瓣宽度和辅瓣衰减。
主瓣宽度决定了滤波器的频率响应的过渡带宽度,辅瓣衰减决定了滤波器在阻带中的衰减程度。
常用的窗函数有矩形窗、汉宁窗、汉明窗和布莱克曼窗等。
确定了窗函数后,我们可以计算滤波器的冲激响应。
FIR数字滤波器的设计
FIR数字滤波器的设计
FIR(有限冲激响应)数字滤波器的设计主要包括以下几个步骤:
1.确定滤波器的要求:根据应用需求确定滤波器的类型(如低通、高通、带通、带阻等)和滤波器的频率特性要求(如截止频率、通带波动、阻带衰减等)。
2.确定滤波器的长度:根据频率特性要求和滤波器类型,确定滤波器的长度(即冲激响应的系数个数)。
长度通常根据滤波器的截止频率和阻带宽度来决定。
3.设计滤波器的冲激响应:使用一种滤波器设计方法(如窗函数法、频率抽样法、最小二乘法等),根据滤波器的长度和频率特性要求,设计出滤波器的冲激响应。
4.计算滤波器的频率响应:将设计得到的滤波器的冲激响应进行傅里叶变换,得到滤波器的频率响应。
可以使用FFT算法来进行计算。
5.优化滤波器的性能:根据频率响应的实际情况,对滤波器的冲激响应进行优化,可以通过调整滤波器的系数或使用优化算法来实现。
6.实现滤波器:将设计得到的滤波器的冲激响应转化为差分方程或直接形式,并使用数字信号处理器(DSP)或其他硬件进行实现。
7.验证滤波器的性能:使用测试信号输入滤波器,检查输出信号是否满足设计要求,并对滤波器的性能进行验证和调整。
以上是FIR数字滤波器的一般设计步骤,具体的设计方法和步骤可能因应用需求和设计工具的不同而有所差异。
在实际设计中,还需要考虑滤波器的实时性、计算复杂度和存储资源等方面的限制。
FIR数字滤波器设计与软件实现
实验四:FIR数字滤波器设计与软件实现1.实验目的(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。
(2)学会调用MA TLAB函数设计FIR滤波器。
(3)通过观察频谱的相位特性曲线,建立线性相位概念。
(4)掌握FIR数字滤波器的MATLAB软件实现方法。
2.实验原理设计FIR数字滤波器一般采用直接法,如窗函数法和频率采样法。
本实验采用窗函数法设计FIR滤波器,要求能根据滤波需求确定滤波器指标参数,并按设计原理编程设计符合要求的FIR数字滤波器。
本实验软件实现是调用MATLAB提供的fftfilt函数对给定输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。
3. 实验内容及步骤(1) FIR数字滤波器设计根据窗函数法设计FIR数字滤波器的原理和步骤,设计一个线性数字低通滤波器,要求通带临界频率fp=120Hz,阻带临界频率fs=150Hz,通带内的最大衰减Ap=0.1dB,阻带内的最小衰减As=60db,采样频率Fs=1000Hz。
观察设计的滤波器频率特性曲线,建立线性相位概念。
(2) FIR数字滤波器软件实现利用第(1)步设计的数字滤波器,调用fftfilt函数对信号进行滤波,观察滤波前后的信号波形变化。
4.思考题(1)简述窗函数法设计FIR数字滤波器的设计步骤。
(2)简述信号在传输过程中失真的可能原因。
5.实验报告要求(1)结合实验内容打印程序清单和信号波形。
(2)对实验结果进行简单分析和解释。
(3)简要回答思考题。
常用窗函数技术参数及性能比较一览表窗类型最小阻带衰减主瓣宽度精确过渡带宽窗函数矩形窗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 布莱克曼窗74dB 12π/M 11π/M blackman 取凯塞窗时用kaiserord函数来得到长度M和βkaiser附录:(1)FIR数字滤波器设计clear;clc;close all;format compactfp=120, Ap=0.1, fs=150, As=60 ,Fs=1000,wp=2*pi*fp/Fs,ws=2*pi*fs/Fs ,Bt=ws-wp; M=ceil(11*pi/Bt);if mod(M,2)==0; N=M+1, else N=M, end;wc=(wp+ws)/2,n=0:N-1;r=(N-1)/2;hdn=sin(wc*((n-r)+eps))./(pi*((n-r)+eps));win=blackman(N); hn=hdn.*win',figure(1);freqz(hn,1,512,Fs);grid on;图(一)FIR数字滤波器(2)FIR数字滤波器软件实现n=[0:190];xn=sin((2*pi*120/1000)*n)+sin((2*pi*150/1000)*n);yn=fftfilt(hn,xn);figure(2)subplot(2,1,1);plot(xn);title('滤波前信号') ;subplot(2,1,2);plot(yn);title('滤波后信号');图(2)FIR数字滤波器软件实现思考题:(1) 用升余弦窗设计一线性相位低通FIR数字滤波器,并读入窗口长度。
FIR滤波器的设计
FIR滤波器的设计FIR(Finite Impulse Response)滤波器是一种常见的数字滤波器,其特点是具有有限的脉冲响应。
在设计FIR滤波器时,主要需要确定滤波器的阶数、滤波器的频率响应以及滤波器的系数。
滤波器的阶数是指滤波器中的延迟元素的数量。
阶数越高,滤波器的频率响应越陡峭,但也会引起计算复杂度的增加。
一般情况下,我们可以根据滤波器的需求选择合适的阶数。
滤波器的频率响应决定了滤波器在频域中的增益和衰减情况。
通常,我们会通过设计一个理想的频率响应曲线,然后利用窗函数将其转化为离散的频率响应。
设计FIR滤波器的一个常用方法是使用窗函数法。
窗函数可以将滤波器的理想频率响应曲线转换为离散的频率响应。
常见的窗函数有矩形窗、汉宁窗、汉明窗、布莱克曼窗等。
以设计低通滤波器为例,我们可以按照以下步骤进行FIR滤波器的设计:1.确定滤波器的阶数,即延迟元素的数量。
2.设计一个理想的频率响应曲线,包括通带的增益和截至频率,以及阻带的衰减和截止频率。
3.将理想的频率响应曲线通过其中一种窗函数进行离散化。
4.将离散化后的频率响应转换为时域的单位脉冲响应。
5.根据单位脉冲响应计算滤波器的系数。
具体的设计步骤如下:1.确定滤波器的阶数。
根据滤波器的要求和计算能力,选择一个合适的阶数。
2.设计理想的频率响应曲线。
根据滤波器的需求,确定通带和阻带的要求,以及对应的截至频率和衰减。
3.利用窗函数将理想频率响应曲线离散化。
根据选择的窗函数,进行相应的计算,得到离散化后的频率响应。
4.将离散化后的频率响应进行反变换,得到时域的单位脉冲响应。
5.根据单位脉冲响应计算滤波器的系数。
将单位脉冲响应传递函数中的z替换为频率响应值,然后进行反变换,得到滤波器的系数。
设计FIR滤波器需要根据具体的需求和设计要求进行合理的选择和计算。
通过选择合适的阶数、频率响应和窗函数,可以设计出满足需求的FIR滤波器。
FIR滤波器设计与实现实验报告
FIR滤波器设计与实现实验报告目录一、实验概述 (2)1. 实验目的 (3)2. 实验原理 (3)3. 实验设备与工具 (4)4. 实验内容与步骤 (6)5. 实验数据与结果分析 (7)二、FIR滤波器设计 (8)1. 滤波器设计基本概念 (9)2. 系数求解方法 (10)频谱采样法 (11)最小均方误差法 (14)3. 常用FIR滤波器类型 (15)线性相位FIR滤波器 (16)非线性相位FIR滤波器 (18)4. 设计实例与比较 (19)三、FIR滤波器实现 (20)1. 硬件实现基础 (21)2. 软件实现方法 (22)3. 实现过程中的关键问题与解决方案 (23)4. 滤波器性能评估指标 (25)四、实验结果与分析 (26)1. 实验数据记录与处理 (27)2. 滤波器性能测试与分析 (29)通带波动 (30)虚部衰减 (31)相位失真 (32)3. 与其他设计方案的对比与讨论 (33)五、总结与展望 (34)1. 实验成果总结 (35)2. 存在问题与不足 (36)3. 未来发展方向与改进措施 (37)一、实验概述本次实验的主要目标是设计并实现一个有限脉冲响应(Finite Impulse Response,简称FIR)滤波器。
FIR滤波器是数字信号处理中常用的一种滤波器,具有线性相位响应和易于设计的优点。
本次实验旨在通过实践加深我们对FIR滤波器设计和实现过程的理解,提升我们的实践能力和问题解决能力。
在实验过程中,我们将首先理解FIR滤波器的基本原理和特性,包括其工作原理、设计方法和性能指标。
我们将选择合适的实验工具和环境,例如MATLAB或Python等编程环境,进行FIR滤波器的设计。
我们还将关注滤波器的实现过程,包括代码编写、性能测试和结果分析等步骤。
通过这次实验,我们期望能够深入理解FIR滤波器的设计和实现过程,并能够将理论知识应用到实践中,提高我们的工程实践能力。
本次实验报告将按照“设计原理设计方法实现过程实验结果与分析”的逻辑结构进行组织,让读者能够清晰地了解我们实验的全过程,以及我们从中获得的收获和启示。
fir数字滤波器的设计与实现
fir数字滤波器的设计与实现一、引言数字滤波器是数字信号处理中的重要组成部分,它可以用于去除信号中的噪声,平滑信号等。
其中,fir数字滤波器是一种常见的数字滤波器。
本文将介绍fir数字滤波器的设计与实现。
二、fir数字滤波器概述fir数字滤波器是一种线性相位、有限脉冲响应(FIR)的数字滤波器。
它通过一系列加权系数对输入信号进行卷积运算,从而实现对信号的过滤。
fir数字滤波器具有以下特点:1. 稳定性好:由于其有限脉冲响应特性,使得其稳定性优于IIR(无限脉冲响应)数字滤波器。
2. 线性相位:fir数字滤波器在频域上具有线性相位特性,因此可以保持输入信号中各频率分量之间的相对时延不变。
3. 设计灵活:fir数字滤波器可以通过改变加权系数来实现不同的频率响应和截止频率。
三、fir数字滤波器设计步骤1. 确定需求:首先需要确定所需的频率响应和截止频率等参数。
2. 选择窗函数:根据需求选择合适的窗函数,常用的有矩形窗、汉明窗、布莱克曼窗等。
3. 计算滤波器系数:利用所选窗函数计算出fir数字滤波器的加权系数。
常见的计算方法有频率采样法、最小二乘法等。
4. 实现滤波器:将计算得到的加权系数应用于fir数字滤波器中,实现对信号的过滤。
四、fir数字滤波器实现方法1. 直接形式:直接将计算得到的加权系数应用于fir数字滤波器中,实现对信号的过滤。
该方法简单易懂,但是需要大量运算,不适合处理较长的信号序列。
2. 快速卷积形式:利用快速傅里叶变换(FFT)来加速卷积运算。
该方法可以大大减少计算量,适合处理较长的信号序列。
五、fir数字滤波器应用案例1. 语音处理:fir数字滤波器可以用于去除语音信号中的噪声和杂音,提高语音质量。
2. 图像处理:fir数字滤波器可以用于图像去噪和平滑处理,提高图像质量。
3. 生物医学信号处理:fir数字滤波器可以用于生物医学信号的滤波和特征提取,如心电信号、脑电信号等。
六、总结fir数字滤波器是一种常见的数字滤波器,具有稳定性好、线性相位和设计灵活等优点。
fir、iir数字滤波器的设计与实现
一、概述数字滤波器是数字信号处理中的重要部分,它可以对数字信号进行滤波、去噪、平滑等处理,广泛应用于通信、音频处理、图像处理等领域。
在数字滤波器中,fir和iir是两种常见的结构,它们各自具有不同的特点和适用场景。
本文将围绕fir和iir数字滤波器的设计与实现展开讨论,介绍它们的原理、设计方法和实际应用。
二、fir数字滤波器的设计与实现1. fir数字滤波器的原理fir数字滤波器是一种有限冲激响应滤波器,它的输出仅依赖于输入信号的有限个先前值。
fir数字滤波器的传递函数可以表示为:H(z) = b0 + b1 * z^(-1) + b2 * z^(-2) + ... + bn * z^(-n)其中,b0、b1、...、bn为滤波器的系数,n为滤波器的阶数。
fir数字滤波器的特点是稳定性好、易于设计、相位线性等。
2. fir数字滤波器的设计方法fir数字滤波器的设计通常采用频率采样法、窗函数法、最小均方误差法等。
其中,频率采样法是一种常用的设计方法,它可以通过指定频率响应的要求来确定fir数字滤波器的系数,然后利用离散傅立叶变换将频率响应转换为时域的脉冲响应。
3. fir数字滤波器的实现fir数字滤波器的实现通常采用直接型、级联型、并行型等结构。
其中,直接型fir数字滤波器是最简单的实现方式,它直接利用fir数字滤波器的时域脉冲响应进行卷积计算。
另外,还可以利用快速傅立叶变换等算法加速fir数字滤波器的实现。
三、iir数字滤波器的设计与实现1. iir数字滤波器的原理iir数字滤波器是一种无限冲激响应滤波器,它的输出不仅依赖于输入信号的有限个先前值,还依赖于输出信号的先前值。
iir数字滤波器的传递函数可以表示为:H(z) = (b0 + b1 * z^(-1) + b2 * z^(-2) + ... + bn * z^(-n)) / (1 +a1 * z^(-1) + a2 * z^(-2) + ... + am * z^(-m))其中,b0、b1、...、bn为前向系数,a1、a2、...、am为反馈系数,n为前向路径的阶数,m为反馈路径的阶数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0
滤 波 后 的 y 2(t)的 波 形
y 2(t) y 2(t)
0.5
-0.5
0
-0.5 -1 -1
0
0
0.05
0
0.05
0.25 0.3 0.35 0.4 t/s 0.1 0.25 0.3 0.4 等 波 纹 0.15 逼等波纹输出滤波(图 近 法0.2 低通滤 波器的 损 耗0.35 函数曲 线 5 )
(b)信 号 加 噪 声 的 频 谱 1
幅度
0.5
0
0
50
100
150
200
250 f/Hz
300
350
400
450
500
加噪声频谱(图 2)
窗函数输出波形:
1
1 0.5
y1(t) y1(t)
滤 波 后 的 y(t)的 波 形
滤 波 后 的 y(t)的 波 形
0.5 0 0 -0.5 -0.5 -1 -1
0.1
0.15
0.2
0.45
0.5
t/s 等波纹逼近法低通滤波器的损耗函数曲线
0.45
0.5
度 ( dB) 幅 度 (幅 dB )
-20 0 -40
-20
-60
-40
-80
-60 0 -80 0
0.1
0.2
0.3
0.4
0.5 ω/π
0.6
0.7
0.8
0.9
1
0.1
0.2
Hale Waihona Puke 0.30.40.5 ω/π
0.6
x(t)
0 -5 -10 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
(b)信 号 加 噪 声 的 频 谱 滤波输出波形(图 1) 1
幅度
2
0.5
x(
0 -5 -10 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
FIR 数字滤波器的设计及软件实现
一、实验目的
(1)掌握用窗函数法设计 FIR 数字滤波器的原理和方法; (2)掌握用等波纹最佳逼近法设计 FIR 数字滤波器的原理和方法; (3)掌握 FIR 滤波器的快速卷积实现原理; (4)学会调用 MATLAB 函数设计与实现 FIR 滤波器。
二、实验内容及步骤
五、实验结果
1.采样指标:采样频率 Fs=1000Hz,采样周期 T=1/Fs; 2.滤波器指标参数:通带截止频率 fp=120Hz,阻带截至频率 fs=150Hz,换 算成数字频率,通带截止频率,通带最大衰为 0.1dB,阻带截至频率 ,阻带最 小衰为 60dB。 原信号的输出:
(a)信 号 加 噪 声 波 形 10 5
0.45
0.45
0.5
0.5
0
-50
-50
-100
-100 0 0
0.1
0.1
0.2
0.2
0.3
0.3
0.4
0.4
0.5 ω/π 0.5 ω/π
0.6
0.6
0.7
0.7
0.8
0.8
0.9
0.9
1
1
窗函数输出损耗(图 4)
等波纹最佳逼近法输出波形:
3
1 0.5
滤 波 后 的 y 2(t)的 波 形
1
三、实验程序框图
Fs=1000,T=1/Fs
xt=xtg 产生信号 xt,并显示 xt 及其频谱
用窗函数法或等波纹最佳逼近法设计 FIR 滤波器 hn
对信号 xt 滤波:yt=fftfilt(hn,xt)
1.计算并绘图显示滤波器损耗函数 2.绘图显示滤波器输出信号 yt 及其频谱
结束
1
四、思考题
1) 用窗函数法设计线性相位低通滤波器的设计步骤教材中有详细的介绍. 答:(1)根据对阻带衰减及过度带的指标要求,选择窗函数的类型 w(n)和 估计窗口长度 N; (2)构造希望逼近的频率响应函数 Hd(ejw); (3)计算 hd(n); (4)加窗好 h(n)=hd(n)w(n); (5)求实际滤波器的频响; (6)判断是否达到要求,若未达到要求,另选窗函数,改变窗长度,重复 (3)(4)(6); (7)若达到要求由 h(n)画出实现网络结构图; 2) 希望逼近的理想带通滤波器的截止频率 分别为: 答: wcl wsl w pl , wcu wsu w pu 2 2 3) 解释为什么对同样的技术指标,用等波纹最佳逼近法设计的滤波器阶数低? ①用窗函数法设计的滤波器,如果在阻带截止频率附近刚好满足,则离开阻 带截止频率越远,阻带衰减富裕量越大,即存在资源浪费; ② 几种常用的典型窗函数的通带最大衰减和阻带最小衰减固定,且差别较 大, 又不能分别控制。所以设计的滤波器的通带最大衰减和阻带最小衰减通常都 存在较大富裕。如本实验所选的 blackman 窗函数,其阻带最小衰减为 74dB,而 指标仅为 60dB; ③ 用等波纹最佳逼近法设计的滤波器,其通带和阻带均为等波纹特性,且 通带最大衰减和阻带最小衰减可以分别控制,所以其指标均匀分布,没有资源浪 费,所以期阶数低得多
4
附录:
% FIR 数字滤波器设计及软件实现 clear all; %==调用 xtg 产生信号 xt, xt 长度 N=1000,并显示 xt 及其频谱,========= N=1000;xt=xtg;Fs=1000; fp=120; fs=150;Rp=0.1;As=60; % 输入给定指标 % (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 滤波 %以下为用窗函数法设计法的绘图部分(滤波器损耗函数,滤波器输出信号波形) figure(2); t=0:0.001:0.999;%绘制滤波后的信号时域波形图 subplot(2,1,1); plot(t,ywt); grid; xlabel('t/s');ylabel('y1(t)'); title('滤波后的 y(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]); %(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 函数进行设计 y2t=fftfilt(hn,xt,N);%调用函数 fftfilt 对 xt 滤波 figure(3); t=0:0.001:0.999;%绘制滤波后的信号时域波形图 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]);
6
5
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]); %子程序 %信号产生程序 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; mt=cos(2*pi*f0*t); ct=cos(2*pi*fc*t); xt=mt.*ct; nt=2*rand(1,N)-1; fp=150;fs=200;Rp=0.1;As=70; fb=[fp,fs];m=[0,1]; dev=[10^(-As/20),(10^Rp/20-1)/10^(Rp/20)+1]; [n,fo,mo,W]=remezord(fb,m,dev,Fs); hn=remez(n,fo,mo,W); yt=filter(hn,1,10*nt); xt=xt+yt; fst=fft(xt,N); k=0:N-1;f=k/Tp; figure(1) subplot(2,1,1);plot(t,xt); grid; title('t/s');ylabel('x(t)'); axis([0,Tp/5,min(xt),max(xt)]); title('(a)信号加噪声波形') subplot(2,1,2);plot(f,abs(fst)/max(abs(fst))); grid;title('(b)信号加噪声的频谱') axis([0,Fs/2,0,1.2]); xlabel('f/Hz');ylabel('幅度')