MATLAB_GUI设计FIR滤波器(窗函数).docx

MATLAB_GUI设计FIR滤波器(窗函数).docx
MATLAB_GUI设计FIR滤波器(窗函数).docx

1 数字滤波器的概述................................................................................................ 错误 ! 未定义书签。FIR 数字滤波器设计原理错误 !未定义书签。

FIR 数字滤波器的特性错误 ! 未定义书签。

窗函数的介绍错误 !未定义书签。

2 FIR 数字滤波器设计及实现错误 !未定义书签。

低通滤波器的设计错误 ! 未定义书签。

高通滤波器的设计错误 ! 未定义书签。

带通滤波器的设计错误 ! 未定义书签。

带阻滤波器的设计错误 ! 未定义书签。

3 基于 MATLAB GUI 的 FIR 滤波器的仿真错误 !未定义书签。

FIR 数字滤波器设计所实现的任务错误 ! 未定义书签。

FIR 数字滤波器界面设计错误 !未定义书签。

FIR 数字滤波器函数的编写错误 !未定义书签。

菜单 FilterType 的回调函数错误 !未定义书签。

显示类型 DispType 的函数错误 !未定义书签。

阶数 N 和最小阶数N 按钮的函数错误 ! 未定义书签。

文本编辑框的回调函数错误 !未定义书签。

滤波器波形按钮的回调函数错误 !未定义书签。

文本框 Rp 和 Rs 的函数错误 !未定义书签。

产生信号按钮的回调函数错误 !未定义书签。

滤波后的信号按钮的回调函数错误 !未定义书签。

按钮 Quit 的回调函数错误 ! 未定义书签。

总程序的编写错误 !未定义书签。

4 实验结果与显示错误 !未定义书签。

5结束语错误 !未定义书签。

6感谢错误 !未定义书签。

7参考文献错误 !未定义书签。附

录错误 ! 未定义书签。

基于 MATLAB 的 FIR数字滤波器的设计与仿真

李宏华

湛江师范学院信息科学与技术学院,湛江524048

摘要:本文从 FIR 数字滤波器的设计原理和特性入手,实现了用MATLAB 设计 FIR 数字滤波器的功能,

重点阐述了通过MATLAB GUI 实现了 FIR 数字滤波器的仿真。详细介绍了MATLAB GUI 界面的构建与回

调函数的程序编写与调试。

关键词: MATLAB; GUI; FIR 滤波器

The Design and Simulation of FIR Digital Filter base on ATLAB

LI Honghua

Information Science & Technology School, Zhanjiang Normal University, zhanjiang, 524048 China

Abstract :This paper starts with the design principles and characteristics of the FIR digital filter, Achieve the

task of using MATLAB software to design the FIR digital filter, in particular introduction to complete the simulation of the FIR digital filter base on MATLAB GUI software. Comprehensive introduce to the building

of GUI interface and the program compiled with debugging of the callback function.

Key word : MATLAB; GUI; FIR Filter

1数字滤波器的概述

FIR 数字滤波器设计原理

[1]中介绍了数字滤波器冲激响应的时域特征,可将数字滤波器分为2 种,即无限长冲激响应滤波器 ( IIR)和有限长冲激响应滤波器 (FIR) 。FIR 具有突出的优点 :系统总是稳定的、易于实现线性相位、允许设计多通带 (或多阻带 )滤波器。但与 IIR 相比 ,在满足同样的阻带衰减的情况下需要较高的阶数。 FIR的冲激响应 h(k)是有限长的 M 阶 FIR系统函数可表示为

M

h( k) z k

H ( z)

k0

M

滤波器的输出 :y(k ) h( k) x(k )h(i )x(k i)

i 0

它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数问题 ,[2]中给出的设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。

在这里我们利用窗函数法设计FIR滤波器。给定所要求的滤波器的频率响应Hd ( ejw) ,

要求设计一个 FIR 滤波器的频率响应 H( ejw) 来逼近 Hd( ejw) . 设计是在时域进行的 , 首先由傅立叶变换导出无限长的序列 hd( n) , 然后用窗函数截断 hd ( n) ,即: h( n) = hd( n) w( n)。

FIR 数字滤波器的特性

FIR 滤波器有以下特点:

(1) 系统的单位冲激响应 h(n)在有限个 n 值处不为零;

(2) 系统函数 H(z)在|z|>0 处收敛,极点全部在 z = 0处(因果系统);

(3) 结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽 样结构)也包含有反馈的递归部分。

因为 FIR 数字滤波器的单位冲激响应是有限长的, 所以它永远都是稳定的。 [3] 说明了

达到具有线性相位这一要求, 仅需要对 FIR 数字滤波器的冲激响应 h(n) 施加一定的约

束。令 z

e jw ,就可由 H ( z) 得到 FIR 数字滤波器的频率响应:

N

1

H (e j ) H ( z) |

j

h(n)e j n

H ( )e j ( )

( 1-2-1)

z e

n

式中 H ( ) 是 H ( e j ) 的幅频特性,

( ) 是 H (e j ) 的相频特性

( )

arctan( Im( H (e j

)) )

(1-2-2)

RE( H (e j ))

[4] 中讨论了由于 h(n)的长度 N 取奇数或偶数时对 H(w)的特性有影响, FIR 滤波器的幅频特性可以分为以下 4 种情况:

(1)第Ⅰ种类型: h(n) 为偶对称,且 N 为奇数

N 1

根据式: H ( )

n 0

h(n)cos[(

N

1

n) ] 可以得到滤波器的幅频函数为:

2

( N 1)/2

H ( )

a(n) cos( n)

( 1-2-3)

n 0

其中 a(0) h(

N 1

) ,a(n)

2h(

N

n), n 1,2,? ,

N 1

。幅度函数 H ( ) 对0, ,2

2

2

2

呈偶对称。

(2)第Ⅱ种类型: h(n) 为偶对称,且 N 为偶数

N 1

根据式: H ( )

n 0

h(n)cos[(

N

1

n) ] 可得滤波器的幅频函数为:

2

N /2

1 ) H ( ) b( n)cos (n

(1-2-4)

n 1

2

其中: b(n)

N n), n

N

。幅度函数 H ( ) 对于

0 或 2 呈偶对称。如

2h(

1,2,? ,

2

2

果数字滤波器在 处不为零,如本文设计的高通滤波器和带阻滤波器则不能用这

一类型。

(3)第Ⅲ种类型: h(n) 为奇对称,且 N 为奇数

N

1

根据式: H ( )

h(n)sin (

N 1

n) 可得滤波器的幅频函数为:

n

2

( N 1)/2

H ( ) c(n)sin( n)

(1-2-5)

n 1

其中 c(n) 2h

N

n , n 1,2,?, N-1

。数字滤波器在

=0,

, 2 处不为零如低通

2

2

滤波器、高通滤波器、带阻滤波器,则不适合用这类滤波器来设计。

(4)第Ⅳ种类型: h(n) 为奇对称,且 N 为偶数

N 1

( N 1

根据式: H ( )

h(n)sin

n) 可得滤波器的幅频函数可表示为:

n 0

2

N /2

1 )

(1-2-6)

H ( )d (n)sin

(n

n 1

2

其中: d (n)

2h N n , n

1,2,?, N

。幅度函数 H ( ) 对于

呈偶对称。如果数

2

2

字滤波器在 0,2 处不为零如低通滤波器、 带阻滤波器,则不适合用这类数字滤波

器来设计。

窗函数的介绍

设计滤波器尽量要求窗函数满足以下两项要求:

(1)窗谱主瓣尽可能地窄,以获取较陡的过渡带。

(2)尽量减少窗谱的最大旁瓣的相对幅度。也就是能量尽量集中于主瓣,这样使尖峰和波纹减小,就可增大阻带的衰减。

但是这两项要求是不能同时满足的。 当选用主瓣宽度较窄时, 虽然得到陡峭的过渡带,但通带和阻带的波动明显增加; 当选用最小的旁瓣幅度时, 虽能得到平坦的幅度响应和较小的阻带波纹,但过渡带加宽,即主瓣会加宽。因此,实际所选用的窗函数往往是它们的折中。设计 FIR 滤波器常用的窗函数有:矩形窗、三角窗、汉宁窗、海明窗、布拉克曼窗、凯塞窗等。

以下是几种窗函数的性能比较: 窗函数 旁瓣峰值衰 等效凯塞尔 主瓣过渡带 精确过渡带 最小阻带衰

减( dB ) 窗( ) 宽( ) 宽( ) 减(Db)

矩形窗-1304/ N/ N-21

三角窗-258/ N/ N-25

汉宁窗-318/ N/ N-44

海明窗-418/ N/ N-53

布莱克曼窗-5712/ N11/ N-74

凯赛尔窗-5710/ N10/ N-80

想详细了解以上几个窗函数请查阅参考文献[4]或者用命令 wvtool(windows(N)) 查看。2FIR 数字滤波器设计及实现

低通滤波器的设计

低通滤波器允许信号中的低频或直流分量通过,抑制高频分量或干扰和噪声。

程序如下:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%fp1=10;fs1=15;fs=100;boxcar window %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fp1=10;%低通通带模拟截止频率

fs1=15;%低通阻带模拟截止频率

fs=100;%采集频率

wp1=2*pi*fp1/fs; % 模拟转变为数字域的截止频率

ws1=2*pi*fs1/fs;

delta_w=ws1-wp1; %过渡带宽

N=ceil*pi/delta_w)+1;%最小阶数 N

window=boxcar(N)';

%N=ceil*pi/delta_w)+1;%最小阶数 N

%window=bartlett(N)';% 注意要改一下过渡带宽的系数

%N=ceil*pi/delta_w)+1;%最小阶数 N

%window=hanning(N)';

%N=ceil*pi/delta_w)+1;%最小阶数 N

%window=hamming(N)';

%N=ceil(11*pi/delta_w)+1;%最小阶数 N

%window=blackman(N)';

%N=ceil(10*pi/delta_w)+1;%最小阶数 N

%window=kaiser(N+1)';

Wn=(fp1+fs1)/fs;%理想 LPF的截止频率

[b,a]=fir1(N-1,Wn,window);

[H,w]=freqz(b,1,512);

db=20*log10(abs(H));%db imagine

t=(0:200)/fs;

Signal=sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30); %输入信号

FilterSignal=filter(b,1,Signal);

subplot(2,2,1);

plot(w*fs/(2*pi),db);xlabel(' 频率 ');ylabel('db');title(' 滤波器的相对振幅 ');grid on; subplot(2,2,2);

plot(w*fs/(2*pi),angle(H));xlabel(' 频率 ');ylabel('angle(H)');title(' 滤波器相位响应 ');grid

on;

subplot(2,2,3);

plot(t,Signal);xlabel('t');ylabel('Signal');title(' 滤波前的信号波形 ');grid on;

subplot(2,2,4);

plot(t,FilterSignal);xlabel('t');ylabel('FilterSignal');title(' 滤波后的信号波形 ');

grid on;

高通滤波器的设计

高通滤波器允许信号中的高频分量通过,抑制低频或直流分量。程序如下:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %fs1=10,fp1=15;fs=100(wp1=;ws1= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fs1=10;%高通阻带模拟截止频率

fp1=15;%高通通带模拟截止频率

fs=100;%采用频率

wp1=2*pi*fp1/fs; % 模拟转变为数字域的截止频率

ws1=2*pi*fs1/fs;

delta_w=wp1-ws1; %过渡带宽

N=ceil*pi/delta_w)+1;N=N+rem(N,2);

window=boxcar(N+1)';

%N=ceil*pi/delta_w)+1;N=N+rem(N,2);

%window=bartlett(N+1)';

%N=ceil*pi/delta_w)+1;N=N+rem(N,2);

%window=hanning(N+1)';

%N=ceil*pi/delta_w)+1;N=N+rem(N,2);

%window=hamming(N+1)';

%N=ceil(11*pi/delta_w)+1;N=N+rem(N,2);

%window=blackman(N+1)';

%N=ceil(10*pi/delta_w)+1;N=N+rem(N,2);

%window=kaiser(N+1)';

Wn=(fp1+fs1)/fs;%理想 LPF的截止频率

[b,a]=fir1(N,Wn,'high',window);

[H,w]=freqz(b,1,512);

db=20*log10(abs(H));%db imagine

t=(0:200)/fs;

Signal=sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30); %输入信号

FilterSignal=filter(b,1,Signal);

subplot(2,2,1);

plot(w*fs/(2*pi),db);xlabel(' 频率 ');ylabel('db');title(' 滤波器的相对振幅 ');grid on; subplot(2,2,2);

plot(w*fs/(2*pi),angle(H));xlabel(' 频率 ');ylabel('angle(H)');title(' 滤波器相位响应 ');grid on;

subplot(2,2,3);

plot(t,Signal);xlabel('t');ylabel('Signal');title(' 滤波前的信号波形 ');grid on;

subplot(2,2,4);

plot(t,FilterSignal);xlabel('t');ylabel('FilterSignal');title(' 滤波后的信号波形 ');

grid on;

带通滤波器的设计

带通滤波器允许一定频段的信号通过,抑制低于或高于该频段的信号、干扰和噪声。程序如下:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %fp1=20;fp2=30;fs1=10;fs4=40;fs=100 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %[n,Wn,beta,ftype]=kaiserord([7 13 17 23],[0 1 0],[],100);

fp1=20; %带通通带模拟截止频率

fp2=30; %带通通带模拟截止频率

fs1=10;

fs2=40;

fs=100;

wp1=2*pi*fp1/fs;% 数字域的截止频率

wp2=2*pi*fp2/fs;

ws1=2*pi*fs1/fs;

ws2=2*pi*fs2/fs;

deltaw1=wp1-ws1;%Transition bandwidth

deltaw2=ws2-wp2;

delta_w=min(deltaw1,deltaw2);

N=ceil*pi/delta_w)+1;

window=boxcar(N+1);

%N=ceil*pi/delta_w)+1;

%window=bartlett(N+1);

%N=ceil*pi/delta_w)+1;

%window=hanning(N+1);

%N=ceil*pi/delta_w)+1;

%window=hamming(N+1);

%N=ceil(11*pi/delta_w)+1;

%window=blackman(N+1);

%N=ceil(10*pi/delta_w)+1;

%window=kaiser(N+1);

b=fir1(N,[wp1/pi wp2/pi],window);

[H,w]=freqz(b,1,512);

db=20*log(abs(H));

t=(0:200)/fs;

Signal=sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30);%

输入信号

FilterSignal=filter(b,1,Signal);

subplot(2,2,1);

plot(w*fs/(2*pi),db);xlabel(' 频率 ');ylabel('db');title(' 滤波器的相对振幅 ');grid on; subplot(2,2,2);

plot(w*fs/(2*pi),angle(H));xlabel(' 频率 ');ylabel('angle(H)');title(' 滤波器相位响应 ');grid on;

subplot(2,2,3);

plot(t,Signal);ylabel('Signal');title('滤波前的信号波形 ');grid on;

subplot(2,2,4);

plot(t,FilterSignal);xlabel('t');ylabel('FilterSignal');title(' 滤波后的信号波形 ');grid on;

带阻滤波器的设计

带阻滤波器抑制一定频段内的信号,允许该频段以外的信号通过。程序如下:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %fp1=10;fp2=40;fs1=20;fs2=30;fs=100; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %[n,Wn,beta,ftype]=kaiserord([7 13 17 23],[0 1 0],[],100);

fp1=10; %带通通带模拟截止频率

fp2=40; %带通通带模拟截止频率

fs1=20;

fs2=30;

fs=100;

wp1=2*pi*fp1/fs;

wp2=2*pi*fp2/fs;

ws1=2*pi*fs1/fs;% 数字域的截止频率

ws2=2*pi*fs2/fs;

delta1=ws1-wp1;

delta2=wp2-ws2;

delta_w=min(delta1,delta2); %过渡带宽

N=ceil*pi/delta_w)+1;N=N+rem(N,2);

window=boxcar(N+1);

%N=ceil*pi/delta_w)+1;N=N+rem(N,2);

%window=bartlett(N+1);

%N=ceil*pi/delta_w)+1;N=N+rem(N,2);

%window=hanning(N+1);

%N=ceil*pi/delta_w)+1;N=N+rem(N,2);

%window=hamming(N+1);

%N=ceil(11*pi/delta_w)+1;N=N+rem(N,2);

%window=blackman(N+1);

%N=ceil(10*pi/delta_w)+1;N=N+rem(N,2);

%window=kaiser(N+1);

b=fir1(N,[ws1/pi ws2/pi],'stop',window);

[H,w]=freqz(b,1,512);

db=20*log(abs(H));

t=(0:200)/fs;

Signal=sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30);%输入信号

FilterSignal=filter(b,1,Signal);

subplot(2,2,1);

plot(w*fs/(2*pi),db);xlabel(' 频率 ');ylabel('db');title(' 滤波器的相对振幅 ');grid on;

subplot(2,2,2);

plot(w*fs/(2*pi),angle(H));xlabel(' 频率 ');ylabel('angle(H)');title(' 滤波器相位响应 ');grid on;

subplot(2,2,3);

plot(t,Signal);ylabel('Signal');title('滤波前的信号波形 ');grid on;

subplot(2,2,4);

plot(t,FilterSignal);xlabel('t');ylabel('FilterSignal');title(' 滤波后的信号波形 ');grid on;

3 基于 MATLAB GUI 的 FIR 滤波器的仿真

FIR 数字滤波器设计所实现的任务

[6]中介绍了 GUI 设计工具应用的平台。应用 MATLAB GUI设计一个界面友好的仿真

软件,完成 GUI 界面的设计和回调函数的编写。它所能实现的任务有:

(1)、能够实现人机交换。

(2)、能够选择 Boxar、Bartlett 、Hanning、 Hamming、Blackman、 Kaiser窗设计

滤波器。

(3)、在 FilterType 中能够选择 Lowpass、 Highpass、 Bandpass、Bandstop。

(4)、在 DisplayType中能够选择 Linear、Logarithmic 两种不同的图形显示类型。

(5)、根据输入的数据计算并显示系统的最小阶数。

(6)、根据输入的参数,得到通带波动系数Rp、最小阻带衰减系数Rs。

FIR 数字滤波器界面设计

[7]中给出了 GUI 有以下四种启动方式:

(1)、在命令行窗口中输入guide;

(2)、点击 matlab 界面上面的菜单中的图标;

(3)、在 START菜单中选 MATLAB|GUIDE(GUI Builder);

(4)、在 MATLAB File菜单中选 New|GUI。

本设计用的第一种方式设计 GUI 界面。点击 guide 界面上方的 Run 按钮,会生成一个fig 文件,一个 m 文件,其中 fig 文件就是界面的图形, m 文件是界面的回调函数,

在 m 文件里完成回调函数的编写。设计如下图3-1 所示的图形主面板,共包括 4 个区域:

(1)图形区:用于显示各模块的仿真曲线。

(2)参数设区:由静态文本框和编辑框以及类型选择按纽组成, 实时的进行系统参数的设定和滤波器原型的选定。

(3)对象模型区:实现设计结果的实时刷新与显示。

(4)数据显示区:对应于图形显示结果。

图3-1

FIR 数字滤波器函数的编写

菜单 FilterType 的回调函数

在下拉菜单 FilterType 中选择滤波器类型

因为界面FilterType 默认的是lowpass 选项,所以GUI 初始化时把第二个临界频率控件隐藏起来, Fp2、Fs2控件的 visible 设置为 off 状态,选择带通或带阻滤波器时就把这几个控件显示出来,选择低通或者高通滤波器时,隐藏相应的带通和带阻的第二个临界频率,使其频率参数不能输入,程序和效果如图 3-2、3-3 所示:

function FilterType_Callback(hObject, eventdata, handles)

FilterType_value=get,'Value');%

if (FilterType_value==1)||(FilterType_value==2)

set,'visible','off');set,'visible','off');

set,'visible','off');set,'visible','off');%Fp2

set,'visible','off');set,'visible','off');%Fs2

else if (FilterType_value==3)||(FilterType_value==4)

set,'visible','on');set,'visible','on');

set,'visible','on');set,'visible','on');%Fp2

set,'visible','on');set,'visible','on');%Fs2

end

end

图 3-2 初始化或选择 lowpass、 highpass图3-3选择bandpass、bandstop

显示类型DispType 的函数

滤波器的幅度特性有两种方式显示,设计的程序如下:

if (DisplayTypeValue==1)%select Linear

axes;

plot(w*FsValue/(2*pi),abs(H));

grid on;

else%select Logarithmic

axes;

plot(w*FsValue/(2*pi),db);

grid on;%set(gca,'XTickMode','manual','XTick',[0,3,5,10]);

end

阶数 N 和最小阶数N 按钮的函数

在设计滤波器阶数时,在输入用户所希望的设计滤波器的阶数后系统自动计算并显示

最小阶数 N。为了防止用户自动输入该最小参数N,在文本框属性的: Enable 项设为off ,禁止输入参数。涉及的程序如下:N_Value=str2double(get,'String'));%读取 N 值

N=N_Value;

b=fir1(N-1,Wn,windows); %Fir1 to caculate the b set,'string',num2str(M));% 将得到

的滤波器的最小阶数显示在“最小阶数 N”框上。

文本编辑框的回调函数

参数输入时,在输入抽样频率 Fs 的前提下,判断滤波器通带临界频率( Fp1、Fp2)、滤波器阻带临界频率(Fs1、Fs2)的归一化频率wp1 、wp2、ws1、ws1 是否在[0,1] 之间,如不正确显示错误对话框,其程序和效果如图 3-4 所示:

function Fp1Value_Callback(hObject, eventdata, handles)

FsValue=str2double(get,'String'));

Fp1Value=str2double(get,'String'));

wp1=2*Fp1Value/FsValue;

if (wp1>=1)

errordlg('wp1=2*Fp1/Fs is not in [0,1],please check input number');

end

图3-4 输入参数错误信息框显示Fp2、

Fs1、Fs2的回调函数同理编程。

滤波器波形按钮的回调函数

根据输入的参数显示设计的滤波器的幅频特性和相频特性图,其程序如下:

function FilterWave_Callback(hObject, eventdata, handles)

FilterWave(handles)%点击该按钮后自动运行文件。

文本框Rp 和 Rs 的函数

系统根据输入的参数自动计算滤波器的通带波动和最小阻带衰减并显示在文本

框中,为了防止用户自动输入该两个参数,在文本框属性的: Enable 项设为 off,禁止输入参数。以下程序为低通滤波器部分,其他的详情请查看附录程序。

delta_w=2*pi/1000;%why is 1000

wpi=floor(wp1/delta_w)+1; Rp=-min(db(1:1:wpi));%对 wp1/delta_w 取最近的整数%Passband Ripple实际通带波动

set,'string',num2str(Rp));%display Passband Ripple

wsi=floor(ws1/delta_w)+1;%对ws1/delta_w取最近的整数Rs=-round(max(db(wsi:1:501))); %MinStopband attenuation 最小阻带衰减

set,'string',num2str(Rs));%display MinStopband attenuation

产生信号按钮的回调函数

回调函数程序如下:

fs=100;

t=(0:200)/fs;

Signal=sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30); %????????

axes;

plot(t,Signal);

grid on;

滤波后的信号按钮的回调函数

function FilterSignal_Callback(hObject, eventdata, handles)

FilterSignal(handles)

当点击该按钮后运行程序,该程序在的基础上加上了产生信号的程序滤波后显示

在界面上。

按钮 Quit 的回调函数

退出滤波器设计窗口,其程序如下:

function Quit_Callback(hObject, eventdata, handles)

close

总程序的编写

[7]给出了附件 1、附件 2 的程序,见附件

4实验结果与显示

1运行和结果显示

在图形界面下 ,选择要设计的滤波器选项,编辑框中输人要求设计的数字滤波器的性

能指标 , 选择“滤波器波形”命令按钮 , 出现响应类型的滤波器的图形。

2显示不同窗函数的显示结果

5结束语

GUI 是实现人机交互的友好界面,具有强大的功能, [8] 中说明了 GUI 可以完成许多复杂的程序模块。对于 GUI 在数字信号处理中的应用中,数字信号处理这门学科的知识是基础,要掌握数字信号处理的相关知识的原理后,并用代码来实现,才能很好地结合MATLAB进行 GUI 编程。

6感谢

本文从资料的搜集、文章的修改到最后的定稿,自始至终都得到了导师魏武老师

的悉心指导,很感谢魏武老师对我的毕业设计给予时间宽限上的支持,在毕业设计中给予无私的指导与帮助才使我能够在有限的时间里完成了毕业设计任务。同时感谢在我完成毕业设计过程中给予我关心以及帮助的同学们。

7参考文献

[1]张志田、何其文 .基于窗函数法的 FIR 数字滤波器的设计 [J].湖南科技学院学

报.2007 年第 9 期

[2]张登奇、李望移 .基于 MATLAB 的 FIR 数字滤波器设计 [J].计算机时代 .2007 年第11 期

[3]用 matlab 实现 fir 滤波器的设计 [J]. 王艳芬等 .数字信号处理原理及实现 [M]. 北京.清华大学出版社, 2008

[5]曹弋 .MATLAB教程及实训 [M]. 北京 .机械工业出版社,

[6]基于 MATLAB_GUI的滤波器设计软件 [J].

陈垚光等 .精通 MATLAB GUI设计 .北京 .电子工业出版社,

[8]飞思科技产品研发中心 .MATLAB 7 辅助信号处理技术与应用 .北京 .电子工业出版社, 2005

附录

实验六、用窗函数法设计FIR滤波器

实验六 用窗函数法设计 FIR 滤波器 一、实验目的 (1) 掌握用窗函数法设计FIR 数字滤波器的原理和方法。 (2) 熟悉线性相位FIR 数字滤波器特性。 (3) 了解各种窗函数对滤波特性的影响。 二、实验原理 滤波器的理想频率响应函数为H d (e j ω ),则其对应的单位脉冲响应为: h d (n) = ?-π π ωωωπ d e e H n j j d )(21 窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼h d (n)。由于h d (n)往往是无 限长序列,且是非因果的,所以用窗函数。w(n)将h d (n)截断,并进行加权处理: h(n) = h d (n) w(n) h(n)就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数H(e j ω )为: H(e j ω ) = ∑-=-1 )(N n n j e n h ω 如果要求线性相位特性,则h (n )还必须满足: )1()(n N h n h --±= 可根据具体情况选择h(n)的长度及对称性。 用窗函数法设计的滤波器性能取决于窗函数w(n)的类型及窗口长度N 的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。 三、实验步骤 1. 写出理想低通滤波器的传输函数和单位脉冲响应。 2. 写出用四种窗函数设计的滤波器的单位脉冲响应。 3. 用窗函数法设计一个线性相位FIR 低通滤波器,用理想低通滤波器作为逼近滤波器,截止频率ωc =π/4 rad ,选择窗函数的长度N =15,33两种情况。要求在两种窗口长度下,分别求出h(n),打印出相应的幅频特性和相频特性曲线,观察3dB 带宽和阻带衰减; 4 用其它窗函数(汉宁窗(升余弦窗)、哈明窗(改进的升余弦窗)、布莱克曼窗) 设计该滤波器,要求同1;比较四种窗函数对滤波器特性的影响。 四、实验用MATLAB 函数 可以调用MATLAB 工具箱函数fir1实现本实验所要求的线性相位FIR-DF 的设计,调用一维快速傅立叶变换函数fft 来计算滤波器的频率响应函数。

fir低通滤波器设计(完整版)

电子科技大学信息与软件工程学院学院标准实验报告 (实验)课程名称数字信号处理 电子科技大学教务处制表

电 子 科 技 大 学 实 验 报 告 学生姓名: 学 号: 指导教师: 实验地点: 实验时间:14-18 一、实验室名称:计算机学院机房 二、实验项目名称:fir 低通滤波器的设计 三、实验学时: 四、实验原理: 1. FIR 滤波器 FIR 滤波器是指在有限范围内系统的单位脉冲响应h[k]仅有非零值的滤波器。M 阶FIR 滤波器的系统函数H(z)为 ()[]M k k H z h k z -==∑ 其中H(z)是k z -的M 阶多项式,在有限的z 平面内H(z)有M 个零点,在z 平面原点z=0有M 个极点. FIR 滤波器的频率响应 ()j H e Ω 为 0 ()[]M j jk k H e h k e Ω -Ω ==∑ 它的另外一种表示方法为 () ()()j j j H e H e e φΩΩΩ=

其中 () j H e Ω和()φΩ分别为系统的幅度响应和相位响应。 若系统的相位响应()φΩ满足下面的条件 ()φαΩ=-Ω 即系统的群延迟是一个与Ω没有关系的常数α,称为系统H(z)具有严格线性相位。由于严格线性相位条件在数学层面上处理起来较为困难,因此在FIR 滤波器设计中一般使用广义线性相位。 如果一个离散系统的频率响应 ()j H e Ω 可以表示为 ()()()j j H e A e αβΩ-Ω+=Ω 其中α和β是与Ω无关联的常数,()A Ω是可正可负的实函数,则称系统是广义线性相位的。 如果M 阶FIR 滤波器的单位脉冲响应h[k]是实数,则可以证明系统是线性相位的充要条件为 [][]h k h M k =±- 当h[k]满足h[k]=h[M-k],称h[k]偶对称。当h[k]满足h[k]=-h[M-k],称h[k]奇对称。按阶数h[k]又可分为M 奇数和M 偶数,所以线性相位的FIR 滤波器可以有四种类型。 2. 窗函数法设计FIR 滤波器 窗函数设计法又称为傅里叶级数法。这种方法首先给出()j d H e Ω, ()j d H e Ω 表示要逼近的理想滤波器的频率响应,则由IDTFT 可得出滤波器的单位脉冲响应为 1 []()2j jk d d h k H e e d π π π ΩΩ-= Ω ? 由于是理想滤波器,故 []d h k 是无限长序列。但是我们所要设计的FIR 滤波 器,其h[k]是有限长的。为了能用FIR 滤波器近似理想滤波器,需将理想滤波器的无线长单位脉冲响应 []d h k 分别从左右进行截断。 当截断后的单位脉冲响应 []d h k 不是因果系统的时候,可将其右移从而获得因果的FIR 滤波器。

窗函数设计FIR滤波器

1.课题描述......................................................... (1) 2.题目及要求......................................................... (1) 3.设计原理......................................................... (1) 3.1 滤波器的分类......................................................... (1) 3.2 数字滤波器工作原理 (1) 3.3 FIR滤波器的设计指 标 (3) 3.4窗函数设计FIR滤波器的设计原 理 (5) 3.5用窗函数设计滤波器的步 骤 (10) 3.6实验所用MATLAB函数说 数 (11)

4设计容......................................................... (12) 4.1用MATLAB编程实 现 (12) 4.2结果分析......................................................... (15) 5总结......................................................... (17) 6参考文献......................................................... (17)

1.课题描述 数字滤波器是指输入、输出均为数字信号,通过数值运算处理改变输入信号所含频率成分的相对比例,或者滤除某些频率成分的数字器件或程序。因此,数字滤波的概念和模拟滤波相同,只是信号的形成和实现滤波方法不同。正因为数字滤波通过数值运算实现滤波,所以数字滤波处理精度高、稳定、体积小、质量轻、灵活、不存在阻抗匹配问题,可以实验模拟滤波器无法实现的特殊滤波功能。本课题使用MATLAB信号处理箱和运用窗函数的FIR滤波器去除无用信号。2.题目及要求 产生包含三个正弦成分(120hz,80hz,20hz)的信号,设计基于窗函数的FIR滤波器去除120hz,20hz成分,保留80hz信号。通带允许的最大衰减为0.25dB,阻带应达到的最小衰减为20dB。滤波器的采样频率为500Hz。 3.设计原理 3.1滤波器的分类 从功能上可以分为:低通、高通、带通和带阻。 从处理信号分为:经典滤波器和现代滤波器。 从设计方法上分为:切比雪夫和巴特沃斯 从实现方法上分为:FIR和IIR 3.2数字滤波器的工作原理 数字滤波器是一个离散时间系统,输入x(n)是一个时间序列,输出y(n)也是一个时间序列。如数字滤波器的系统函数为H(Z),其脉

fir低通滤波器设计报告

滤波器设计原理 本文将介绍数字滤波器的设计基础及用窗函数法设计FIR 滤波器的方法,运用MATLAB 语言实现了低通滤波器的设计以及用CCS软件进行滤波效果的观察。读取语音文件,并加入一定的随机噪声,最后使用窗函数滤波法进行语音滤波,将加噪后的语音文件转换为.dat文件使其能和ccs软件链接,输出个阶段的时域和频域波形。 根据数字滤波器冲激响应函数的时域特性。可将数字滤波器分为两种,即无限长冲激响应( IIR) 滤波器和有限长冲激响应(FIR) 滤波器。IIR 滤波器的特征是具有无限持续时间的冲激响应;FIR 滤波器冲激响应只能延续一定时间。其中FIR 滤波器很容易实现严格的线性相位,使信号经过处理后不产生相位失真,舍入误差小,稳定等优点。能够设计具有优良特性的多带通滤波器、微分器和希尔伯特变换器,所以在数字系统、多媒体系统中获得极其广泛的应用。FIR数字滤波器的设计方法有多种,如窗函数设计法、最优化设计和频率取样法等等。而随着MATLAB软件尤其是MATLAB 的信号处理工具箱和Simulink 仿真工具的不断完善,不仅数字滤波器的计算机辅助设计有了可能而且还可以使设计达到最优化。 FIR滤波器的窗函数法的设计 采用汉明窗设计低通FIR滤波器 使用b=fir1(n,Wn)可得到低通滤波器。其中,0Wn1,Wn=1相当于0.5。其语法格式为 b=fir1(n,Wn); 采用:b=fir1(25, 0.25); 得到归一化系数:

或者在命令行输入fdatool进入滤波器的图形设置界面,如下图所示 得到系数(并没有归一化) const int BL = 26; const int16_T B[26] = { -26, 33, 126, 207, 138, -212, -757, -1096, -652, 950, 3513, 6212, 7948, 7948, 6212, 3513, 950, -652, -1096, -757, -212, 138, 207, 126, 33, -26 }; FIR滤波器的设计(Matlab) 技术指标为:采用25阶低通滤波器,汉明窗(Hamming Window)函数,截止频率为1000Hz,采样频率为8000Hz,增益40db。 下面的程序功能是:读取语音文件,并加入一定的随机噪声,最后使用窗函数滤波法进行语音滤波,将加噪后的语音文件转换为.dat文件使其能和ccs软件链接,输出个阶段的时域和频域波形。

FIR滤波器窗函数设计

课题名称:FIR滤波器窗函数设计

FlR 滤波器窗函数设计 引言: 数字滤波器(DigitalFilter )是指输入、输出都是离散时间信号,通过一定运算 关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。 在许 多数字信号处理系统中,如图像信号处理等,有限冲激响应( FIR )滤波器是最 常用的组件之一,它完成信号预调、频带选择和滤波等功能。 FIR 滤波器虽然在 截止频率的边沿陡峭性能上不及无限冲激响应 (IIR )滤波器,但是却具有严格的 线性相位特性,稳定性好,能设计成多通带(或多阻带)滤波器组,所以能够在 数字信号处理领域得到广泛的应用。 数字滤波器的分类 1) 根据系统响应函数的时间特性分为两类 1. FIR (Finite ImPUISe Response 数字滤波器网络 M y[n] b k x[n k] k0 特点:不存在反馈支路,其单位 冲激响应为有限长 2. IIR ( Infinite ImPUISe Response 数字滤波器网络 特点:存在反馈支路,即信号流图中存在环路,其单位冲激响应为无限长 (2) FIR 数字滤波器IIR 数字滤波器的区别 1. 从性能上来说,IlR 滤波器传递函数包括零点和极点两组可调因素, 对极点的 惟一限制是在单位圆内。因此可用较低的阶数获得高的选择性,所用的存储 单元 少,计算量小,效率高。但是这个高效率是以相位的非线性为代价的。 选择性越好,则相位非线性越严重。FIR 滤波器传递函数的极点固定在原点, 是不能动的,它只能靠改变零点位置来改变它的性能。所以要达到高的选择 性,必须用较高的阶数;对于同样的滤波器设计指标, FIR 滤波器所要求的 阶数可能比IIR 滤波器高5-10倍,但是FIR 滤波器可以得到严格的线性相位。 2. 从结构上看,IIR 滤波器必须采用递归结构,极点位置必须在单位圆内,否则 系统将 不稳定。相反,FIR 滤波器只要采用非递归结构,不论在理论上还是 在实际的有限精度运算中都不存在稳定性问题, 因此造成的频率特性误差也 较小。此外FIR 滤波器可以采用快速傅里叶变换算法, 在相同阶数的条件下, 运算速度可以快得多。 3. 从设计工具看,IIR 滤波器可以借助于模拟滤波器的成果,因此一般都有有效 的圭寸闭形式的设计公式可供准确计算,计算工作量比较小,对计算工具的要 求不高。 hn b n , 0 n M 0, 其他 n y[n] b k x[n k] k0 a k y[n k1 k]

FIR数字滤波器设计与使用

实验报告 课程名称:数字信号处理指导老师:刘英成绩:_________________实验名称: FIR数字滤波器设计与使用同组学生姓名:__________ 一、实验目的和要求 设计和应用FIR低通滤波器。掌握FIR数字滤波器的窗函数设计法,了解设计参数(窗型、窗长)的影响。 二、实验内容和步骤 编写MATLAB程序,完成以下工作。 2-1 设计两个FIR低通滤波器,截止频率 C =0.5。 (1)用矩形窗,窗长N=41。得出第一个滤波器的单位抽样响应序列h 1(n)。记下h 1 (n) 的各个抽样值,显示h 1 (n)的图形(用stem(.))。求出该滤波器的频率响应(的N 个抽样)H 1(k),显示|H 1 (k)|的图形(用plot(.))。 (2)用汉明窗,窗长N=41。得出第二个滤波器的单位抽样响应序列h 2(n)。记下h 2 (n) 的各个抽样值,显示h 2(n)的图形。求出滤波器的频率响应H 2 (k),显示|H 2 (k)|的 图形。 (3)由图形,比较h 1(n)与h 2 (n)的差异,|H 1 (k)|与|H 2 (k)|的差异。 2-2 产生长度为200点、均值为零的随机信号序列x(n)(用rand(1,200)0.5)。显示x(n)。 求出并显示其幅度谱|X(k)|,观察特征。 2-3 滤波 (1)将x(n)作为输入,经过第一个滤波器后的输出序列记为y 1(n),其幅度谱记为|Y 1 (k)|。 显示|X(k)|与|Y 1 (k)|,讨论滤波前后信号的频谱特征。 (2)将x(n)作为输入,经过第二个滤波器后的输出序列记为y 2(n),其幅度谱记为|Y 2 (k)|。 比较|Y 1(k)|与|Y 2 (k)|的图形,讨论不同的窗函数设计出的滤波器的滤波效果。 2-4 设计第三个FIR低通滤波器,截止频率 C =0.5。用矩形窗,窗长N=127。用它对x(n)进行滤波。显示输出信号y

实验四 窗函数法设计FIR数字滤波器

实验四 窗函数法设计FIR 数字滤波器 一、实验目的 1、掌握窗函数法设计FIR 数字滤波器的原理及具体方法。 2、掌握频率取样法设计FIR 数字滤波器的原理和基本方法。 3、学习利用窗函数法和频率取样法设计低通、带通、高通、带阻数字滤波器。 二、实验环境 计算机、MATLAB 软件 三、实验基础理论 窗函数设计FIR 滤波器 1.基本原理 窗函数设计法的基本思想为,首先选择一个适当的理想的滤波器()j d H e ω ,然后 用窗函数截取它的单位脉冲响应(n)d h ,得到线性相位和因果的FIR 滤波器。这种方法的重点是选择一个合适的窗函数和理想滤波器,使设计的滤波器的单位脉冲响应逼近理想滤波器的单位脉冲响应。 2.设计步骤 (1)给定理想滤波器的频率响应()j d H e ω ,在通带上具有单位增益和线性相位, 在阻带上具有零响应。一个带宽为()c c ωωπ<的低通滤波器由下式给定: π ωωωωωωω≤<=≤=-||,0)(,||,)(c j d c ja j d e H e e H 其中α为采样延迟,其作用是为了得到一个因果系统。 (2)确定这个滤波器的单位脉冲响应 ) ()) (sin()(a n a n n h c d --= πω 为了得到一个(n)h 长度为N 的因果的线性相位FIR 滤波器,我们令 2 1 -= N a (3)用窗函数截取(n)d h 得到所设计FIR 数字滤波器:)()()(n R n h n h N d = 3.窗函数的选择 常用的窗函数有矩形(Rectangular )窗,汉宁(Hanning )窗,海明(Hamming )窗、布莱克曼(Blackman )窗、凯瑟(Kaiser )窗等 表4-1 MATLAB 中产生窗函数的命令

用窗函数法设计FIR数字滤波器

用窗函数法设计FIR 数字滤波器 一、实验目的 1.掌握用窗函数法设计FIR 数字滤波器的原理和方法。 2.熟悉线性相位FIR 数字滤波器特征。 3.了解各种窗函数对滤波特性的影响。 二、实验仪器 微型计算机 matlab 软件 三、实验原理和方法 如果所希望的滤波器的理想频率响应函数为 )(ωj d e H ,则其对应的单位脉冲响应为 )(n h d =π21 ωωωππd e e H j j d )(?- (2-1) 窗函数设计法的基本原理是用有限长单位脉冲响应序列)(n h 逼近)(n h d 。由于)(n h d 往往是无限长序列,且是非因果的,所以用窗函数)(n ω将)(n h d 截断,并进行加权处理,得到: )(n h =)(n h d )(n ω (2-2) )(n h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列, 其频率响应函数)(ωj d e H 为: )(ωj d e H =∑-=-1 0)(N n j e n h ω (2-3) 式中,N 为所选窗函数)(n ω的长度。 由第七章可知,用窗函数法设计的滤波器性能取决于窗函数)(n ω的类型及窗口长度N 的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见第七章。 这样选定窗函数类型和长度N 后,求出单位脉冲响应)(n h =)(n h d ·)(n ω,并按式(2-3)求出)(ωj e H 。)(ωj e H 是否满足要求,要进行验算。一般在)(n h 尾部加零使长度满足于2的整数次幂,以便用FFT 计算)(ωj e H 。如果要观察细节,补零点数增多即可。如果)(ωj e H 不满足要求,则要重新选择窗函数类型和长度N ,再次验算,直至满足要求。 如果要求线性相位特性,则)(n h 还必须满足 )1()(n N h n h --±= (2-4) 根据上式中的正负号和长度N 的奇偶性又将线性相位FIR 滤波器分成四类。要根据设计的滤波特性正确选择其中一类。例如,要设计线性低通特征,可选择)1()(n N h n h --=一类,而不能选)1()(n N h n h ---=一类。 四、实验内容

基于matlab的FIR低通高通带通带阻滤波器设计

基于matlab的FIR低通-高通-带通-带阻滤波器设计

————————————————————————————————作者:————————————————————————————————日期:

北京师范大学 课程设计报告 课程名称: DSP 设计名称:FIR 低通、高通带通和带阻数字滤波器的设计姓名: 学号: 班级: 指导教师: 起止日期: 课程设计任务书

学生班级: 学生姓名: 学号: 设计名称: FIR 低通、高通带通和带阻数字滤波器的设计 起止日期: 指导教师: 设计目标: 1、采用Kaiser 窗设计一个低通FIR 滤波器 要求: 采样频率为8kHz ; 通带:0Hz~1kHz ,带内波动小于5%; 阻带:1.5kHz ,带内最小衰减:Rs=40dB 。 2、采用hamming 窗设计一个高通FIR 滤波器 要求: 通带截至频率wp=rad π6.0, 阻带截止频率ws=rad π4.0, 通带最大衰减dB p 25.0=α,阻带最小衰减dB s 50=α 3、采用hamming 设计一个带通滤波器 低端阻带截止频率 wls = 0.2*pi ; 低端通带截止频率 wlp = 0.35*pi ; 高端通带截止频率 whp = 0.65*pi ; 高端阻带截止频率 whs = 0.8*pi ; 4、采用Hamming 窗设计一个带阻FIR 滤波器 要求: 通带:0.35pi~0.65pi ,带内最小衰减Rs=50dB ; 阻带:0~0.2pi 和0.8pi~pi ,带内最大衰减:Rp=1dB 。

FIR 低通、高通带通和带阻数字滤波器的设计 一、 设计目的和意义 1、熟练掌握使用窗函数的设计滤波器的方法,学会设计低通、带通、带阻滤波器。 2、通过对滤波器的设计,了解几种窗函数的性能,学会针对不同的指标选择不同的窗函数。 二、 设计原理 一般,设计线性相位FIR 数字滤波器采用窗函数法或频率抽样法,本设计采用窗函数法,分别采用海明窗和凯泽窗设计带通、带阻和低通。 如果所希望的滤波器的理想频率响应函数为)(jw d e H ,如理想的低通,由信号系统的知识知道,在时域系统的冲击响应h d (n)将是无限长的,如图2、图3所示。 H d (w) -w c w c 图2 图3 若时域响应是无限长的,则不可能实现,因此需要对其截断,即设计一个FIR 滤波器频率响应∑-=-=1 0)()(N n jwn jw e n h e H 来逼近)(jw d e H ,即用一个窗函数w(n)来 截断h d (n),如式3所示: )()()(n w n h n h d = (式1)。 最简单的截断方法是矩形窗,实际操作中,直接取h d (n)的主要数据即可。 )(n h 作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数为: ∑-=-=1 0)()(N n jwn jw e n h e H (式2) 令jw e z =,则 ∑-=-=1 0)()(N n n z n h z H (式3), 式中,N 为所选窗函数)(n w 的长度。

窗函数法设计FIR数字滤波器

数字信号处理实验报告 ---实验4窗函数法设计FIR数字滤波器 一、实验目的 1.了解常用的几种窗函数,能正确选择适当的窗函数进行滤波器设计; 2.掌握窗函数法设计数字低通滤波器。 二、实验原理 1.常用的窗函数: 矩形窗函数为boxcar和rectwin,调用格式: w= boxcar(N) w= rectwin(N) 其中N是窗函数的长度,返回值w是一个N阶的向量。 三角窗函数为triang,调用格式: w= triang(N) 汉宁窗函数为hann,调用格式: w= hann(N) 海明窗函数为hamming,调用格式: w= hamming(N) 2.各个窗函数的性能比较

三、实验内容 题一:生成四种窗函数:矩形窗、三角窗、汉宁窗、海明窗,并观察其频率响应。 题二:根据下列技术指标,设计一个FIR数字低通滤波器:wp=0.2π,ws=0.4π,ap=0.25dB, as=50dB,选择一个适当的窗函数,确定单位冲激响应,绘出所设计的滤波器的幅度响应。 四、上机程序及运行结果 题一:n=30; %矩形窗及其频响 window1=rectwin(n); [h1,w1]=freqz(window1,1); subplot(4,2,1); stem(window1);title('矩形窗');subplot(4,2,2); plot(w1/pi,20*log(abs(h1))/abs(h1(1)));title('矩形窗频响'); %三角窗及其频响 window2=triang(n); [h2,w2]=freqz(window2,1); subplot(4,2,3);stem(window2);title('三角窗'); subplot(4,2,4); plot(w2/pi,20*log(abs(h2))/abs(h2(1)));title('三角窗频响'); %汉宁窗及其频响 window3=hann(n); [h3,w3]=freqz(window3,1); subplot(4,2,5);stem(window3);title('汉宁窗'); subplot(4,2,6); plot(w3/pi,20*log(abs(h3))/abs(h3(1)));title('汉宁窗频响'); %海明窗频响 window4=hamming(n);

FIR低通数字滤波器的设计要点

《DSP技术与应用》课程设计报告 课题名称:基于DSP Builder的FIR数字滤波器的设计与实现 学院:电子信息工程学院 班级:11级电信本01班 学号: 姓名:

题目基于DSP Builder的FIR数字滤波器的设计与实现 摘要 FIR数字滤波器是数字信号处理的一个重要组成部分,由于FIR数字滤波器具有严格的线性相位,因此在信息的采集和处理过程中得到了广泛的应用。本文介绍了FIR数字滤波器的概念和线性相位的条件,分析了窗函数法、频率采样法和等波纹逼近法设计FIR滤波器的思路和流程。在分析三种设计方法原理的基础上,借助Matlab仿真软件工具箱中的fir1、fir2和remez子函数分别实现窗函数法、频率采样法和等波纹逼近法设计FIR滤波器。然后检验滤波器的滤波效果,采用一段音频进行加噪声然后用滤波器滤,对比三段音频效果进而对滤波器的滤波效果进行检验。仿真结果表明,在相频特性上,三种方法设计的FIR滤波器在通带内都具有线性相位;在幅频特性上,相比窗函数法和频率采样法,等波纹逼近法设计FIR滤波器的边界频率精确,通带和阻带衰减控制。

Abstract FIR digital filter is an important part of digital signal processing, the FIR digital filter with linear phase, so it has been widely applied in the collection and processing of information in the course of. This paper introduces the concept of FIR digital filter with linear phase conditions, analysis of the window function method and frequency sampling method and the ripple approximation method of FIR filter design ideas and processes. Based on analyzing the principle of three kinds of design methods, by means of fir1, fir2 and Remez function of Matlab simulation software in the Toolbox window function method and frequency sampling method and respectively realize equiripple approximation method to design FIR filter. Then test the filtering effect of the filter, using an audio add noise and then filter, test three audio effects and comparison of filter filtering effect. Simulation results show that the phase frequency characteristic, three design methods of FIR filter with linear phase are in the pass band; the amplitude frequency characteristics, compared with the window function method and frequency sampling method, equiripple approximation method Design of FIR filter with accurate boundary frequency, the passband and stopband attenuation control.

窗函数法设计FIR数字滤波器

数字信号处理实验报告---实验4窗函数法设计FIR数字滤波器

一、实验目的 1.掌握用窗函数法、频率采样法设计FIR数字滤波器的原理及方法,熟悉相应的计算机编程。 2.熟悉线性相位FIR数字滤波器的幅频特性和相频特性。 3.了解各种不同窗函数对滤波器性能的影响。 二、实验原理 1.常用的窗函数: 矩形窗函数为boxcar和rectwin,调用格式: w= boxcar(N)w= rectwin(N) 其中N是窗函数的长度,返回值w是一个N阶的向量。 三角窗函数为triang,调用格式: w= triang(N) 汉宁窗函数为hann,调用格式: w= hann(N) 汉明窗函数为hamming,调用格式: w= hamming(N) 三、设计指标 (1)矩形窗设计线性相位低通滤波器(参数自主设定)。 (2)改用汉宁窗,设计参数相同的低通滤波器。 四、上机程序及运行结果 生成四种窗函数:矩形窗、三角窗、汉宁窗、海明窗,并观察其频率响应。 n=30; %矩形窗及其频响 window1=rectwin(n); [h1,w1]=freqz(window1,1); subplot(4,2,1);

stem(window1);title('矩形窗');subplot(4,2,2); plot(w1/pi,20*log(abs(h1))/abs(h1(1)));title('矩形窗频响'); %三角窗及其频响 window2=triang(n); [h2,w2]=freqz(window2,1); subplot(4,2,3);stem(window2);title('三角窗'); subplot(4,2,4); plot(w2/pi,20*log(abs(h2))/abs(h2(1)));title('三角窗频响'); %汉宁窗及其频响 window3=hann(n); [h3,w3]=freqz(window3,1); subplot(4,2,5);stem(window3);title('汉宁窗'); subplot(4,2,6); plot(w3/pi,20*log(abs(h3))/abs(h3(1)));title('汉宁窗频响'); %汉明窗频响 window4=hamming(n); [h4,w4]=freqz(window4,1); subplot(4,2,7);stem(window4);title('汉明窗'); subplot(4,2,8); plot(w4/pi,20*log(abs(h4))/abs(h4(1)));title('汉明窗频响');

用窗函数法设计FIR数字低通滤波器要点

河北科技大学课程设计报告 学生姓名:学号: 专业班级: 课程名称: 学年学期 指导教师: 20 年月

课程设计成绩评定表 学生姓名学号成绩 专业班级起止时间 设计题目 指 导 教 师 评 指导教师: 语 年月日

目录 1. 窗函数设计低通滤波器 1.1设计目的 (1) 1.2设计原理推导与计算 (1) 1.3设计内容与要求 (2) 1.4设计源程序与运行结果 (3) 1.5思考题 (10) 1.6心得体会 (14) 参考文献 (15)

1.窗函数设计低通滤波器 1.1设计目的 1. 熟悉设计线性相位数字滤波器的一般步骤。 2. 掌握用窗函数法设计FIR 数字滤波器的原理和方法。 3. 熟悉各种窗函数的作用以及各种窗函数对滤波器特性的影响。 4. 学会根据指标要求选择合适的窗函数。 1.2设计原理推导与计算 如果所希望的滤波器的理想的频率响应函数为() ωj d e H ,则其对应的单位脉冲响应为 ()() ωπ ωωπ π d e e H n h j j d d ?- = 21 (4.1) 窗函数设计法的基本原理是设计设计低通FIR 数字滤波器时,一般以理想低通滤波特性为逼近函数() ωj e H ,即 () ?????≤<≤=-π ωωωωωαω c c j j d ,, e e H 0,其中21-=N α ()() ()[]() a n a n d e e d e e H n h c j j j j d d c c --= = = ??- -- πωωπ ωπ ωαωω ωαω π π ω sin 21 21 用有限长单位脉冲响应序列()n h 逼近()n h d 。由于()n h d 往往是无限长序列,而且是非因果的,所以用窗函数()n ω将()n h d 截断,并进行加权处理,得到: ()()()n n h n h d ω= (4.2) ()n h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函 数() ωj e H 为 ()()n j N n j e n h e H ωω ∑-==1 (4.3) 式中,N 为所选窗函数()n ω的长度。 用窗函数法设计的滤波器性能取决于窗函数()n ω的类型及窗口长度N 的取

FIR滤波器的窗函数设计法及性能比较

MATLAB课程设计报告 学院:地球物理与石油资源学院 班级: 姓名: 学号: 班内编号: 指导教师: 完成日期: 2013年6月3日

一、 题目 FIR 滤波器的窗函数设计法及性能比较 1. FIR 滤波器简介 数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR )滤波器和有限冲激响应(FIR )滤波器。与IIR 滤波器相比,FIR 滤波器的主要特点为: a. 线性相位;b.非递归运算。 2. FIR 滤波器的设计 FIR 滤波器的设计方法主要有三种:a.窗函数设计法;b.频率抽样发;c.最小平法抽样法; 这里我主要讨论在MA TLAB 环境下通过调用信号分析与处理工具箱的几类窗函数来设计滤波器并分析与比较其性能。窗函数法设计FIR 滤波器的一般步骤如下: a. 根据实际问题确定要设计的滤波器类型; b. 根据给定的技术指标,确定期望滤波器的理想频率特性; c. 求期望滤波器的单位脉冲响应; d. 求数字滤波器的单位脉冲响应; e. 应用。 常用的窗函数有 同。 时与布莱克曼窗结果相当时与海明窗结果相同; 时与矩形窗一致;当当885.84414.50]!)2/([1)(120===+=∑∞ =x x x m x x I m m 3.窗函数的选择标准 1. 较低的旁瓣幅度,尤其是第一旁瓣; 2. 旁瓣幅度要下降得快,以利于增加阻带衰减; 3. 主瓣宽度要窄,这样滤波器过渡带较窄。 函数,可定义为是零阶式中Bessel x I n R I N n I n w window Kaiser n R N n N n n w window Balckm an n R N n n w window Ham m ing n R N n n w window Hanning N N N N )()5.2.9()(]) (})]1/(2[1{[)()4()4.2.9()()]14cos(08.0)12cos( 5.042.0[)()3()3.2.9()()]12cos( 46.054.0[)()2() 2.2.9()()]1cos( 5.05.0[)()1(0020ββππππ--=-+--=--=--=

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

实验五: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;

窗函数设计FIR低通滤波器汇总

西南科技大学 课程设计报告 课程名称:数字信号处理与通信原理课程设计 设计名称: FIR数字滤波器分析与应用 姓名: 学号: 班级: 指导教师: 起止日期: 6.26 – 7.6

课程设计任务书 学生班级:通信学生姓名:学号: 设计名称:窗函数设计FIR低通滤波器 起止日期: 6.26~7.6 指导教师: 课程设计学生日志

课程设计考勤表 课程设计评语表

窗函数设计FIR 低通滤波器 一、设计目的和意义: 1、目的 (1) 掌握用窗函数法设计FIR 数字滤波器的原理和方法。 (2) 熟悉线性相位FIR 数字滤波器特性。 (3) 了解各个窗函数对滤波器特性的影响。 2、意义:有限长单位冲激响应数字滤波器可以做成具有严格的线性相位,同时又可以具 有任意的幅度特性。滤波器的性能只由窗函数的形状决定。 二、设计原理: 假如题目所要求设计的滤波器的频率响应为H d (e ωj ),则要设计一个FIR 滤波器频应为 H(e ω j )= ∑=-1 -N 0 n j )(n e n h ω ()1 来逼近。但是设计却是在时域进行的,所以用傅氏反变换导出h d (n): h d (n) = ωπ π π ωωd e e H n j j d ? -)(21 ()2 但是要求设计的FIR 滤波器,它的h(n)是有限长的,但是h d (n)却是无限长的,所以要用一个有限长度的窗函数)(n ω来截取h d (n),即 h(n)= )(n ωh d (n) ()3 h(n)就是实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数即为()1式,其中N 就是所选择的窗函数)(n ω的长度。 本课程设计的要求是利用矩形窗,海宁窗,汉明窗各设计一个FIR 低通滤波器。因此 首先对这三个窗函数进行简要说明。 1.矩形窗:

FIR低通数字滤波器的设计要点

FIR低通数字滤波器的设计要点 《DSP技术与应用》 课程设计报告 课题名称:基于DSP Builder的FIR数字滤波器的设计与实现 学院:电子信息工程学院 班级: 11级电信本01班 学号: 姓名: 题目基于DSP Builder的FIR数字滤波器的设计与实现 摘要 FIR数字滤波器是数字信号处理的一个重要组成部分,于FIR数字滤波器具有严格的线性相位,因此在信息的采集和处理过程中得到了广泛的应用。介绍了FIR数字滤波器的概念和线性相位的条件,分析了窗函数法、频率采样法和等波纹逼近法设计FIR滤波器的思路和流程。在分析三种设计方法原理的基础上,借助Matlab仿真软件工具箱中的fir1、fir2和remez子函数分别实现窗函数法、频率采样法和等波纹逼近法设计FIR滤波器。然后检验滤波器的滤波效果,采用一段音频进行加噪声然后用滤波器滤,对比三段音频效果

进而对滤波器的滤波效果进行检验。仿真结果表明,在相频特性上,三种方法设计的FIR滤波器在通带内都具有线性相位;在幅频特性上,相比窗函数法和频率采样法,等波纹逼近法设计FIR滤波器的边界频率精确,通带和阻带衰减控制。 Abstract FIR digital filter is an important part of digital signal processing, the FIR digital filter with linear phase, so it has been widely applied in the collection and processing of information in the course of. This paper introduces the concept of FIR digital filter with linear phase conditions, analysis of the window function method and frequency sampling method and the ripple approximation method of FIR filter design ideas and processes. Based on analyzing the principle of three kinds of design methods, by means of fir1, fir2 and Remez function of Matlab simulation software in the Toolbox window function method and frequency sampling method and respectively realize equiripple approximation method to design FIR filter. Then test the filtering effect of the filter, using an audio add noise and then filter, test three audio effects and

相关文档
最新文档