低通滤波器

实验名称:FIR 低通滤波器的DSP 实现

一、实验目的

1、掌握用窗函数法设计FIR 数字滤波器的原理和方法。 2、熟悉线性相位FIR 数字滤波器的特性。

3、了解各种窗函数对数字滤波器的特性的影响。

二、实验设备

PC 兼容机一台(操作系统为Windows XP ),安装Code Composer Studio 2.2.1软件和MATLAB 6.5.1(含SIMULINK 工具包) 软件。

三、实验内容

FIR 低通滤波器的DSP 实现

1、实验要求:用窗口法设计线性相位的FIR 低通滤波器,截止频率为1kHz ,采样速率为8kHz 。窗口大小N=11,分别加矩形窗和海明窗。检验结果并计算峰值的位置和过渡带宽度。

2、对设计要求的理解

(1)要设计的滤波器为理想低通滤波器,便于FIR 低通滤波器的实现。 (2)FIR 滤波器满足线性相位应具有以下两个条件:一是h (n ) (n =0, 1, , N -1) 为

N -1

的偶对称或奇对称,即h (n ) =±h (N -1-n ) 。 2

故使用窗函数设计滤波器时,所加的窗都以原点对称,设计的理想滤波器的单位脉冲响应d(k)都以原点为偶对称或奇对称。同时保证了d(k)加窗平移后得到的h(n)以M=(N-1)/2对称,也就是保证了设计出的FIR 滤波器具有线性相位。 (3)低通滤波器的系数采用MATLAB 软件仿真工具产生,并把仿真产生的系数导出成头文件,运用到CCS 程序中。课题一中要求采用两种窗函数设计滤波器,两者仅仅是窗函数不同,相应的滤波器系数不同。运用MATLAB 产生两个窗函数对应的系数文件。同时对两种窗函数滤波效果进行对比。

(4)峰值和过滤带的宽度通过理论计算后,再和实际的信号波形进行对比。

3、窗函数法设计FIR 滤波器的思路

N -1

首先从窗口大小N 中计算出M ,其中M =;其次是利用离散时间傅里叶

2

实数;二是h(n)满足以n =

反变换,从d (ω) 中计算出滤波器系数d(k);最后考虑到滤波器的因果性,把d(k)延迟M 个单位得到因果的滤波器系数h(n),其中h (n ) =d (n -M ) , n =0, 1, , N -1。

四、实验原理

1、窗口法设计的滤波器系数的原理。 归一化截止频率ωc =

2πf c

。 , 其中f c 是截止频率,f s 是采样速率。

f s

低通滤波器的频率响应D (ω) 定义为:

⎧⎪1,

D (ω) =⎨

⎪⎩0,

ω≤ωc

-π≤ω

利用离散时间傅里叶反变换(IDTFT )我们得到时域信号:

d (k ) =⎰D (ω) e j ωk

π

ωc ⎡e j ωk ⎤sin(ωc k ) d ωj ωk d ω=⎰1. e =⎢=-∞

2π2π⎣2πjk ⎦-ωπk

c

ωc

对于k=0的时候需要单独考虑,由极限性质可以得到d (0) =矩形窗函数w (n ) 在时域的定义为:

⎧1, n ≤M

w rec (n ) =⎨

⎩0, 其他

ωc

π

sin(ωc k )

k =-M , , 0, M (1)

πk

利用延时的性质把滤波器脉冲值响应移位成因果序列,所以FIR 低通滤波器

故滤波器的系数d ' (k ) =d (k ) w (k ) =

系数h (n ) =d ' (n -M ) =

sin[ωc (n -M )]

n =0, 1, N -1

π(n -M )

2、如采用同阶数的汉明窗,只需将w rec (n ) 改为

πn ⎧

0. 54-0. 46cos , -M ≤n ≤M ⎪

, w ham (n ) =⎨M

⎪⎩0, 其他

所以

h (n ) =w ham (n -M ) d (n -M )

(2) π(n -M ) ⎫sin[ωc (n -M )]⎛

= 0. 54-0. 46cos , n =0, 1, , N -1。⎪⋅

M π(n -M ) ⎝⎭

五、实验的设计

1、课题一的滤波器系数具体的求解

已知窗口大小N 为11,故M =

N -111-1

==5。归一化截止频率为:22

ωc =

2πf c 2π⨯1π

==, f s 84

sin[

由(1)式可得矩形窗设计的滤波器系数h (n ) =

(n -5)]n =0, 1, 10,即π(n -5)

π

h (0) =-0. 045, h (1) =0. 0, h (2) =0. 075,

可以得到:h (3) =0. 1592, h (4) =0. 2251, h (5) =0. 25, h (6) =0. 2251,

h (7) =0. 1592, h (8) =0. 075, h (9) =0. 0, h (10) =-0. 045

由(2)式可以得到汉明窗设计的滤波器系数为:

sin[(n -5)]

2π(n -5) h (n ) =d (n -M ) =.[0. 54-0. 46cos()]n =0, 1, N -1,计

π(n -5) 10

π

h (0) =-0. 0036, h (1) =0. 0, h (2) =0. 02985,

算的:h (3) =0. 1086, h (4) =0. 2053, h (5) =0. 25, h (6) =0. 2053,

h (7) =0. 1086, h (8) =0. 02985, h (9) =0. 0, h (10) =-0. 0036

2、使用MATLAB 仿真工具产生系数

实际在设计FIR 低通滤波器系数时采用MATLAB 仿真工具,具体操作如下: 第一步进入到MATLAB 软件Command Window 界面,输入fdatool 命令,进入到滤波器设计界面。

第二步在Filter Design 设计界面,按照课题要求选择FIR 滤波器,窗函数法,阶数为10,矩形窗。具体的界面如下图:

同时选择工具栏Analysis 中的Filter Coefficients命令即可以观察滤波

器系数。系数具体如下图:

通过观察可以发现:仿真产生的滤波器系数与直接计算的结果相同。

第三步滤波器系数的导出,在工具栏中选择Targets 下的Export to Code Composer Studio命令,即可以得到C 语言形式的头文件。该头文件命名为coeffRectangular.h, 供CCS 软件中的程序调用。

对于汉明窗,只要在Window 下拉菜单中选择Hamming 即可实现汉明窗FIR 低通滤波器的设计。其滤波器系数得到如下图:

可以得到系数文件coeffHamming.h 供程序调用。

3、低通滤波的实现

已知输入信号是x (n ) ,通过低通滤波器h (n ) 之后,输出信号y (n ) 为:

y (n ) =∑h (m ) x (n -m ) 。

m =0M

对于矩形窗的低通滤波器,其差分方程为:

y (n ) =-0. 045x (n ) +0. 075x (n -2) +0. 1592x (n -3) +0. 2251x (n -4) +0. 25x (n -5) +

0. 2251x (n -6) +0. 1592x (n -7) +0. 075x (n -8) -0. 045x (n -10)

同样对于汉明窗设计的FIR 低通滤波器,其差分方程为:

y (n ) =-0. 0036x (n ) +0. 02985x (n -2) +0. 1086x (n -3) +0. 2053x (n -4) +0. 25x (n -5) +0. 2053x (n -6) +0. 1086x (n -7) +0. 02985x (n -8) -0. 0036x (n -10)

4、程序流程图

(1)输入信号的产生

调用sin 、cos 函数生成新的输入信号fIn[0],作为fInput 。

(2)FIR 滤波器的实现

(3)输入信号通过低通滤波器的得到输出信号

5、程序代码

1、 矩形窗的系数文件coeffrectangular.h 代码

#define FIRNUMBER 11

const float fHn[FIRNUMBER] = {

-0.[1**********], 9.745429214e-018, 0.[1**********], 0.1591549367, 0.2250790745, 0.25, 0.2250790745, 0.1591549367, 0.[1**********], 9.745429214e-018, -0.[1**********] };

2、汉明窗系数文件coeffHamming.h 代码

#define FIRNUMBER 11 const float fHn[11] =

{

-0.[1**********]3, 1.635791641e-018, 0.[1**********], 0.1085672006, 0.2053053975, 0.25, 0.2053053975, 0.1085672006, 0.[1**********], 1.635791641e-018, -0.[1**********]3

};

3、 实验源代码(Fir.c )

#include "coeffrectangular.h" //矩形窗系数文件 //#include "coeffhamming.h" //汉明窗系数文件 #include #define SIGNAL1F 1000 #define SIGNAL2F 4500 #define SAMPLEF 10000 #define PI 3.1415926

extern const float fHn[11];

float InputWave(); //输入波形子程序 float FIR(); //滤波器的实现

float fXn[FIRNUMBER]={ 0.0 };//输入信号初始化 float fInput,fOutput; float fSignal1,fSignal2;

float fStepSignal1,fStepSignal2; float f2PI; int i;

float fIn[256],fOut[256]; int nIn,nOut;

main() {

nIn=0; nOut=0;

f2PI=2*PI; fSignal1=0.0; fSignal2=PI*0.1;

fStepSignal1=2*PI/30; //低频成分 fStepSignal2=2*PI*1.4; //高频成分 while ( 1 ) {

fInput=InputWave(); fIn[nIn]=fInput; nIn++; nIn%=256; fOutput=FIR();

fOut[nOut]=fOutput;

nOut++; /* break point */ if ( nOut>=256 ) {

nOut=0; } } }

float InputWave() {

for ( i=FIRNUMBER-1;i>0;i-- ) fXn[i]=fXn[i-1];

fXn[0]=sin((double)fSignal1)+cos((double)fSignal2)/6.0; fSignal1+=fStepSignal1;

if ( fSignal1>=f2PI ) fSignal1-=f2PI; fSignal2+=fStepSignal2;

if ( fSignal2>=f2PI ) fSignal2-=f2PI; return(fXn[0]); }

float FIR() {

float fSum; fSum=0;

for ( i=0;i

fSum+=(fXn[i]*fHn[i]); // }

return(fSum); }

六、实验过程和结果分析

1、启动CCS 软件,打开Fir.pjt 编译并load program。

2、设置观察窗口

(1)输入信号:选择菜单view->Graph->Time/Frequency,进行如下设置:

(2)输出信号设置与输入信号设置基本一致,只要把Start Address改为&fOutput。

(3)观察低通滤波器的频率响应,设置如下图:

3、设置断点:在主函数有注释“break point”的语句设置软件断点。 4、输出波形图

(1)输入信号波形图:

(2)FIR 低通滤波器的系数

矩形窗系数的时域与频域波形

汉明窗系数的时域与频域波形

从上面两个矩形窗与汉明窗频率响应可以得到如下区别:汉明窗的过滤带比矩形窗要常,但是汉明窗的旁瓣相对矩形窗较小。

(3)输出信号波形

实验结果分析:

(1)从时域上看,输出信号基本实现了过滤了输入信号中的“毛刺”;输出信号基本是低频的正弦信号。

ππ

(2) 从频域上看,输入信号在和0. 8π有两个尖锐的峰值;通过截止频率为

154

π

的低通滤波器后,输出信号在0. 8π处的频率分量受到了很大的衰减,而处的

15

分量大小基本不变。可以说明低通滤波器设计是成功的。

2π2π4π4π==(3)矩形窗的过渡带宽度理论值为,汉明窗的过渡带宽度为,N 11N 11

从上述的滤波器观察基本相同。

七、实验小结

1、实验的特点 (1)本实验的滤波器系数的设计是通过MATLAB 工具仿真产生,并把仿真产生的滤波器系数导入到CCS 软件中作为程序的头文件。如果滤波器的阶数较大,使用MATLAB 系数仿真工具比代公式计算更为方便。

(2)两个窗口法设计线性相位的FIR 低通滤波器,在源程序中包含两种窗函数系数的头文件,方便对两种窗函数的实现。

(3)波形发生器子程序中由sin 和cos 函数得到波形值并返回,在主函数不断循环并计算新的波形值,构成低频和高频信号的叠加。在输入波形中高频成分的幅度是低频的1/6。

2、实验调试过程以及遇到的问题和解决办法

(1)本实验遇到的最大的问题是:如何使用MATLAB 软件对滤波器系数的导出。最初使用sptool 工具,发现其设计的滤波器要求与题目有所不同,最后通过网上查找资料使用fdatool 工具,可以更好、更方便的观察滤波器系数,并且可以产生供程序方便调用的头文件。

(2)在滤波器系数导出时有一个头文件"tmwtypes.h" ,通过分析发现他只是一个对数据类型的定义,如32bit floating point。可以不用这个头文件,直接修改fHn 数组的类型为float 。

(3)其次是对图形的观察存在一些问题,刚开始对Graph 菜单中每一行不是很明白。如观察输入信号时对Acquisition Buffer Size 这一项填写,通过分析发现输入信号fInput 是一个变量,观察时只需要一个内存单元,故这一项选项填写1。所有观察滤波器的冲击响应时观察fHn 时,这一项需要填写11。

3、实验体会和总结

(1)通过本次实验,掌握了用窗函数法设计FIR 数字滤波器的原理和方法。对于滤波器的系数计算采用MATLAB 仿真工具。熟悉了使用CCS 观察图象的方法。 (2)窗函数法设计时,从频率响应中对矩形窗和汉明窗设计的滤波器特性进行了对比,掌握并区分了两者的优缺点。

(3)本实验需要设计的输入信号是一个低频和高频信号的叠加,对参考例程进行分析,掌握了产生所需信号的方法。同时通过对观察的图形进行分析可以加强对滤波器实现的理解。

实验名称:FIR 低通滤波器的DSP 实现

一、实验目的

1、掌握用窗函数法设计FIR 数字滤波器的原理和方法。 2、熟悉线性相位FIR 数字滤波器的特性。

3、了解各种窗函数对数字滤波器的特性的影响。

二、实验设备

PC 兼容机一台(操作系统为Windows XP ),安装Code Composer Studio 2.2.1软件和MATLAB 6.5.1(含SIMULINK 工具包) 软件。

三、实验内容

FIR 低通滤波器的DSP 实现

1、实验要求:用窗口法设计线性相位的FIR 低通滤波器,截止频率为1kHz ,采样速率为8kHz 。窗口大小N=11,分别加矩形窗和海明窗。检验结果并计算峰值的位置和过渡带宽度。

2、对设计要求的理解

(1)要设计的滤波器为理想低通滤波器,便于FIR 低通滤波器的实现。 (2)FIR 滤波器满足线性相位应具有以下两个条件:一是h (n ) (n =0, 1, , N -1) 为

N -1

的偶对称或奇对称,即h (n ) =±h (N -1-n ) 。 2

故使用窗函数设计滤波器时,所加的窗都以原点对称,设计的理想滤波器的单位脉冲响应d(k)都以原点为偶对称或奇对称。同时保证了d(k)加窗平移后得到的h(n)以M=(N-1)/2对称,也就是保证了设计出的FIR 滤波器具有线性相位。 (3)低通滤波器的系数采用MATLAB 软件仿真工具产生,并把仿真产生的系数导出成头文件,运用到CCS 程序中。课题一中要求采用两种窗函数设计滤波器,两者仅仅是窗函数不同,相应的滤波器系数不同。运用MATLAB 产生两个窗函数对应的系数文件。同时对两种窗函数滤波效果进行对比。

(4)峰值和过滤带的宽度通过理论计算后,再和实际的信号波形进行对比。

3、窗函数法设计FIR 滤波器的思路

N -1

首先从窗口大小N 中计算出M ,其中M =;其次是利用离散时间傅里叶

2

实数;二是h(n)满足以n =

反变换,从d (ω) 中计算出滤波器系数d(k);最后考虑到滤波器的因果性,把d(k)延迟M 个单位得到因果的滤波器系数h(n),其中h (n ) =d (n -M ) , n =0, 1, , N -1。

四、实验原理

1、窗口法设计的滤波器系数的原理。 归一化截止频率ωc =

2πf c

。 , 其中f c 是截止频率,f s 是采样速率。

f s

低通滤波器的频率响应D (ω) 定义为:

⎧⎪1,

D (ω) =⎨

⎪⎩0,

ω≤ωc

-π≤ω

利用离散时间傅里叶反变换(IDTFT )我们得到时域信号:

d (k ) =⎰D (ω) e j ωk

π

ωc ⎡e j ωk ⎤sin(ωc k ) d ωj ωk d ω=⎰1. e =⎢=-∞

2π2π⎣2πjk ⎦-ωπk

c

ωc

对于k=0的时候需要单独考虑,由极限性质可以得到d (0) =矩形窗函数w (n ) 在时域的定义为:

⎧1, n ≤M

w rec (n ) =⎨

⎩0, 其他

ωc

π

sin(ωc k )

k =-M , , 0, M (1)

πk

利用延时的性质把滤波器脉冲值响应移位成因果序列,所以FIR 低通滤波器

故滤波器的系数d ' (k ) =d (k ) w (k ) =

系数h (n ) =d ' (n -M ) =

sin[ωc (n -M )]

n =0, 1, N -1

π(n -M )

2、如采用同阶数的汉明窗,只需将w rec (n ) 改为

πn ⎧

0. 54-0. 46cos , -M ≤n ≤M ⎪

, w ham (n ) =⎨M

⎪⎩0, 其他

所以

h (n ) =w ham (n -M ) d (n -M )

(2) π(n -M ) ⎫sin[ωc (n -M )]⎛

= 0. 54-0. 46cos , n =0, 1, , N -1。⎪⋅

M π(n -M ) ⎝⎭

五、实验的设计

1、课题一的滤波器系数具体的求解

已知窗口大小N 为11,故M =

N -111-1

==5。归一化截止频率为:22

ωc =

2πf c 2π⨯1π

==, f s 84

sin[

由(1)式可得矩形窗设计的滤波器系数h (n ) =

(n -5)]n =0, 1, 10,即π(n -5)

π

h (0) =-0. 045, h (1) =0. 0, h (2) =0. 075,

可以得到:h (3) =0. 1592, h (4) =0. 2251, h (5) =0. 25, h (6) =0. 2251,

h (7) =0. 1592, h (8) =0. 075, h (9) =0. 0, h (10) =-0. 045

由(2)式可以得到汉明窗设计的滤波器系数为:

sin[(n -5)]

2π(n -5) h (n ) =d (n -M ) =.[0. 54-0. 46cos()]n =0, 1, N -1,计

π(n -5) 10

π

h (0) =-0. 0036, h (1) =0. 0, h (2) =0. 02985,

算的:h (3) =0. 1086, h (4) =0. 2053, h (5) =0. 25, h (6) =0. 2053,

h (7) =0. 1086, h (8) =0. 02985, h (9) =0. 0, h (10) =-0. 0036

2、使用MATLAB 仿真工具产生系数

实际在设计FIR 低通滤波器系数时采用MATLAB 仿真工具,具体操作如下: 第一步进入到MATLAB 软件Command Window 界面,输入fdatool 命令,进入到滤波器设计界面。

第二步在Filter Design 设计界面,按照课题要求选择FIR 滤波器,窗函数法,阶数为10,矩形窗。具体的界面如下图:

同时选择工具栏Analysis 中的Filter Coefficients命令即可以观察滤波

器系数。系数具体如下图:

通过观察可以发现:仿真产生的滤波器系数与直接计算的结果相同。

第三步滤波器系数的导出,在工具栏中选择Targets 下的Export to Code Composer Studio命令,即可以得到C 语言形式的头文件。该头文件命名为coeffRectangular.h, 供CCS 软件中的程序调用。

对于汉明窗,只要在Window 下拉菜单中选择Hamming 即可实现汉明窗FIR 低通滤波器的设计。其滤波器系数得到如下图:

可以得到系数文件coeffHamming.h 供程序调用。

3、低通滤波的实现

已知输入信号是x (n ) ,通过低通滤波器h (n ) 之后,输出信号y (n ) 为:

y (n ) =∑h (m ) x (n -m ) 。

m =0M

对于矩形窗的低通滤波器,其差分方程为:

y (n ) =-0. 045x (n ) +0. 075x (n -2) +0. 1592x (n -3) +0. 2251x (n -4) +0. 25x (n -5) +

0. 2251x (n -6) +0. 1592x (n -7) +0. 075x (n -8) -0. 045x (n -10)

同样对于汉明窗设计的FIR 低通滤波器,其差分方程为:

y (n ) =-0. 0036x (n ) +0. 02985x (n -2) +0. 1086x (n -3) +0. 2053x (n -4) +0. 25x (n -5) +0. 2053x (n -6) +0. 1086x (n -7) +0. 02985x (n -8) -0. 0036x (n -10)

4、程序流程图

(1)输入信号的产生

调用sin 、cos 函数生成新的输入信号fIn[0],作为fInput 。

(2)FIR 滤波器的实现

(3)输入信号通过低通滤波器的得到输出信号

5、程序代码

1、 矩形窗的系数文件coeffrectangular.h 代码

#define FIRNUMBER 11

const float fHn[FIRNUMBER] = {

-0.[1**********], 9.745429214e-018, 0.[1**********], 0.1591549367, 0.2250790745, 0.25, 0.2250790745, 0.1591549367, 0.[1**********], 9.745429214e-018, -0.[1**********] };

2、汉明窗系数文件coeffHamming.h 代码

#define FIRNUMBER 11 const float fHn[11] =

{

-0.[1**********]3, 1.635791641e-018, 0.[1**********], 0.1085672006, 0.2053053975, 0.25, 0.2053053975, 0.1085672006, 0.[1**********], 1.635791641e-018, -0.[1**********]3

};

3、 实验源代码(Fir.c )

#include "coeffrectangular.h" //矩形窗系数文件 //#include "coeffhamming.h" //汉明窗系数文件 #include #define SIGNAL1F 1000 #define SIGNAL2F 4500 #define SAMPLEF 10000 #define PI 3.1415926

extern const float fHn[11];

float InputWave(); //输入波形子程序 float FIR(); //滤波器的实现

float fXn[FIRNUMBER]={ 0.0 };//输入信号初始化 float fInput,fOutput; float fSignal1,fSignal2;

float fStepSignal1,fStepSignal2; float f2PI; int i;

float fIn[256],fOut[256]; int nIn,nOut;

main() {

nIn=0; nOut=0;

f2PI=2*PI; fSignal1=0.0; fSignal2=PI*0.1;

fStepSignal1=2*PI/30; //低频成分 fStepSignal2=2*PI*1.4; //高频成分 while ( 1 ) {

fInput=InputWave(); fIn[nIn]=fInput; nIn++; nIn%=256; fOutput=FIR();

fOut[nOut]=fOutput;

nOut++; /* break point */ if ( nOut>=256 ) {

nOut=0; } } }

float InputWave() {

for ( i=FIRNUMBER-1;i>0;i-- ) fXn[i]=fXn[i-1];

fXn[0]=sin((double)fSignal1)+cos((double)fSignal2)/6.0; fSignal1+=fStepSignal1;

if ( fSignal1>=f2PI ) fSignal1-=f2PI; fSignal2+=fStepSignal2;

if ( fSignal2>=f2PI ) fSignal2-=f2PI; return(fXn[0]); }

float FIR() {

float fSum; fSum=0;

for ( i=0;i

fSum+=(fXn[i]*fHn[i]); // }

return(fSum); }

六、实验过程和结果分析

1、启动CCS 软件,打开Fir.pjt 编译并load program。

2、设置观察窗口

(1)输入信号:选择菜单view->Graph->Time/Frequency,进行如下设置:

(2)输出信号设置与输入信号设置基本一致,只要把Start Address改为&fOutput。

(3)观察低通滤波器的频率响应,设置如下图:

3、设置断点:在主函数有注释“break point”的语句设置软件断点。 4、输出波形图

(1)输入信号波形图:

(2)FIR 低通滤波器的系数

矩形窗系数的时域与频域波形

汉明窗系数的时域与频域波形

从上面两个矩形窗与汉明窗频率响应可以得到如下区别:汉明窗的过滤带比矩形窗要常,但是汉明窗的旁瓣相对矩形窗较小。

(3)输出信号波形

实验结果分析:

(1)从时域上看,输出信号基本实现了过滤了输入信号中的“毛刺”;输出信号基本是低频的正弦信号。

ππ

(2) 从频域上看,输入信号在和0. 8π有两个尖锐的峰值;通过截止频率为

154

π

的低通滤波器后,输出信号在0. 8π处的频率分量受到了很大的衰减,而处的

15

分量大小基本不变。可以说明低通滤波器设计是成功的。

2π2π4π4π==(3)矩形窗的过渡带宽度理论值为,汉明窗的过渡带宽度为,N 11N 11

从上述的滤波器观察基本相同。

七、实验小结

1、实验的特点 (1)本实验的滤波器系数的设计是通过MATLAB 工具仿真产生,并把仿真产生的滤波器系数导入到CCS 软件中作为程序的头文件。如果滤波器的阶数较大,使用MATLAB 系数仿真工具比代公式计算更为方便。

(2)两个窗口法设计线性相位的FIR 低通滤波器,在源程序中包含两种窗函数系数的头文件,方便对两种窗函数的实现。

(3)波形发生器子程序中由sin 和cos 函数得到波形值并返回,在主函数不断循环并计算新的波形值,构成低频和高频信号的叠加。在输入波形中高频成分的幅度是低频的1/6。

2、实验调试过程以及遇到的问题和解决办法

(1)本实验遇到的最大的问题是:如何使用MATLAB 软件对滤波器系数的导出。最初使用sptool 工具,发现其设计的滤波器要求与题目有所不同,最后通过网上查找资料使用fdatool 工具,可以更好、更方便的观察滤波器系数,并且可以产生供程序方便调用的头文件。

(2)在滤波器系数导出时有一个头文件"tmwtypes.h" ,通过分析发现他只是一个对数据类型的定义,如32bit floating point。可以不用这个头文件,直接修改fHn 数组的类型为float 。

(3)其次是对图形的观察存在一些问题,刚开始对Graph 菜单中每一行不是很明白。如观察输入信号时对Acquisition Buffer Size 这一项填写,通过分析发现输入信号fInput 是一个变量,观察时只需要一个内存单元,故这一项选项填写1。所有观察滤波器的冲击响应时观察fHn 时,这一项需要填写11。

3、实验体会和总结

(1)通过本次实验,掌握了用窗函数法设计FIR 数字滤波器的原理和方法。对于滤波器的系数计算采用MATLAB 仿真工具。熟悉了使用CCS 观察图象的方法。 (2)窗函数法设计时,从频率响应中对矩形窗和汉明窗设计的滤波器特性进行了对比,掌握并区分了两者的优缺点。

(3)本实验需要设计的输入信号是一个低频和高频信号的叠加,对参考例程进行分析,掌握了产生所需信号的方法。同时通过对观察的图形进行分析可以加强对滤波器实现的理解。


相关内容

  • 数字滤波器与模拟滤波器设计比较
  • 目 录 摘要 ............................................................................................................................................... ...

  • 滤波器的分类及特点
  • 滤波器的分类 按元件分类,滤波器可分为:有源滤波器.无源滤波器.陶瓷滤波器.晶体滤波器.机械滤波器.锁相环滤波器.开关电容滤波器等. 按信号处理的方式分类,滤波器可分为:模拟滤波器.数字滤波器. 按通频带分类,滤波器可分为:低通滤波器.高通滤波器.带通滤波器.带阻滤波器等. 除此之外,还有一些特殊滤 ...

  • 滤波器原理
  • 第三节 滤波器原理 滤波器是一种选频装置,可以使信号中特定的频率成分通过,而极大地衰减其它频率成分.在测试装置中,利用滤波器的这种选频作用,可以滤除干扰噪声或进行频谱分析. 广义地讲,任何一种信息传输的通道(媒质)都可视为是一种滤波器.因为,任何装置的响应特性都是激励频率的函数,都可用频域函数描述其 ...

  • 基于Matlab和脉冲响应不变法的滤波器设计
  • 目 录 摘 要 ............................................................................................................. 错误!未定义书签. Abstract ............. ...

  • 变频器输出端滤波器
  • 变频器输出端滤波器 前言: 变频器滤波器,顾名思义,就是专门针对变频器产生谐波的特点及规律,而专门开发的一款专用型滤波器,是LC滤波器的一种.变频器滤波器概述 变频器滤波器主要是由电感.电容.电阻等组成的无源器件.它是一种低通滤波器的一种,可以让工频信号无阻挡的通过,抑制高频电磁干扰(一般来讲,可抑 ...

  • 数字信号滤波器
  • 对数字滤波器的初步认识 数字滤波器(digital filter)是由数字乘法器.加法器和延时单元组成的一种装置.其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的.由于电子计算机技术和大规模集成电路的发展,数字滤波器已可用计算机软件实现,也可用大规模集成数字硬件实时实现.数字滤 ...

  • 基于MATLAB做巴特沃斯低通滤波器
  • 分类号 编号 烟 台 大 学 毕 业 论 文(设 计) 基于MATLAB设计巴特沃斯低通滤波器 The Design of Butterworth Low-passing Filter Based on MATLAB 申请学位: 院 系: 专 业: 姓 名: 学 号: 指导老师: 2011年 05 ...

  • 数字滤波器研究综述 ---文献综述
  • 附件1:文献综述 专业班级:电子073班 姓名:姜美玲 学号:07012887 数字滤波器研究综述 摘要:文章对数字滤波器做了较为全面的介绍.概括了滤波器的背景知识.应用以及较为详细的分类情况.比较了几种有代表性的经典的数字滤波器.然后对数字滤波器以及发展的走势进行了展望. 关键词:数字滤波器:II ...

  • 高斯滤波器和2RC滤波器
  • 第五章 高斯滤波器 5.1介绍 高斯滤波器被广泛应用于表面轮廓分析.美国标准(美国机械工程师协会2002)和国际标准(国际标准化组织1996)都对它进行了阐述.高斯滤波器的权重函数(滤波器在时域和空间域的定义)如下: S x =αλcexp⁡[−π(αλc2] 5.1 式子中α= =0.4697,x ...

  • 无源电力滤波器设计
  • 无源电力滤波器设计 谭 东 旭 2006年 2006年2月·珠海 Friday, March 11, 2011 1 目录 1. 项目简介 2. 无源电力滤波器基础知识 3. 无源电力滤波器常见设计方法 4. 淮北项目无源部分设计及仿真 5. 无源电力滤波器软件包的设计构思 Friday, March ...