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

昆明理工大学信息工程与自动化学院学生实验报告( 2016 —2017 学年第二学期)课程名称:数字信号处理开课实验室:信自111 实验日期:2017-5-18实验三 FIR数字滤波器设计与软件实现一、实验目的1、掌握窗函数法设计FIR数字滤波器的原理和方法;2、学会调用MATLAB函数设计与实现FIR滤波器。
二、实验原理窗函数设计法是一种通过截短和计权的方法使无限长非因果序列成为有限长脉冲应响应序列的设计方法,通常在设计滤波器之前,应该先根据具体的工程应用确定滤波器的技术指标,在大多数实际应用中,数字滤波器常常被用来实现选频操作,所以指标的形式一般为在频域中以分贝值给出的相对幅度响应和相位响应。
1) 根据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N(或独立选择,因为窗口长度N对阶数M=N-1),窗函数类型可根据最小阻带衰减αs没有影响,在确定窗函数类型以后,可根据过渡带宽小于给定指最小阻带衰减αs标确定所拟用的窗函数的窗口长度N ,设待求滤波器的过渡带宽为Δω,它与窗口长度N 近似成反比,窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的窗口长度还要在计算中逐步修正,原则是在保证阻带衰减满足要求的情况下,尽量选择较小的N ,在N 和窗函数类型确定后,即可调用MATLAB 中的窗函数求出窗函数W(n)。
2) 根据待求滤波器的理想频率响应求出理想单位脉冲响应h d (n),如果给出待求滤波器频率应为H d (e j ω),则理想的单位脉冲响应可以用下面的傅里叶反变换式求出:dw e e H n h jw jw d d ⎰-=πππ)(21)(在一般情况下,h d (n)是不能用封闭公式表示的,需要采用数值方法表示;从ω=0到ω=2π采样N 点,采用离散傅里叶反变换(IDFT)即可求出。
3) 计算滤波器的单位脉冲响应h(n),它是理想单位脉冲响应和窗函数的乘积。
4) 算技术指标是否满足要求,为了计算数字滤波器在频域中的特性,可调用freqz 子程序,如果不满足要求,可根据具体情况,调整窗函数类型或长度,直到满足要求为止。
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数字滤波器设计与软件实现

实验报告专业班级:姓名:学号:成绩评定电气与信息学院和谐勤奋求是创新实验教学考核和成绩评定办法1.课内实验考核成绩,严格按照该课程教学大纲中明确规定的比重执行。
实验成绩不合格者,不能参加课程考试,待补做合格后方能参加考试。
2.单独设立的实验课考核按百分制评分,考核内容应包括基本理论、实验原理和实验。
3.实验考核内容包括:1)实验预习;2)实验过程(包括实验操作、实验记录和实验态度、表现);3)实验报告;权重分别为0.2 、0.4 、0.4;原则上根据上述三个方面进行综合评定。
学生未取得1)和2)项成绩时,第3)项成绩无效。
4.实验指导教师应严格按照考核内容分项给出评定成绩,并及时批改实验报告,给出综合成绩,反馈实验中出现的问题。
实验成绩在教师手册中有记载。
实验报告主要内容一.实验目的二.实验仪器及设备三.实验原理四.实验步骤五.实验记录及原始记录六.数据处理及结论七. 思考题八.实验体会(可选项)注:1. 为了节省纸张,保护环境,便于保管实验报告,统一采用A4纸,实验报告建议双面打印(正文采用宋体五号字)或手写,右侧装订。
2. 实验类别指验证、演示、综合、设计、创新(研究)、操作六种类型实验。
3. 验证性实验:是指为了使学生巩固课程基本理论知识而开设的强调演示和证明,注重实验结果(事实、概念或理论)的实验。
4. 综合性实验:是指实验内容涉及本课程的综合知识或本课程相关的课程知识的实验。
5. 设计性实验:是指给定实验目的、要求和实验条件,由学生自行设计实验方案并加以实现的实验。
姜继红20姜继红20。
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滤波器的设计和实现。
例如,在MATLAB中,可以使用内置的`fir1`函数来设计FIR滤波器。
该函数可以根据指定的滤波器长度N和采样频率Fs,自动选择合适的窗函数并计算滤波器的系数。
然后,可以使用快速卷积函数`fftfilt`对输入信号进行滤波处理。
此外,还可以使用等波纹最佳逼近法来设计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 (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数字滤波器设计与软件实现
实验目的:
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数字滤波器具有良好的滤波效果,可以用于信号处理和通信系统中的滤波需求。
实验四FIR数字滤波器设计与软件实现

实验四FIR数字滤波器设计与软件实现实验目的:1.了解FIR数字滤波器的基本原理和设计方法;2.学习使用软件实现FIR数字滤波器的设计和仿真。
实验器材:1.个人电脑;2. DSP软件(如Matlab、LabVIEW等)。
实验步骤:1.确定数字滤波器的需求,包括滤波器类型(低通、高通、带通、带阻)、截止频率、滤波器阶数等;2.根据滤波器的需求,选择合适的设计方法进行滤波器设计。
常用的设计方法有窗函数法、频率采样法、最优化法等;3.使用DSP软件进行滤波器设计。
根据选择的设计方法,设置相关参数并生成滤波器系数;4.利用软件进行滤波器的仿真。
输入滤波器的信号,通过滤波器系数对信号进行滤波,并观察输出信号的效果;5.调整滤波器的参数,如截止频率、阶数等,重新生成滤波器系数,并进行仿真分析。
比较不同参数下滤波器的性能差异。
实验注意事项:1.在进行滤波器设计前,需充分了解各种设计方法的优缺点,选择适合的设计方法;2.在进行滤波器仿真时,需要选择合适的输入信号,并注意输入信号的幅度范围;3.切勿过度调节滤波器的参数,以避免出现无法预期的结果。
实验总结和思考:通过本次实验,我对FIR数字滤波器的基本原理和设计方法有了更深入的了解。
掌握了使用DSP软件进行滤波器设计和仿真的方法,能够根据滤波器的需求灵活调整参数,实现不同类型的数字滤波器的设计。
在实验过程中,我发现滤波器的参数选择对滤波器的性能影响很大,需要根据具体应用场景进行合理选择。
同时,滤波器的设计方法也有各自的优缺点,需要根据实际情况进行选择。
总的来说,本次实验加深了我对FIR数字滤波器的理解,提高了我在滤波器设计和仿真方面的能力。
实验四IIR和FIR数字滤波器设计及软件实现实验报告

数字信号处理实验报告实验四IIR数字滤波器设计及软件实现(一) FIR数字滤波器设计及软件实现(二)2018 年 11 月 28 日一、实验目的(实验4_1)(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法;(2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
(3)掌握IIR数字滤波器的MATLAB实现方法。
(4)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。
(实验4_2)(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。
(2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。
(3)掌握FIR滤波器的快速卷积实现原理。
(4)学会调用MATLAB函数设计与实现FIR滤波器。
二、实验原理与方法(实验4_1)设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。
基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。
MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。
第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。
本实验要求读者调用如上函数直接设计IIR数字滤波器。
本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。
3、实验内容及步骤(实验4_1)(1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图1所示。
由图可见,三路信号时域混叠无法在时域分离。
实验二FIR滤波器设计与实现

实验二FIR滤波器设计与实现FIR(Finite Impulse Response)滤波器是一种数字滤波器,由有限长的冲激响应组成。
与IIR(Infinite Impulse Response)滤波器相比,FIR滤波器具有线性相位、稳定性和易于设计等优点。
本实验旨在设计和实现一个FIR滤波器。
首先,我们需要确定滤波器的规格和要求。
在本实验中,我们将设计一个低通FIR滤波器,将高频信号滤除,只保留低频信号。
滤波器的截止频率为fc,滤波器的阶数为N,采样频率为fs。
接下来,我们需要确定滤波器的频率响应特性。
常用的设计方法有窗函数法、最小最大规范法等。
本实验采用窗函数法进行滤波器设计。
窗函数法的基本思想是利用窗函数来加权冲激响应的幅度,以达到要求的频响特性。
常用的窗函数有矩形窗、汉宁窗、汉明窗等。
在本实验中,我们选择汉宁窗作为窗函数。
首先,我们需要计算出滤波器的理想频率响应。
在低通滤波器中,理想频率响应为0频率处幅度为1,截止频率处幅度为0。
然后,我们需要确定窗函数的长度L。
一般来说,窗函数的长度L要大于滤波器的阶数N。
在本实验中,我们选择L=N+1接下来,我们利用窗函数对理想频率响应进行加权处理,得到加权后的冲激响应。
最后,我们对加权后的冲激响应进行归一化处理,使滤波器的频率响应范围在0到1之间。
在设计完成后,我们需要将滤波器实现在实验平台上。
在本实验中,我们使用MATLAB软件进行滤波器实现。
首先,我们需要生成一个输入信号作为滤波器的输入。
可以选择一个随机的信号作为输入,或者选择一个特定的信号进行测试。
然后,我们将输入信号输入到滤波器中,得到滤波器的输出信号。
最后,我们将滤波器的输入信号和输出信号进行时域和频域的分析,以评估滤波器的滤波效果。
在实验的最后,我们可以尝试不同的滤波器设计参数,如截止频率、窗函数的选择等,以观察滤波器设计参数对滤波器性能的影响。
综上所述,本实验是关于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数字滤波器,并读入窗口长度。
基于matlab的FIR数字滤波器设计及其软件实现

摘要在这个具有挑战性的时代,把计算机充分运用到教学及工程运算中,虽然具有重要的意义,而随着计算机技术的发展,计算机软件在工程设计领域应用越来越广。
本设计研究是基于MATLAB的FIR数字滤波器的设计,是基于应用计算机软件编程。
首先了解滤波器的基本工作原理,针对FIR滤波器,有各种不同的方法。
FIR滤波器一般要求信号具有线性相位,同时由于脉冲响应无限长,因此具有永远稳定的特性。
根据这个特点,。
本文主要对FIR滤波器采用了窗函数法,最优设计法,最小二乘设计法,升余弦函数设计法和任意响应设计法来设计FIR滤波器,同时,还对滤波器进行阶数评估。
滤波是信号处理中最基本有极为重要的技术,利用滤波器技术可以从复杂的信号中提取出所需要的信号,抑制不需要的信号。
绝大多数传感器输出的信号,在使用过程中,都必须进行滤波,所以滤波器是具有一定传输选择特性的,对信号进行加工处理的装置,它允许输入信号中的一些成分通过,抑制或衰减另一些成分。
其功能是将输入信号变换为人们所需要的输入信号。
本设计主要给出了FIR数字滤波器的基本特性和设计方法。
关键词:MATLAB 特性FIR滤波器设计AbstractIn this challenging era, the full use of computers to teaching and engineering operations, although of great significance, and with the development of computer technology, computer software in engineering design applications more widely.The design study is based on MATLAB for FIR digital filter design, is based on the application of computer software programming. First understand the basic working principle of the filter for FIR filters, a variety of different ways. General requirements for FIR filters with linear phase signals, and because of infinite impulse response, so it has always stable characteristics. According to this feature. In this paper, FIR filters used on the window function method, optimal design method, least squares design method, design raised cosine function and design method to design arbitrary response FIR filters, it is also the order of the filter evaluation. Signal processing filter is the most basic there is a very important technology, the use of technology can filter the signal from the complex by the need to extract the signal, to suppress unwanted signals. Most of the sensor output signal, in the course, must be filtered, so the filter is chosen with a certain transmission characteristics, the signal processing device, which allows some components of the input signal through the inhibition or attenuation other ingredients. Its function is to transform the input signal is needed for people to input signal目录摘要 (I)Abstract (II)第一章绪论 (1)1.1 数字滤波器定义 (1)1.2 数字滤波器的分类 (1)1.3 实际滤波器的设计指标 (2)1.4 几种常见的特殊滤波器 (2)第二章FIR滤波器特性 (3)2.1 FIR滤波器简介 (3)2.2 FIR滤波器的线性相位特性 (3)2.2.1 FIR滤波器的第一类线性相位 (4)2.2.2 FIR滤波器的第二类线性相位 (6)2.2.3 线性相位FIR滤波器的零点特性 (8)第三章FIR滤波器的MATLAB设计 (9)3.1 用窗函数法设计FIR数字滤波器 (9)3.1.1 FIR数字滤波器窗函数设计法 (9)3.1.2 加窗的线性相位FIR数字滤波器设计函数fir1和fir2 (12)3.2 FIR滤波器的最优设计法 (15)3.2.1 firs函数 (15)3.2.2 remez函数 (16)3.3 FIR滤波器最小二乘设计法 (17)3.3.1 fircls函数 (17)3.3.2 fircls函数 (19)3.4 FIR滤波器升余弦函数设计法 (20)3.5 FIR滤波器的任意响应设计法 (21)第四章FIR 滤波器阶数估计 (24)4.1 kaiserord函数 (24)4.2 remezord函数 (25)第五章小结 (27)参考文献 (28)致谢 (29)第一章绪论当前,通信技术高速发展,业务范围不断扩大,人们对产品的需求迅速增长,滤波器在这些产品电路中就扮演着重要的角色,当然数字滤波器更影响着人们生活的方方面面。
最新实验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滤波器设计与实现实验报告目录一、实验概述 (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(Finite Impulse Response)数字滤波器为主题的实验。
在这个实验中,我们将学习如何设计和实现一个FIR数字滤波器,以滤除特定频率范围内的噪声、增强信号或实现其他特定的信号处理功能。
以下是一个可能的FIR数字滤波器设计实验的完整版实验步骤和要求:实验目的:1.学习FIR数字滤波器的基本原理和设计方法。
2. 熟悉Matlab等数字信号处理软件的使用。
3.实践设计和实现一个FIR数字滤波器,以实现特定的信号处理功能。
实验步骤:1.确定实验所需的信号处理功能。
例如,设计一个低通滤波器以滤除高频噪声,或设计一个带通滤波器以增强特定频率范围内的信号。
2.确定数字滤波器的规格。
包括截止频率、滤波器阶数、滤波器类型(低通、高通、带通、带阻)等。
3. 使用Matlab等数字信号处理软件进行设计和仿真。
根据信号处理功能和滤波器规格,选择合适的设计方法(如窗函数法、频率采样法等),并设计出数字滤波器的系数。
4.对设计的数字滤波器进行性能评估。
通过模拟信号输入和滤波输出、频率响应曲线等方式,评估滤波器在实现信号处理功能方面的性能。
5.利用硬件平台(如DSP处理器、FPGA等)实现设计的FIR数字滤波器。
根据设计的滤波器系数,编程实现滤波器算法,并进行实时信号处理和输出。
同时,可以利用外部信号源输入不同类型的信号,进行滤波效果验证和性能测试。
6.对滤波器设计和实现进行综合分析。
根据实际效果和性能测试结果,分析滤波器设计中的优缺点,并提出改进方案。
实验要求:1.理解FIR数字滤波器的基本原理和设计方法。
2. 掌握Matlab等数字信号处理软件的使用。
3.能够根据信号处理要求和滤波器规格,选择合适的设计方法并设计出满足要求的滤波器。
4.能够通过模拟和实验验证滤波器的性能。
5.具备对滤波器设计和实现进行综合分析和改进的能力。
通过完成上述实验,学生可以深入理解FIR数字滤波器的原理和设计方法,掌握数字信号处理软件的使用,提升数字信号处理的实践能力,并了解数字滤波器在实际应用中的重要性和价值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。
(2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。
(3)掌握FIR滤波器的快速卷积实现原理。
(4)学会调用MA TLAB函数设计与实现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的滤波。
绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。
(4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB函数remezord和remez 设计FIR数字滤波器。
并比较两种设计方法设计的滤波器阶数。
提示:○1MA TLAB函数fir1和fftfilt的功能及其调用格式请查阅本书第7章和第?章;○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所示。
Fs=1000,T=1/Fsxt=xtg产生信号xt, 并显示xt及其频谱用窗函数法或等波纹最佳逼近法设计FIR滤波器hn对信号xt滤波:yt=fftfilt(hn,xt)1、计算并绘图显示滤波器损耗函数2、绘图显示滤波器输出信号ytEnd图10.5.2 实验程序框图三、信号产生函数xtg程序清单function xt=xtg(N)%实验五信号x(t)产生,并显示信号的幅频特性曲线%xt=xtg(N) 产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1000Hz%载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10Hz.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;subplot(3,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t)');axis([0,Tp/5,min(xt),max(xt)]);title('(a) 信号加噪声波形')subplot(3,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title('(b) 信号加噪声的频谱')axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('幅度')四、滤波器参数选取根据10.5.1 节实验指导的提示③选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz。
代入采样频率Fs=1000Hz,换算成数字频率,通带截止频率p 20.24pfωπ=T=π,通带最大衰为0.1dB,阻带截至频率s 20.3sfωπ=T=π,阻带最小衰为60dB。
所以选取blackman窗函数。
与信号产生函数xtg相同,采样频率Fs=1000Hz。
按照图10.5.2 所示的程序框图编写的实验程序为exp5.m。
五、实验程序清单%《数字信号处理(第三版)学习指导》第10章实验5程序exp5.m% 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窗的长度Nhn=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,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函数进行设计Hw=abs(fft(hn,1024)); % 求设计的滤波器频率特性yet=fftfilt(hn,xt,N); % 调用函数fftfilt对xt滤波%以下为用等波纹设计法的绘图部分(滤波器损耗函数,滤波器输出信号yw(nT)波形)%省略f=[0:1023]*Fs/1024;figure(3)subplot(2,1,1)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)分别如图10.5.3(a)和(b)所示。
用等波纹最佳逼近法设计滤波器,滤波器长度Ne=83。
滤波器损耗函数和滤波器输出ye(nT)分别如图10.5.3(c)和(d)所示。
两种方法设计的滤波器都能有效地从噪声中提取信号,但等波纹最佳逼近法设计的滤波器阶数低得多,当然滤波实现的运算量以及时延也小得多,从图10.5.3(b)和(d)可以直观地看出时延差别。
图10.5.3七、思考题(1)如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?请写出设计步骤.(2)如果要求用窗函数法设计带通滤波器,且给定通带上、下截止频率为pl ω和pu ω,阻带上、下截止频率为sl ω和su ω,试求理想带通滤波器的截止频率cl cu ωω和。
(3)解释为什么对同样的技术指标,用等波纹最佳逼近法设计的滤波器阶数低?。