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数字滤波器设计与软件实现12通信3班崔文磊 2012413023211.实验目的(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。

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

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

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

2.实验内容及步骤(1)认真复习第7章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理;(2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图10.5.1所示。

图10.5.1 具有加性噪声的信号xt(即x(t))及其频谱图(3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1 dB,将噪声频谱衰减60 dB。

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

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

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

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

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

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

提示:① MATLAB函数fir1和fftfilt的功能及其调用格式请查阅本书7.2.3节和3.4.1节;②采样频率Fs=1000 Hz,采样周期T=1/Fs;③根据图10.5.1(b)和实验要求,可选择滤波器指标参数:通带截止频率f p=120 Hz,阻带截止频率f s=150 Hz,换算成数字频率,通带截止频率ωp=2πf p T=0.24π,通带最大衰为0.1 dB,阻带截至频率ωs=2πf s T=0.3π,阻带最小衰为60 dB。

3. 实验程序框实验程序框图如图10.5.2所示,供读者参考。

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

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

备注:(1)、按照要求独立完成实验内容。

(2)、实验结束后,把电子版实验报告按要求格式改名,并由实验教师批阅记录后;实验室统一刻盘留档。

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

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

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

(4)学会调用MA TLAB函数设计与实现FIR滤波器二、实验原理三、实验内容及步骤(1)画出实验主程序框图。

(2)绘制滤波器损耗函数和滤波器输出信号曲线图(包括程序代码)。

%========================clear all;close all;clc;%调用xtg产生信号xt, xt长度N=1000,并显示xt及其频谱N=1000;xt=xtg(N);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(12*pi/B); %blackman窗的长度Nhn=fir1(Nb-1,wc,blackman(Nb));Hw=abs(fft(hn,1024)); % 求设计的滤波器频率特性ywt=fftfilt(hn,xt,N); %调用函数fftfilt对xt滤波%以下为用窗函数法设计法的绘图部分(滤波器损耗函数,滤波器输出信号波形)%省略figure(2)subplot(2,1,1)M=1024;k=1:M/2+1;f=1:500;plot(f,20*log10(Hw(f)));title('(a) 低通滤波器幅频特性')axis([0,Fs/2,-120,20]);xlabel('f/Hz');ylabel('幅度')subplot(2,1,2)% N=1000;t=[0:N-1]/Fs;Tp=N/Fs;plot(t,ywt);title('(b) 滤除噪声后的信号波形')ylabel('ywt')grid;axis([0,Tp/2,-1,1]);function xt=xtg(N)%xt=xtg(N) 产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1000Hz %载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10Hz.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,频率为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); %滤除随机噪声中低频成分,生成高通噪声ytxt=xt+yt; %噪声加信号fst=fft(xt,N);k=0:N-1;f=k/Tp;subplot(2,1,1);plot(t,xt);grid;xlabel('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('幅度')四、总结。

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

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

FIR数字滤波器设计与软件实现实验报告222 FIR数字滤波器设计与软件实现实验报告222实验名称:FIR数字滤波器设计与软件实现实验目的:1.了解数字滤波器的工作原理和设计方法。

2.学习使用MATLAB软件进行FIR数字滤波器的设计和实现。

实验器材:1.计算机2.MATLAB软件实验步骤:1.导入信号数据:首先,打开MATLAB软件,创建一个新的脚本文件,然后导入待滤波的信号数据。

可以通过以下代码实现:```matlabfs = 1000; % 采样频率为1000Hzt = 0:(1/fs):1; % 1秒的时间范围f1=10;%信号频率为10Hzf2=50;%信号频率为50Hzx = sin(2*pi*f1*t) + sin(2*pi*f2*t); % 生成两个正弦信号叠加```2.设计低通滤波器:使用fir1函数设计一个低通滤波器,并指定截止频率为100Hz,实现代码如下:```matlaborder = 64; % 滤波器阶数cutoff = 100; % 截止频率为100Hzb = fir1(order, cutoff/(fs/2)); % 设计低通滤波器系数```3.应用滤波器:将设计好的滤波器系数应用到信号上,实现代码如下:```matlabfiltered_signal = filter(b, 1, x); % 应用滤波器```4.绘制滤波前后的信号波形:使用plot函数分别绘制滤波前和滤波后的信号波形,实现代码如下:```matlabfigure; % 创建新的图形窗口plot(t, x);title('Original Signal'); % 设置图标题plot(t, filtered_signal);title('Filtered Signal'); % 设置图标题```5.显示滤波前后的频谱图:使用fft函数计算滤波前后信号的频谱,并使用plot函数显示频谱图,实现代码如下:```matlabfigure; % 创建新的图形窗口X = abs(fft(x)); % 计算滤波前信号的频谱f = (0:length(X)-1)*fs/length(X); % 计算频率轴的范围plot(f, X);title('Spectrum of Original Signal'); % 设置图标题filtered_X = abs(fft(filtered_signal)); % 计算滤波后信号的频谱plot(f, filtered_X);title('Spectrum of Filtered Signal'); % 设置图标题```实验结果与分析:通过实验设计的FIR数字滤波器,可以实现对输入信号的滤波功能。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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数字滤波器设计与软件实现实验报告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数字滤波器设计与软件实现实验目的:1.了解FIR数字滤波器的基本原理和设计方法;2.学习使用软件实现FIR数字滤波器的设计和仿真。

实验器材:1.个人电脑;2. DSP软件(如Matlab、LabVIEW等)。

实验步骤:1.确定数字滤波器的需求,包括滤波器类型(低通、高通、带通、带阻)、截止频率、滤波器阶数等;2.根据滤波器的需求,选择合适的设计方法进行滤波器设计。

常用的设计方法有窗函数法、频率采样法、最优化法等;3.使用DSP软件进行滤波器设计。

根据选择的设计方法,设置相关参数并生成滤波器系数;4.利用软件进行滤波器的仿真。

输入滤波器的信号,通过滤波器系数对信号进行滤波,并观察输出信号的效果;5.调整滤波器的参数,如截止频率、阶数等,重新生成滤波器系数,并进行仿真分析。

比较不同参数下滤波器的性能差异。

实验注意事项:1.在进行滤波器设计前,需充分了解各种设计方法的优缺点,选择适合的设计方法;2.在进行滤波器仿真时,需要选择合适的输入信号,并注意输入信号的幅度范围;3.切勿过度调节滤波器的参数,以避免出现无法预期的结果。

实验总结和思考:通过本次实验,我对FIR数字滤波器的基本原理和设计方法有了更深入的了解。

掌握了使用DSP软件进行滤波器设计和仿真的方法,能够根据滤波器的需求灵活调整参数,实现不同类型的数字滤波器的设计。

在实验过程中,我发现滤波器的参数选择对滤波器的性能影响很大,需要根据具体应用场景进行合理选择。

同时,滤波器的设计方法也有各自的优缺点,需要根据实际情况进行选择。

总的来说,本次实验加深了我对FIR数字滤波器的理解,提高了我在滤波器设计和仿真方面的能力。

实验四FIR数字滤波器设计与软件实现(word文档)

实验四FIR数字滤波器设计与软件实现(word文档)

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

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

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

(4)学会调用 MA TLAB 函数设计与实现 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),滤波器指标不变,但改用等涟漪最正确逼近法,调用 MA TLAB 函数remezord 和 remez 设计 FIR 数字滤波器。

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

提示:○1 MATLAB函数fir1和fftfilt的功能及其调用格式请查阅本课本;○2采样频率 Fs=1000Hz ,采样周期 T=1/Fs ;○依照图 10.6.1(b) 和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz ,阻带截3至频率 fs=150Hz ,换算成数字频率,通带截止频率p 2 f p0.24 ,通带最大衰为 0.1dB ,阻带截止频率s 2 f s 0.3 ,阻带最小衰为60dB 。

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

数字信号处理实验报告五:FIR数字滤波器设计与软件实现

数字信号处理实验报告五:FIR数字滤波器设计与软件实现

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

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

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

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

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

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

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

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

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

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

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

提示:○1MATLAB函数fir1和fftfilt的功能及其调用格式请查阅本书;○2采样频率Fs=1000Hz,采样周期T=1/Fs;○3根据图10.6.1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz,换算成数字频率,通带截止频率p 20.24pfωπ=T=π,通带最大衰为0.1dB,阻带截至频率s 20.3sfωπ=T=π,阻带最小衰为60dB。

○4实验程序框图如图10.5.2所示,供读者参考。

图10.5.2 实验程序框图三、实验结果1、滤波器参数选取根据10.5.1 节实验指导的提示③选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz。

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数字滤波器,并读入窗口长度。

最新实验5FIR数字滤波器设计与软件实现

最新实验5FIR数字滤波器设计与软件实现

信息院 14电信(师范)1实验五:FIR数字滤波器设计与软件实现23一、实验指导41.实验目的5(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。

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

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

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

92.实验内容及步骤1011(1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理;1213(2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及14其频谱,如图1所示;1516图1 具有加性噪声的信号x(t)及其频谱如图17程序代码:(信号产生函数xtg程序清单)18function xt=xtg(N)19%ʵÑéÎåÐźÅx(t)²úÉú,²¢ÏÔʾÐźŵķùƵÌØÐÔÇúÏß20%xt=xtg(N)21²úÉúÒ»¸ö³¤¶ÈΪN,ÓмÓÐÔ¸ßƵÔëÉùµÄµ¥Æµµ÷·ùÐźÅxt,²ÉÑùƵÂÊ22Fs=1000Hz23%Ôز¨ÆµÂÊfc=Fs/10=100Hz,µ÷ÖÆÕýÏÒ²¨ÆµÂÊf0=fc/10=10Hz.24N=1000;Fs=1000;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;2526fc=Fs/10;f0=fc/10; %Ôز¨ÆµÂÊfc=Fs/10£¬µ¥Æµµ÷ÖÆÐźÅƵÂÊΪf0=Fc/10;2728mt=cos(2*pi*f0*t); %²úÉúµ¥ÆµÕýÏÒ²¨µ÷ÖÆÐźÅmt£¬ÆµÂÊΪf 29ct=cos(2*pi*fc*t); %²úÉúÔز¨ÕýÏÒ²¨ÐźÅct£¬ÆµÂÊΪfc3031xt=mt.*ct; %Ïà³Ë²úÉúµ¥Æµµ÷ÖÆÐźÅxt32nt=2*rand(1,N)-1; %²úÉúËæ»úÔëÉùnt33%=======Éè¼Æ¸ßͨÂ˲¨Æ÷hn,ÓÃÓÚÂ˳ýÔëÉùntÖеĵÍƵ³É·Ö, 34Éú³É¸ßͨÔëÉù=======35fp=150; fs=200;Rp=0.1;As=70; % Â˲¨Æ÷Ö¸±êfb=[fp,fs];m=[0,1]; %3637¼ÆËãremezordº¯ÊýËùÐè²ÎÊýf,m,dev38dev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)];[n,fo,mo,W]=remezord(fb,m,dev,Fs); %3940È·¶¨remezº¯ÊýËùÐè²ÎÊý41hn=remez(n,fo,mo,W); %42µ÷ÓÃremezº¯Êý½øÐÐÉè¼Æ,ÓÃÓÚÂ˳ýÔëÉùntÖеĵÍƵ³É·Ö43yt=filter(hn,1,10*nt); %Â˳ýËæ»úÔëÉùÖеÍƵ³É·Ö£¬Éú44³É¸ßͨÔëÉùyt45%======================================================= 46=========47xt=xt+yt; %ÔëÉù¼ÓÐźÅ48fst=fft(xt,N);k=0:N-1;f=k/Tp;subplot(3,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t4950)');51axis([0,Tp/5,min(xt),max(xt)]);title('(a)52ÐźżÓÔëÉù²¨ÐÎ')53subplot(3,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title 54('(b) ÐźżÓÔëÉùµÄƵÆ×')55axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('·ù¶È')56输出波形:5758(3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。

数字信号处理实验报告五:FIR数字滤波器设计与软件实现

数字信号处理实验报告五:FIR数字滤波器设计与软件实现

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

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

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

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

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

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

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

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

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

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

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

提示:○1MATLAB函数fir1和fftfilt的功能及其调用格式请查阅本书;○2采样频率Fs=1000Hz,采样周期T=1/Fs;○3根据图10.6.1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz,换算成数字频率,通带截止频率p 20.24pfωπ=T=π,通带最大衰为0.1dB,阻带截至频率s 20.3sfωπ=T=π,阻带最小衰为60dB。

○4实验程序框图如图10.5.2所示,供读者参考。

图10.5.2 实验程序框图三、实验结果1、滤波器参数选取根据10.5.1 节实验指导的提示③选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz。

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

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

实验三:FIR 数字滤波器设计与软件实现1、 实验目的(1)掌握用窗函数法设计FIR 数字滤波器的原理和方法(2)掌握用等波纹最佳逼近法设计FIR 数字滤波器的原理和方法 (3)掌握FIR 滤波器的快速卷积实现原理(4)学会调用MATLAB 函数设计与实现FIR 滤波器2、 实验步骤及内容(1) 认真复习第七章中用窗函数法和等波纹最佳逼近方法设计FIR 数字滤波器的原理;(2) 调用信号产生函数xtg 产生具有加性噪声的信号xt ,并自动显示xt 及其频谱,如图10.5.1所示。

(3) 请设计低通滤波器,从高频噪声中提取xt 中的单频抑制载波调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB 。

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

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

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

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

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

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

00.020.040.060.080.10.120.140.160.180.2-1010t/sx (t )(a)信号加噪声波形5010015020025030035040045050000.51(b)信号加噪声的频谱f/Hz幅度3、程序清单clc;clear;NN=1000;fs1=1000;T=1/fs1;t=0:T:(NN-1)*T;Tp=NN*T;k=0:NN-1;f=k/Tp;%rs等于60dB,因此采用布克莱曼窗fp=120;fs=150;%转换为数字频率wp=2*pi*fp/fs1;ws=2*pi*fs/fs1;bt=ws-wp; %计算过渡带宽度N0=ceil(11*pi/bt);%计算滤波器阶数N1=N0+mod(N0+1,2);%确保好h(n)长度N1是奇数wc=(wp+ws)/2/pi;%计算理想高通滤波器通带截止频率hn=fir1(N1-1,wc,blackman(N1));%调用firl 计算高通FIR数字滤波器的h(n)figure;[H,W]=freqz(hn,1,512,2);plot(W,20*log10(abs(H)));y1=filter(hn,1,xtg);%调用fftfilt用重叠相加法计算卷积y1_fft=fft(y1,NN);figure;subplot(2,1,1);plot(t,y1)axis([0,0.5*Tp,min(y1),max(y1)]);subplot(2,1,2);stem(f,abs(y1_fft)/max(abs(y1_fft)),'.'); axis([0,fs1/5,0,1.2]);grid;functionxt=xtg %实验五信号x(t)产生函数,并显示信号的时域波形和幅频特性曲线%xt=xtg产生一个长度为N,有加性高频噪声的単频调幅信号xt,N=1000%采样频率Fs=1000Hz%载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10HzN=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/10mt=cos(2*pi*f0*t);%产生単频正弦波调制信号mt,频率为f0ct=cos(2*pi*fc*t);%产生载波正弦波信号mt,频率为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/2 0)+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(2,1,1);plot(t,xt);grid;xlabel('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('幅度')4、仿真波形00.020.040.060.080.10.120.140.160.180.2-1010t/sx (t )(a)信号加噪声波形5010015020025030035040045050000.51(b)信号加噪声的频谱f/Hz幅度0.050.10.150.20.250.30.350.40.450.5-1-0.50.5120406080100120140160180200。

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

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

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

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

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

2.实验内容及步骤
(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的功能及其调用格式请查阅教材;
○2采样频率Fs=1000Hz,采样周期T=1/Fs;
○3根据图1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz,换算成数字频率,通带截止
频率
p 20.24
p
f
ωπ
=T=π,通带最大衰为0.1dB,阻带截至频率
s 20.3
s
f
ωπ
=T=π,阻带最小衰为60dB。

○4实验程序框图如图2所示,供读者参考。

图2 实验程序框图
4.思考题
(1)如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?请写出设计步骤.
(2)如果要求用窗函数法设计带通滤波器,且给定通带上、下截止频率为pl ω和pu ω,阻带上、下截止频率为sl ω和su ω,试求理想带通滤波器的截止频率cl cu ωω和。

(3)解释为什么对同样的技术指标,用等波纹最佳逼近法设计的滤波器阶数低?
5.信号产生函数xtg 程序清单(见教材)
二、 滤波器参数及实验程序清单
1、滤波器参数选取
根据实验指导的提示③选择滤波器指标参数:
通带截止频率fp=120Hz,阻带截至频率fs=150Hz。

代入采样频
率Fs=1000Hz,换算成数字频率,通带截止频率
p 20.24
p
f
ωπ
=T=π,通
带最大衰为0.1dB,阻带截至频率
s 20.3
s
f
ωπ
=T=π,阻带最小衰为60dB。

所以选取blackman窗函数。

与信号产生函数xtg相同,采样频率Fs=1000Hz。

按照图2 所示的程序框图编写的实验程序为exp2.m。

2、实验程序清单
% FIR数字滤波器设计及软件实现
clear all;close all;
%==调用xtg产生信号xt, xt长度N=1000,并显示xt及其频谱,=========
N=1000;xt=xtg(N);
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('(a) 低通滤波器幅频特性')
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('(b) 滤除噪声后的信号波形')
% (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滤波
%以下为用等波纹设计法的绘图部分(滤波器损耗函数,滤波器
figure(3);subplot(2,1,1)
f=[0:1023]*Fs/1024;
plot(f,20*log10(Hw/max(Hw)));grid;title('(c) 低通滤波器幅频特性')
axis([0,Fs/2,-80,10]);
xlabel('f/Hz');ylabel('幅度')
subplot(2,1,2);plot(t,yet);grid;
axis([0,Tp/2,-1,1]);xlabel('t/s');ylabel('y_e(t)');
title('(d) 滤除噪声后的信号波形')
三、实验程序运行结果
用窗函数法设计滤波器,滤波器长度Nb=184。

滤波器损耗函数和滤波器输出yw(nT)分别如图3(a)和(b)所示。

用等波纹最佳逼近法设计滤波器,滤波器长度Ne=83。

滤波器损耗函数和滤波器输出ye(nT)分别如图3(c)和(d)所示。

两种方法设计的滤波器都能有效地从噪声中提取信号,但等波纹最佳逼近法设计的滤波器阶数低得多,当然滤波实现的运算量以及时延也小得多,从图3(b)和(d)可以直观地看出时延差别。

图3
四、 简答思考题
(1) 用窗函数法设计线性相位低通滤波器的设计步骤教材中有详细的介绍.
(2) 希望逼近的理想带通滤波器的截止频率cl cu ωω和分别为: cl sl pl cu su pu ()/2, ()/2ωωωωωω=+=+
(3)解释为什么对同样的技术指标,用等波纹最佳逼近法设计的滤波器阶数低?
①用窗函数法设计的滤波器,如果在阻带截止频率附近刚好满
足,则离开阻带截止频率越远,阻带衰减富裕量越大,即存在资源浪费;
②几种常用的典型窗函数的通带最大衰减和阻带最小衰减固定,且差别较大,又不能分别控制。

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

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

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

相关文档
最新文档