文档库 最新最全的文档下载
当前位置:文档库 › 利用MATLAB结合频率取样法设计数字高通FIR滤波器

利用MATLAB结合频率取样法设计数字高通FIR滤波器

利用MATLAB结合频率取样法设计数字高通FIR滤波器
利用MATLAB结合频率取样法设计数字高通FIR滤波器

课程设计任务书

学生姓名:专业班级:

指导教师:工作单位:

题目: 利用MATLAB结合频率取样法设计数字高通FIR滤波器

要求完成的主要任务:

1.利用频率取样法设计一个数字高通FIR滤波器

2.画出高通滤波器的幅频响应

课程设计进度安排

指导教师签名:年月日系主任(或责任教师)签名:年月日

目录

课程设计进度安排 ........................................................................................................ I 目录 .. (i)

摘要 ............................................................................................................................ I Abstract .......................................................................................................................... I I

1 FIR数字滤波器 (1)

1.1 FIR滤波器的特点 (1)

1.2 FIR数字滤波器设计方法 (2)

1.3 线性相位FIR数字滤波器的条件和特点 (2)

1.3.1 线性相位条件 (2)

1.3.2 线性相位FIR滤波器的幅度特性与相位特性 (3)

2 利用频率采样法设计FIR滤波器 (4)

2.1 用频率采样法设计滤波器的基本原理 (4)

2.2 线性相位的约束条件 (6)

2.3 逼近误差及其改进措施 (7)

2.3.1 产生误差的原因 (7)

2.3.2 减小误差的方法 (8)

2.4 频率采样法的特点 (9)

3 频率取样法的数字高通滤波器的实现 (9)

3.1 MATLAB的介绍 (9)

3.2 设计条件 (9)

3.3 设计程序 (9)

3.4 调试结果 (11)

4 心得体会 (12)

附录 (14)

摘要

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

本文介绍了如何利用MATLAB仿真软件系统及数字信号处理所学知识利用频率采样法设计一个数字高通滤波器。以此来巩固课堂理论学习,并能用所学理论知识正确分析信号处理的基本问题和解释信号处理的基本现象。

关键字:MATLAB;数字信号处理;数字滤波器;频率采样法

Abstract

MATLAB is released by the United States mathworks mainly for scientific computing, visualization and interactive program designed high-tech computing environment. It numerical analysis, matrix computation, scientific data visualization as well as non-linear dynamic systems modeling and simulation, and many other powerful integrated in an easy-to-use Windows environment, scientific research, engineering design and the need for effective numerical the edit mode many scientific fields provides a comprehensive solution, and in large part to get rid of the traditional non-interactive programming language (such as C, Fortran), on behalf of the advanced level of today's international scientific computing software.

This article describes how to use MATLAB simulation software systems and digital signal processing learned knowledge using frequency sampling method to design a digital high-pass filter. In order to consolidate the theoretical classroom learning, and basic questions and explain basic signal processing phenomenon can be learned theoretical knowledge to correctly analyze the signal processing.

Keyword: MATLAB;digital signal processing;digital filter;frequency sampling method

1 FIR 数字滤波器

1.1 FIR 滤波器的特点

FIR 滤波器的脉冲响应h (n )是有限长的(0≤n ≤N -1),其z 变换为:

(式1)

它是z -1的(N -1)阶多项式,在有限z 平面(0

FIR 滤波器的基本结构可以理解为一个分节的延时线,把每一节的输出加权累加,可得到滤波器的输出,FIR 滤波器的冲激响应h (n )是有限长的,数学上M 阶FIR 滤波器可以表示为:

y(n)=∑-=-10)()(M i i n x i h (式2)

其系统函数为:

H(z)=∑-=-1

0)(M n n z n h (式3)

普通的直接型FIR 滤波器结构如图1 所示。

图1 FIR 滤波器的直接型结构

FIR 滤波器最突出的优点有2个:

一是只要对h (n )附加一定的条件,很容易获得严格的线性相位特性; 二是由于H (z )的极点位于原点z =0处,始终满足稳定条件,所以FIR 滤波器永远稳定。

三是FIR 滤波器由于单位脉冲响应是有限长的,因而可以用快速傅里叶变换(FFT)算法来实现过滤信号,从而可大大提高运算效率。

但是,要取得很好的衰减特性,FIR 滤波器H (z )的阶次比IIR 滤波的要高。

-=-=10)()(N n n z n h z

H

1.2 FIR 数字滤波器设计方法

IIR 滤波器设计中的各种变换法对FIR 滤波器设计是不适用的,这是因为那里是利用有理分式的系统函数,而FIR 滤波器的系统函数只是z-1的多项式。 FIR 的设计任务是选择有限长度的脉冲响应h(n),得到系统函数H(z),使幅频特性满足技术指标要求,同时使相频特性达到线性相位。

常用设计方法:

(1)窗函数法

(2)频率采样法

(3)切比雪夫等波纹逼近法。

人们最感兴趣的是FIR 滤波器具有线性相位的相频特性。对非线性相位的FIR 滤波器,一般可以用IIR 滤波器来代替,因为同样幅度特性,IIR 滤波器所需阶数比FIR 滤波器的阶数要少得多。

1.3 线性相位FIR 数字滤波器的条件和特点

1.3.1 线性相位条件

对于长度为N 的h (n ),传输函数为

(式4)

H(e jω)=H g (ω)e jθ(ω) (式5)

式中,H g (ω)称为幅度特性,θ(ω)称为相位特性。注意,这里H g (ω)不同于|H (e jω)|,H g (ω)为ω的实函数,可能取负值,而|H (e jω)|总是正值。H (e jω)线性相位是指θ(ω)是ω的线性函数,即

θ(ω)= - τω,τ为常数 (式6) 如果θ(ω)满足 θ(ω)= θ0- τω,θ0是起始相位

严格地说,此时θ(ω)不具有线性相位,但以上两种情况都满足群时延是一个常数,即

∑-=-=10)()(N n

n j j e

n h e H ωω

(式

7) 也称这种情况为线性相位。

1.3.2 线性相位FIR 滤波器的幅度特性与相位特性

线性相位FIR 滤波器的幅度特性与相位特性如下图:

图2线性相位FIR 滤波器的幅度特性与相位特性一览表

τωωθ-=d d )(

在设计时,要注意选择合适的h (n )对称形式(奇或偶)和h (n )长度N (奇数或偶数)。如要设计高通滤波器,只能选情况1和情况4;要设计低通滤波器,只能选情况1和情况2。

2 利用频率采样法设计FIR 滤波器

2.1 用频率采样法设计滤波器的基本原理

待设计的滤波器的传输函数用H d (e jω)表示,可按下列思路进行设计:

⑴ 它在ω=0到2π之间等间隔采样N 点,得到H d (k )

(式8)

⑵ N 点H d (k )进行IDFT ,得到h (n )

(式9)

式中,h (n )作为所设计的滤波器的单位取样响应。

⑶ h (n )求系统函数H (z )

(式10)

将插值公式重写如下

式11)

此式就是直接利用频率采样值Hd(k)形成滤波器的系统函数。

用频率采样法设计线性相位滤波器的条件 : 1,,2

,1,0,|)()(2-===N k e H k H k

N j d d Λπωω1,2,1,0,)(1)(10

2-==∑-=N n e k H N n h N

k kn

N j d Λπ

∑-=-=1

0)()(N n n z n h z H 1201

()1()1N N d j k k N H k z H z N e z π

--=--=-∑

FIR 滤波器具有线性相位的条件是h(n)是实序列,且满足h(n)= h(N –1–n),其传输函数应满足的条件是

(式12) (式13)

(式14)

(式

15)

且H g (π)=0 。 在ω=0~2π之间等间隔采样N 点,将ω=ωk 代入式(4~7)中,并写成k 的函数:

(式16)

(式

17) ,N 为奇数(式18)

,N 为偶数且 (式19)

(式20)

说明N 等于奇数时H g (k )对(N –1)/2偶对称,N 等于偶数时, H g (k )对N/2奇对称,且H g (N /2)=0。

对于高通滤波器,这里N 只能取奇数。

截止频率为ωc ,采样点数N ,H g (k )和θ(k)用下面公式计算

(式

21) ()(

)()j j d g H e H e ωθωω=1()2N θωω-=-

()(2),g g H H N ωπω=-=奇数()(2),g g H H N ωπω=--=偶数

20,1,2,,1k k k N N

πω==-L ,()()()j k d g H k H k e θ=121()2N N k k k N N

πθπ--=-=-()()g g H k H N k =-()()g g H k H N k =--()02

g N H =()()1,0,1,2,,()0,1,2,,1()(1)/,0,1,2,,1g g c g c c c

H k H N k k k H k k k k N k k N k N k N θπ=-==??==++--??=--=-?L L L

以上是用频率采样法设计滤波器的基本原理。

2.2 线性相位的约束条件

以h(n)为偶对称,N 为奇数的情况进行分析。

1)FIR 的频响具有线性相位的一般表达式

当h(n)为偶对称,N 为奇数时,则

ωωω)21()()(--=N j j e H e H (式22)

而且幅度函数H (w )应为偶对称,即

)2()(ωπω-=H H (式23)

2)采样值H (k )具有线性相位的约束

k

k j k j k N j e H e k N H e H k H θθππ===)2()()(2 (式24)

其中, )2(k N

H H k π

= 表示采样值的模(纯标量),k θ表示其相角。因此,在采样点上具有线性相位的条件应为: )11(*221N k k N N k --=--

=ππθ (式25) 而且,k H 必须满足偶对称,即:

k N k H H -= (式26)

实际滤波器的传输函数ω

ωj e z j z H e H ==|)()(,与理想的传输函数H d (e jω)间存在误差,如图2

图3频率采样的响应

需要讨论逼近误差问题及其改进措施。

2.3 逼近误差及其改进措施

2.3.1 产生误差的原因

从图3可看出,实际的H(e jω)与理想的H d(e jω)相比,误差主要体现在一是通带和阻带出现波动,二是过渡带加宽,与窗函数设计法情况类似,产生误差的原因可从时域和频域两方面进行分析。

从时域分析:如果H d(e jω)有间断点,那么相应单位取样响应h d(n)应是无限长的。这样,由于时域混叠,引起所设计的h(n)和h d(n)有偏差。为此,希望在频域的采样点数N加大。N愈大,设计出的滤波器愈逼近待设计的滤波器H d(e jω)。

从频域分析:在采样点ω=2πk,k=0,1,2,…,N-1,Ф(ω-2πk/N)=1,因此,采样点处H (e jωk)(ωk=2πk/N)与H(k)相等,逼近误差为0。

在采样点之间,H(e jω)由有限项的H(k)Ф(ω-2πk/N)之和形成。其误差和H d(e jω)特性的平滑程度有关,特性愈平滑的区域,误差愈小;特性曲线间断点处,误差最大。

表现形式为间断点用倾斜线取代,且间断点附近形成振荡特性,使阻衰减减小,往往不能满足技术要求。

2.3.2 减小误差的方法

最直观的想法是增加采样点数,即加大N 值,由于过渡带就等于采样间隔(参看图3),即

N

π

ω2=? (式27)

所以加大N ,可使过渡带变窄,但增加要适当,否则会增加滤波器体积与成本。但是,增加N 并不会改善滤波器的阻带衰减特性,因为H d (e jω)是理想矩形, 无论怎样增多频率采样的点数,在通、阻带交界处,幅值总是从1突变到0,会引起较大的起伏振荡。

为使逼近误差更小,和窗口法的平滑截断一样,通过在理想频率响应的不连续点的边缘上加一些过渡的抽样点,减小频带边缘的突变,也就减小了起伏振荡,增大了阻带最小衰减。

一般过渡带取一、二、三点抽样值即可得到满意结果。如在低通设计中,不加过渡点时,阻带最小衰减为-20dB ,加三个过渡点(最优设计)则可达-80dB 到-95dB 左右。加过渡点的示意如图4所示。

图4理想低通滤波器增加过渡点

增加过渡点,可使阻带衰减明显提高,但付出的代价是过渡带加宽,可通过下式加大N 来调整。

)1(2+=?m N π

ω m =0,1,2,3… (式28)

2.4 频率采样法的特点

频率采样法设计滤波器最大的优点是直接从频率域进行设计,比较直观,也适合于设计具有任意幅度特性的滤波器。但边界频率不易控制。如果增加采样点数N,对确定边界频率有好处,但会增加滤波器的成本。因此,它适合于窄带滤波器的设计。

3 频率取样法的数字高通滤波器的实现

3.1 MATLAB的介绍

MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

3.2 设计条件

ws=0.6pi, wp=0.8pi, 通带波动1dB, 阻带衰减50dB,M=33。

3.3 设计程序

% 频率采样技术: 高通

% ws=0.6pi, wp=0.8pi, Rp=1dB, As=50dB

% M=33, T1 = 0.1095; T2 = 0.598;

M = 33; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l;

T1 = 0.1095; T2 = 0.598;

Hrs = [zeros(1,11),T1,T2,ones(1,8),T2,T1,zeros(1,10)];

Hdr = [0,0,1,1]; wdl = [0,0.6,0.8,1];

k1 = 0:floor((M-1)/2); k2 = floor((M-1)/2)+1:M-1;

angH = [-alpha*(2*pi)/M*k1, alpha*(2*pi)/M*(M-k2)];

H = Hrs.*exp(j*angH);

h = real(ifft(H,M));

[db,mag,pha,grd,w] = freqz_m(h,1);

[Hr,ww,a,L] = Hr_Type1(h);

subplot(1,1,1)

subplot(2,2,1);plot(wl(1:17)/pi,Hrs(1:17),'o',wdl,Hdr);

axis([0,1,-0.1,1.1]); title('高通: M=33,T1=0.1095,T2=0.598') xlabel(''); ylabel('Hr(k)')

set(gca,'XTickMode','manual','XTick',[0;.6;.8;1])

set(gca,'XTickLabelMode','manual','XTickLabels',[' 0';'.6';'.8';' 1']) set(gca,'YTickMode','manual','YTick',[0,0.109,0.59,1]); grid subplot(2,2,2); stem(l,h); axis([-1,M,-0.4,0.4])

title('脉冲响应'); ylabel('h(n)');text(M+1,-0.4,'n')

subplot(2,2,3); plot(ww/pi,Hr,wl(1:17)/pi,Hrs(1:17),'o');

axis([0,1,-0.1,1.1]); title('振幅响应')

xlabel('频率(单位:pi)'); ylabel('Hr(w)')

set(gca,'XTickMode','manual','XTick',[0;.6;.8;1])

set(gca,'XTickLabelMode','manual','XTickLabels',[' 0';'.6';'.8';' 1']) set(gca,'YTickMode','manual','YTick',[0,0.109,0.59,1]); grid subplot(2,2,4);plot(w/pi,db); axis([0,1,-100,10]); grid

title('幅度响应'); xlabel('频率(单位:pi)');

ylabel('分贝数');

set(gca,'XTickMode','manual','XTick',[0;.6;.8;1])

set(gca,'XTickLabelMode','manual','XTickLabels',[' 0';'.6';'.8';' 1']) set(gca,'YTickMode','Manual','YTick',[-50;0]);

set(gca,'YTickLabelMode','manual','YTickLabels',['50';' 0'])

%

3.4 调试结果

图5 频率采样技术:高通,最优法

结果分析:第一幅图为要高通滤波器原型,可以看到它在过渡带添加了两个采样点,以增加阻带衰减;第二幅图为系统函数单位脉冲响应图形,可以看出,它以中点成偶对称,由于采样点数为奇数,故在对称轴处有取值;第三幅图(左下)为根据频率取样法设计出的滤波器振幅响应,可以看出它在采样点处的取值与原高通滤波器精确一致,在其他点处与原高通滤波器取值逼近有上下波动;第

四幅图为用分贝数表示的幅度响应,可以看到采用线性最优法设计的高通滤波器的阻带衰减大于50db。设计取得了良好的效果。

4 心得体会

Matlab的课程设计做到现在已经基本接近尾声了,既然学习一门课程,简单的总结是必须要有的。以前在《信号与系统》和《数字信号处理》的实验中已经接触过matlab,所以上手并不是很难,不过在设计的时候还是遇到了不少问题,首先是对频率取样法掌握的不到位,重新学习了频率取样法后,发现如何利用程序实现频率取样法成了一个问题。通过自己在网上查找资料,看从图书馆借来的书以及对照着老师的PPT,不断的调试,终于做出了成果。

课程设计虽然做完了,但现在学的这点知识还远远不够,特别是这个软件的函数非常多,要能够熟练运用我们还有很多要学习。不过我觉得Matlab的函数设计都比较合理,她总是从函数本身的意义出发命名,这使我们记不会很难。总之这次课程设计完成的还算顺利,虽然也遇到过一些问题,但通过和同学讨论一起学习都能解决。当然,我们也都明白matlab的确是一个很实用的工具,在今后的学习中我们会不断的边学边运用它,而且我们还可以将它用在我们专业的学习中。

5 参考文献

[1] 刘泉,数字信号处理原理与实现,电子工业出版社,2009

[2] 郭仕剑,MATLAB7.x数字信号处理,人民邮电出版社,2007

[3] 陈怀琛,MATLAB及在电子信息课程中的应用,电子工业出版社,2006

[4] 高会生,MATLAB实用教程(第2版),电子工业出版社,2010

[5] 陈怀琛,数字信号处理教程——MATLAB释义与实现,电子工业出版社,2004

附录

辅助函数1

function [Hr,w,a,L] = Hr_Type1(h);

% 计算第一种低通滤波器设计的振幅响应Hr(w)

% -----------------------------------------------------------

% [Hr,w,a,L] = Hr_Type1(h)

% Hr = 振幅响应

% w = 在[0 pi] 区间内计算Hr 的500个频率点

% a = 第一种低通滤波器的系数

% L = Hr的阶次

% h = 第一种低通滤波器的频率响应

%

M = length(h);

L = (M-1)/2;

a = [h(L+1) 2*h(L:-1:1)]; % 1乘(L+1) 行向量row vector n = [0:1:L]; % (L+1)乘1 列向量

w = [0:1:500]'*pi/500;

Hr = cos(w*n)*a';

辅助函数2

function [db,mag,pha,grd,w] = freqz_m(b,a);

% freqz 子程序的改进版本

% ------------------------------------

% [db,mag,pha,grd,w] = freqz_m(b,a);

% db = [0 到pi弧度]区间内的相对振幅(db)

% mag = [0 到pi弧度]区间内的绝对振幅

% pha = [0 到pi弧度]区间内的相位响应

% grd = [0 到pi弧度]区间内的群迟延

% w = [0 到pi弧度]区间内的501个频率样本向量% b = Ha(z)的分子多项式系数(对FIR b=h)

% a = Ha(z)的分母多项式系数(对FIR: a=[1])

%

[H,w] = freqz(b,a,1000,'whole');

H = (H(1:1:501))'; w = (w(1:1:501))';

mag = abs(H);

db = 20*log10((mag+eps)/max(mag));

pha = angle(H);

% pha = unwrap(angle(H));

grd = grpdelay(b,a,w);

% grd = diff(pha);

% grd = [grd(1) grd];

% grd = [0 grd(1:1:500); grd; grd(2:1:501) 0];

% grd = median(grd)*500/pi;

fir低通滤波器matlab编程滤波前后图形

Matlab实现振动信号低通滤波 附件txt中的数字是一个实测振动信号,采样频率为5000Hz,试设计一个长度为M=32的FIR低通滤波器,截止频率为600Hz,用此滤波器对此信号进行滤波。 要求: (1)计算数字截止频率; (2)给出滤波器系数; (3)绘出原信号波形; (4)绘出滤波后的信号波形; 解答过程: 第一部分:数字截止频率的计算 数字截止频率等于截止频率除以采样频率的一半,即 n=600/5000/2=0.24第二部分:滤波器系数的确定 在matlab中输入如下程序,即可得到滤波器系数: n=32 Wn=0.24 b=fir1(n,Wn) 得到的滤波器系数b为 Columns 1 through 9 -0.0008-0.0018-0.0024-0.00140.00210.00750.01100.0077-0.0054Columns 10 through 18

-0.0242-0.0374-0.02990.00870.07560.15370.21660.24070.2166Columns 19 through 27 0.15370.07560.0087-0.0299-0.0374-0.0242-0.00540.00770.0110Columns 28 through 33 0.00750.0021-0.0014-0.0024-0.0018-0.0008 第三部分:原信号波形 将附件4中的dat文件利用识别软件读取其中的数据,共1024个点,存在TXT文档中,取名bv.txt,并复制到matlab的work文件夹。 在matlab中编写如下程序: x0=load('zhendong.txt');%找到信号数据地址并加载数据。 t=0:1/5000:1023/5000;%将数据的1024个点对应时间加载 figure(1); plot(t,x0); xlabel('t/s'); ylabel('幅值'); 运行之后就得到如下波形,即振动信号的原始波形图: 1.5 1 0.5 幅 值

matlab滤波器设计

长安大学 数字信号处理综合设 计 专业_______电子信息工程_______ 班级__24030602___________ 姓名_______张舒_______ 学号2403060203 指导教师陈玲 日期_______2008-12-27________

一、课程设计目的: 1. 进一步理解数字信号处理的基本概念、基本理论和基本方法; 2.熟悉在Windows环境下语音信号采集的方法; 3.学会用MATLAB软件对信号进行分析和处理; 4.综合运用数字信号处理理论知识,掌握用MATLAB软件设计FIR和IIR数字滤波器的方法; 5. 提高依据所学知识及查阅的课外资料来分析问题解决问题的能力。 二、课程设计内容: 1.语音信号的采集 利用windows下的录音机录制一段自己的话音,时间控制在1秒左右;并对语音信号进行采样,理解采样频率、采样位数等概念。 2.语音信号的频谱分析 利用函数fft对采样后语音信号进行快速傅里叶变换,得到信号的频谱特性。 3.设计数字滤波器 采用窗函数法和双线性变换法设计下列要求的三种滤波器,根据语音信号的特点给出有关滤波器的性能指标: 1)低通滤波器性能指标,fp=1000Hz,fc=1200Hz, As=100dB,Ap=1dB; 2)高通滤波器性能指标,fc=4800Hz,fp=5000Hz ,As=100dB,Ap=1dB; 3)带通滤波器性能指标,fp1=1200Hz,fp2=3000Hz,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB。 4.对语音信号进行滤波 比较用两种方法设计的各滤波器的性能,然后用性能好的滤波器分别对采集的语音信号进行滤波;并比较滤波前后语音信号的波形及频谱,分析信号的变化。 5.回放语音信号,感觉滤波前后的声音变化。 三、实验原理 (一)基于双线性Z变换法的IIR数字滤波器设计 由于的频率映射关系是根据推导的,所以使jΩ轴每隔2π/Ts便映射到单位圆上一周,利用冲激响应不变法设计数字滤波器时可能会导致上述的频域混叠现象。为了克服这一问题,需要找到由s平面到z平面的另外的映射关系,这种关系应保证: 1) s平面的整个jΩ轴仅映射为z平面单位圆上的一周; 2) 若G(s)是稳定的,由G(s)映射得到的H(z)也应该是稳定的; 3) 这种映射是可逆的,既能由G(s)得到H(z),也能由H(z)得到G(s); 4) 如果G(j0)=1,那么。 双线性Z变换满足以上4个条件的映射关系,其变换公式为

matlab中关于数字滤波器的函数介绍

MATLAB下的数字信号处理实现示例 一信号、系统和系统响应 1、理想采样信号序列 (1)首先产生信号x(n),0<=n<=50 n=0:50; %定义序列的长度是50 A=444.128; %设置信号有关的参数 a=50*sqrt(2.0)*pi; T=0.001; %采样率 w0=50*sqrt(2.0)*pi; x=A*exp(-a*n*T).*sin(w0*n*T); %pi是MATLAB定义的π,信号乘可采用“.*”close all %清除已经绘制的x(n)图形 subplot(3,1,1);stem(x); %绘制x(n)的图形 title(‘理想采样信号序列’); (2)绘制信号x(n)的幅度谱和相位谱 k=-25:25; W=(pi/12.5)*k; X=x*(exp(-j*pi/12.5)).^(n’*k); magX=abs(X); %绘制x(n)的幅度谱 subplot(3,1,2);stem(magX);title(‘理想采样信号序列的幅度谱’); angX=angle(X); %绘制x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (‘理想采样信号序列的相位谱’)(3)改变参数为:1,0734.2,4.0,10==Ω==TAα n=0:50; %定义序列的长度是50 A=1; %设置信号有关的参数 a=0.4; T=1; %采样率 w0=2.0734; x=A*exp(-a*n*T).*sin(w0*n*T); %pi是MATLAB定义的π,信号乘可采用“.*”close all %清除已经绘制的x(n)图形 subplot(3,1,1);stem(x); %绘制x(n)的图形 title(‘理想采样信号序列’); k=-25:25; W=(pi/12.5)*k; X=x*(exp(-j*pi/12.5)).^(n’*k); magX=abs(X); %绘制x(n)的幅度谱 subplot(3,1,2);stem(magX);title(‘理想采样信号序列的幅度谱’); angX=angle(X); %绘制x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (‘理想采样信号序列的相位谱’) 2、单位脉冲序列 在MatLab中,这一函数可以用zeros函数实现: n=1:50; %定义序列的长度是50 x=zeros(1,50); %注意:MATLAB中数组下标从1开始

基于MATLAB的FIR数字低通滤波器设计.doc

基于MATLAB的FIR数字低通滤波器设计 ..基于MATLAB的FIR数字低通滤波器设计作者: 周龙刚(陕西理工学院物理与电信工程学院通信工程专业2011级4班,陕西汉中723003)指导老师: 井敏英[摘要]FIR数字滤波器是数字信号处理的一个重要组成部分,由于FIR数字滤波器具有严格的线性相位,因此在信息的采集和处理过程中得到了广泛的应用。 本文介绍了FIR数字滤波器的概念和线性相位的条件,分析了窗函数法、频率采样法和等波纹逼近法设计FIR滤波器的思路和流程。在分析三种设计方法原理的基础上,借助Matlab仿真软件工具箱中的fir1实现窗函数法中的哈明窗设计FIR低通滤波器。[关键词] FIR数字滤波器;线性相位窗函数;法哈明窗;MatlabDesigning FIR low-pass digital filter based on VHDL Zhoulonggang(Grade11,Class4,Major of Communication Engineering,School of Physics and Telecommunication Engineering , Shaanxi University of Technology,Hanzhong 723003,Shaanxi)Tutor:JingYingMinAbstract:FIR digital filter is an important part of digital signal processing,the FIR digitalfilter 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 functionmethod and frequency sampling method and the ripple

基于matlab的数字滤波器设计

淮北煤炭师范学院 2009届学士学位论文 基于MA TLAB的数字滤波器设计 学院、专业物理与电子信息学院 电子信息科学与技术 研究方向基于MATLAB的数字滤波器设计 学生姓名耿博 学号200513432024 指导教师姓名邹锋 指导教师职称讲师 2009 年4 月18

基于MATLAB的数字滤波器设计 耿博 (淮北煤炭师范学院物理与电子信息学院235000) 摘要随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。 数字滤波是数字信号处理的重要内容,数字滤波器可分为IIR和FIR两大类。对于IIR数字滤波器的设计,需要借助模拟原型滤波器,再将模拟滤波器转化为数字滤波器,文中采用的设计方法是脉冲响应不变法、双向性变换法和完全函数设计法;对于FIR数字滤波器的设计,可以根据所给定的频率特性直接设计,文中采用的设计方法是窗函数法。本文根据IIR滤波器和FIR滤波器的特点,在MATLAB坏境下分别用双线性变换法设计IIR和用窗函数设计FIR数字滤波器,并对采集的语音信号进行分析,最后给出了IIR和FIR对语音滤波的效果。 关键词数字滤波器;IIR ;FIR ;MATLAB

The Design of Digital Filter based on MATLAB Geng Bo School of Physics and Electronics Information, Huaibei Coal Industry Teachers? College, 235000 ABSTRACT Along with the information age and the digital world arrival, the digital signal processing has become a now extremely important discipline and the area of technology.The digital signal processing in the correspondence, the multitudinous domains the pronunciation such as the image, the automatic control, the radar, the military, the aerospace, the medical service and the domestic electric appliances and so on have obtained the widespread application.In the digital signal processing application, the digital filter are extremely important and have obtained the widespread application. The digital filter are the digital signal processing important content, the digital filter may divide into IIR and the FIR two main kinds. As for the IIR digital filter design, we need the help of analog prototype filter, and then transform analog filter into digital filter. In the paper we use the design of the pulse response invariable method, the bilinear method and full function design; as for the FIR filter, we can design it directly based on the giving frequency, in the paper it uses the design of the window function.This article according to the IIR filter and the FIR filter characteristic, uses the bilinearity method of transformation under the MATLAB bad boundary to design IIR and to design the FIR numeral filter separately with the window box number, and carries on the analysis to the gathering pronunciation signal, and finally gives IIR and FIR to the pronunciation filter effect. Keywords Digtial Filter;IIR;FIR;MATLAB

数字滤波器的MATLAB设计与DSP上的实现

数字滤波器的MAT LAB设计与 DSP上的实现 数字滤波器的MATLAB 设计与DSP上的实现 公文易文秘资源网佚名2007-11-15 11:56:42我要投稿添加到百度搜藏 摘要:以窗函数法设计线性相位FIR数字滤波器为例,介绍用MATLAB工具软件设计数字滤波器的方法和在定点DSP上的实现。实现时,先在CCS5000仿真开发,然后将程序加载到TMS320VC5409评估板上实时运行,结果实现了目标要求。文中还讨论了定标、误差、循环寻址等在DSP上实现的关键问题。关键词 摘要:以窗函数法设计线性相位 FIR数字滤波器为例,介绍用 MATLAB工具软件设计数字滤波器的方法和在定点DSP上的实现。实现时,先在 CCS5000仿真开发,然后将程序加载到 TMS320VC5 409评估板上实时运行,结果实现了目标要求。文中还讨论了定标、误差、循环寻址等在DSP上实 现的关键问题。 关键词:数字滤波器MATLAB DSP 引言 随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应

用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。 1数字滤波器的设计 1.1数字滤波器设计的基本步骤 数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR )滤波器和有限长冲激响应(FIR )滤波器。IIR滤波器的特征是,具有无限持续时间冲激响应。种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。FIR滤波器的冲激响应只能延续一定时间, 在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等。随着 MATLAB软件尤 其是MATLAB的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。 数字滤波器设计的基本步骤如下: (1确定指标 在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给岀幅度和相位响应。幅度指标主要以两种方式给岀。第一种是绝对指标。它提供对幅度响应函数的要求,一般应用于FI R滤波器的设计。第二种指标是相对指标。它以分贝值的形式给岀要求。在工程实际中,这种指标最受欢迎。对于相位响应指标形式,通常希望系统在通频带中人有线性相位。运用线性相位响应指标进行滤波器设计具有如下优点:①只包含实数算法,不涉及复数运算;②不存在延迟失真,只有固定数量的延迟;③长度为N的滤波器(阶数为N-1),计算量为N/2数量级。因此,本文中滤波器的设计就以线性相位FIR滤波器的设计为例。 (2)逼近

数字滤波器matlab的程序

数字滤波器matlab的源代码 function lvbo(Ua,Ub,choise) %参考指令:lvbo(2*pi,10*pi,1/0/-1) U1=min(Ua,Ub); U2=max(Ua,Ub); Us=16*U2; T=2*pi/Us; T_sum=4*max(2*pi/Ua,2*pi/Ub); sum=T_sum/T; t=T:T:T_sum; x=sin(U1*t)+0.8*sin(U2*t); X=DFT(x); figure(1); subplot(221) U=Us/sum:Us/sum:Us; stem(U,abs(X));grid on axis([Us/sum,Us/2,0,1.2*max(abs(X))]) title('原模拟信号采样频谱图') Ucd=U1+(U2-U1)*1/5;Usd=U2-(U2-U1)*1/5; switch choise case 1 Hz_ejw=IIR_DF_BW(Ucd,1,Usd,30,T,sum); case -1 Hz_ejw=IIR_DF_CF(Ucd,1,Usd,30,T,sum); case 0 Hz_ejw=FIR_DF_HM(U1,U2,T,sum); otherwise Hz_ejw=IIR_DF_BW(Ucd,1,Usd,30,T,sum); end Y=X.*Hz_ejw; y=1/sum*conj(DFT(conj(Y))); figure(1); subplot(224) plot(t,real(y)); title('模拟信号滤波后');grid on axis([0,T_sum,-max(real(y))*1.5,max(real(y))*1.5]) subplot(222); plot(t,x); hold on

实验11 用MATLAB设计FIR数字滤波器

实验11 用MATLAB 设计FIR 数字滤波器 一、实验目的: 1、加深对窗函数法设计FIR 数字滤波器的基本原理的理解。 2、学习用MA TLAB 语言的窗函数法编写设计FIR 数字滤波器的程序。 3、了解MATLAB 语言有关窗函数法设计FIR 数字滤波器的常用函数用法。 二、实验内容及步骤 2、选择合适的窗函数设计FIR 数字低通滤波器,要求: w p =0.2π,R p =0.05dB ; w s =0.3π,A s =40dB 。描绘该滤波器的脉冲响应、窗函数及滤波器的幅频响应曲线和相频响应曲线。 分析:根据设计指标要求,并查表11-1,选择汉宁窗。程序清单如下: function hd=ideal_lp(wc,N) wp=0.2*pi;ws=0.3*pi;deltaw=ws-wp; tao=(N-1)/2; n=[0:(N-1)]; m=n-tao+eps; hd=sin(wc*m)./(pi*m); function[db,mag,pha,grd,w]=freqz_m(b,a); [H,w]=freqz(b,a,1000,'whole'); H=(H(1:501))';w=(w(1:501))'; mag=abs(H); db=20*log10((mag+eps)/max(mag)); pha=angle(H); grd=grpdelay(b,a,w); wp=0.2*pi;ws=0.3*pi;deltaw=ws-wp; wc=(ws+wp)/2; 课程名称:数字信号处理 实验成绩: 指导教师: 实 验 报 告 院系: 信息工程学院 班级: 电信二班 学号: 姓名: 日期:

matlab的fir高通数字滤波器的设计和分析

摘要 无限长脉冲数字滤波器的设计方法只考虑了幅度特性,没有考虑相位特性,所设的滤波器一般是某种确定的非线性相位特性。有限脉冲响应(FIR)滤波器在保证了幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。 本课题利用MATLAB软件实现。MATLAB是“矩阵实验室”(MATrix LABoratoy)的缩写,是一种科学计算软件,它使用方便,输入简捷,运算高效,内容丰富,因此利用MATLAB软件,通过一系列较为系统的函数法,根据已知的技术指标,就可以设计出满足要求的滤波器。 关键字:MATLAB;窗函数;FIR带阻数字滤波器;线性相位

目录 1.FIR滤波器简介 (3) 1.1 FIR的特点 (3) 2.2线性相位 (3) 2.主要设计内容 (5) 3.窗函数 (6) 3.1常用窗函数 (6) 3.2窗函数的指标 (9) 4应用窗函数法设计 FIR 数字滤波器的步骤 (10) 4.1数字高通滤波器的设计: (10) 总结 (11) 参考文献 (12) 附录 (13)

1.FIR 滤波器简介 数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数 学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR )滤波器和有限冲激响应(FIR )滤波器。 1.1 FIR 的特点 FIR 滤波器的主要优点为:系统总是稳定的,FIR 滤波器的系统函数可以表示为 (2-1) 易知,H (z ) 在 Z 平面上有 N -1个零点,z =0 是 N -1 阶极点,因此FIR 系统总是稳定的(极点都在单位圆内)。FIR 滤波器的优点之二:容易实现线性相位。当 FIR 系统的单位冲激响应满足 时,该系统具有线性 相位。 (N 为奇数) (2-2) (N 为偶数) (2-3) FIR 滤波器的优点之三:允许设置多通带(或多阻带)滤波器。FIR 滤波器的优点之四:FIR 滤波器可以采用 FFT 方法实现其功能,从而大大提高效率。FIR 滤波器的缺点:由于 FIR 系统只有零点,因此这类系统不像FIR 滤波器不像 IIR 滤波器那样容易取得比较好的通带与阻带衰减特性。要取得较好的衰减特性,一般要求 H (z ) 的阶次较高。综合起来看, FIR 滤波器具有IIR 滤波器没有的许多特点,得到了越来越广泛的应用。 FIR 滤波器的设计方法主要有三种:a.窗函数设计法;b.频率抽样发;c.最小平法抽样法;这里我主要讨论在MATLAB 环境下通过调用信号分析与处理工具箱的几类窗函数来设计滤波器并分析与比较其性能 2.2线性相位 一个单一频率的正弦信号通过一个系统,假设它通过这个系统的时间需要t ,则这个信号的输出相位落后原来信号wt 的相位。从这边可以看出,一个正弦信号通过一个系统落后的相位等于它的w *t ;反过来说,如果一个频率为w 的正弦信号通过系统后,它的相位落后delta ,则该信号被延迟了delta /w 的时间。在实 11 1) 1(10)()()()(--=-----=-===∑∑N N n n N N N n n z z f z n h z z n h z H )1()(n N h n h --±=2/)1()(--=N ωω?2/)1(2/)(--=N ωπω?

matlab数字滤波器设计程序

%要求设计一butterworth低通数字滤波器,wp=30hz,ws=40hz,rp=0.5,rs=40,fs=100hz。>>wp=30;ws=40;rp=0.5;rs=40;fs=100; >>wp=30*2*pi;ws=40*2*pi; >> [n,wn]=buttord(wp,ws,rp,rs,'s'); >> [z,p,k]=buttap(n); >> [num,den]=zp2tf(z,p,k); >> [num1,den1]=impinvar(num,den); Warning: The output is not correct/robust. Coeffs of B(s)/A(s) are real, but B(z)/A(z) has complex coeffs. Probable cause is rooting of high-order repeated poles in A(s). > In impinvar at 124 >> [num2,den2]=bilinear(num,den,100); >> [h,w]=freqz(num1,den1); >> [h1,w1]=freqz(num2,den2); >>subplot(1,2,1); >>plot(w*fs/(2*pi),abs(h)); >>subplot(1,2,2); >>plot(w1*fs/(2*pi),abs(h1)); >>figure(1); >>subplot(1,2,1); >>zplane(num1,den1); >>subplot(1,2,2); >>zplane(num2,den2);

高级数字滤波器设计及Matlab实现

高级数字滤波器设计及Matlab 实现 利用Parks-McClellan 算法设计线性相位FIR 滤波器 一、 算法原理 长度为2n+1的线性相位数字滤波器的传输函数为:20 ()n k k k G z h Z -== ∑。当 Z=exp(j T ω)=exp(2j F π)时,可得到频率响应: ()exp(2)cos 2n k k G F j nF d k F ππ==-∑ exp(2)()j F H F π=- 其中2n k k d h -=,k=0,……,n-1,0n d h = max ()()()W F D F H F - 对于一个理想的低通滤波器上式中的H(F)可以表示为: 误差加权函数: 允许设计者自己给定通带和阻带内的误差范围。令p s B B A = ,设计长度为2n+1的线性相位低通滤波器只要找到k d 并使得m a x ()()()W F D F H F -最小。 设空间A 是[0,1/2]的封闭子空间,为了使0 ()cos 2n k k H F d kF π== ∑是D(F) 在A 上唯一的最佳逼近,加权误差方程()()[()()]E F W F D F H F =-在A 上至少要有n+2个交错点。因此1()()i i E F E F E -=-=±,011,n i F F F F A +<∈ ,

max ()E E F =。算法的流程如图1所示。 对于给定的n+2个频率点,需要计算n+2个方程: ()(()())(1)k k k k W F H F D F ρ-=-- 写成矩阵的形式就是: 图 1.

0000001 1 1 1 1011 1 1 1 11 1cos 2cos 4cos 2()()11cos 2cos 4cos 2()()()(1)1cos 2cos 4cos 2()n n n n n n n F F nF W F d D F d F F nF D F W F d D F F F nF W F ππππππρπππ++++++?? ???? ?? ?? ??-????????????=??????????????????-?? ????? ? 通过该方程组可得: 其中: 利用拉格朗日插值公式可得: 这里 利用求得的H(F)求出误差函数E(F)。如果对所有的频率都有()E F ρ≤,说明ρ是纹波极值,交错频率点121,n F F F + 是交错频率点。若存在某些频率使得()E F ρ>,说明初始交错点组中的某些点需要交换。 对于上次确定的121,n F F F + 中每一点,都检查其附近是否存在某一频率 ()E F ρ>,如果有再在该点附近找出局部极值点,并用该,点代替原来的

基于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 的长度。

基于matlab的FIR数字滤波器设计(多通带,窗函数法)

数字信号处理 课程设计报告 设计名称:基于matlab的FIR数字滤波器设计 彪

一、课程设计的目的 1、通过课程设计把自己在大学中所学的知识应用到实践当中。 2、深入了解利用Matlab设计FIR数字滤波器的基本方法。 3、在课程设计的过程中掌握程序编译及软件设计的基本方法。 4、提高自己对于新知识的学习能力及进行实际操作的能力。 5、锻炼自己通过网络及各种资料解决实际问题的能力。 二、主要设计内容 利用窗函数法设计FIR滤波器,绘制出滤波器的特性图。利用所设计的滤波器对多个频带叠加的正弦信号进行处理,对比滤波前后的信号时域和频域图,验证滤波器的效果。 三、设计原理 FIR 滤波器具有严格的相位特性,对于信号处理和数据传输是很重要的。 目前 FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求高的时候是比较灵活方便的。 如果 FIR 滤波器的 h(n)为实数, 而且满足以下任意条件,滤波器就具有准确的线性相位: 第一种:偶对称,h(n)=h(N-1-n),φ (ω)=-(N-1)ω/2 第二种:奇对称,h(n)=-h(N-1-n), φ(ω)=-(N-1)ω/2+pi/2 对称中心在n=(N-1)/2处 四、设计步骤 1.设计滤波器 2.所设计的滤波器对多个频带叠加的正弦信号进行处理 3.比较滤波前后信号的波形及频谱 五、用窗函数设FIR 滤波器的基本方法 基本思路:从时域出发设计 h(n)逼近理想 hd(n)。设理想滤波器的单位响应在时域表达为hd(n),则Hd(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数字滤波器设计及MATLAB使用要点

数字信号处理课程设计 《数字信号处理》 课程设计报告 FIR数字滤波器设计及MATLAB实现 专业:通信工程 班级:通信1101班 组次:第9组 姓名及学号: 姓名及学号:

目录 一、设计目的 (3) 二、设计任务 (3) 三、设计原理 (3) 3.1窗函数法 (3) 3.2频率采样法 (4) 3.3最优化设计 (5) 3.3.1等波纹切比雪夫逼近准则 (5) 3.3.2仿真函数 (6) 四、设计过程 (7) 五、收获与体会 (13) 参考文献 (13)

FIR数字滤波器设计及MATLAB实现 一、设计目的 FIR滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基 本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性, 同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR 滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。滤波器设 计是根据给定滤波器的频率特性,求得满足该特性的传输函数。 二、设计任务 FIR滤波器设计的任务是选择有限长度的() H e满足一定 h n,使传输函数()jw 的幅度特性和线性相位要求。由于FIR滤波器很容易实现严格的线性相位,所以FIR 数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。 设计过程一般包括以下三个基本问题: (1)根据实际要求确定数字滤波器性能指标; (2)用一个因果稳定的系统函数去逼近这个理想性能指标; (3)用一个有限精度的运算去实现这个传输函数。 三、设计原理 FIR滤波器设计的任务是选择有限长度的() H e满足一定 h n,使传输函数()jw 的幅度特性和线性相位要求。由于FIR滤波器很容易实现严格的线性相位,所以FIR数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。 设计过程一般包括以下三个基本问题: (1)根据实际要求确定数字滤波器性能指标; (2)用一个因果稳定的系统函数去逼近这个理想性能指标; (3)用一个有限精度的运算去实现这个传输函数。 3.1窗函数法 设计FIR数字滤波器的最简单的方法是窗函数法,通常也称之为傅立叶级数法。FIR数字滤波器的设计首先给出要求的理想滤波器的频率响应()jw H e,设计 d

利用MATLAB窗函数法设计一个可实现的FIR低通滤波器。

一、实验目的 1.掌握在MATLAB中窗函数的使用方法,了解不同窗函数之间的差别。 2.使用窗函数法设计一个可实现的FIR低通滤波器。 3.观察在相同长度下,不同的窗函数设计出来的滤波器有什么差别。 4.观察同一个窗在不同长度下设计出来的滤波器有什么差别。 二、实验条件 PC机,MATLAB7.0 三、实验内容 1)通过help查找窗函数在MATLAB中如何实现

通过example了解MATLAB中窗函数的实现,并且利用矩形窗,汉宁窗,哈明窗,布莱克曼窗和凯塞窗来进行接下来的实验。 2)设计物理可实现的低通滤波器 设计思路:因为要设计FIR有限脉冲响应滤波器,通常的理想滤波器的单位脉冲响应h是无限长的,所以需要通过窗来截断它,从而变成可实现的低通滤波器。程序如下:clc;clear all; omga_d=pi/5; omga=0:pi/30:pi; for N=3:4:51; w1= window(@blackman,N); w2 = window(@hamming,N); w3= window(@kaiser,N,2.5); w4= window(@hann,N); w5 = window(@rectwin,N); M=floor(N/2); subplot(311);plot(-M:M,[w1,w2,w3,w4,w5]); axis([-M M 0 1]); legend('Blackman','Hamming','kaiser','hann','rectwin'); n=1:M; hd=sin(n*omga_d)./(n*omga_d)*omga_d/pi; hd=[fliplr(hd),1/omga_d,hd]; h_d1=hd.*w1';h_d2=hd.*w2';h_d3=hd.*w3';h_d4=hd.*w4';h_d5=hd.*w5'; m=1:M; H_d1=2*cos(omga'*m)*h_d1(M+2:N)'+h_d1(M+1); H_d2=2*cos(omga'*m)*h_d2(M+2:N)'+h_d2(M+1); H_d3=2*cos(omga'*m)*h_d3(M+2:N)'+h_d3(M+1); H_d4=2*cos(omga'*m)*h_d4(M+2:N)'+h_d4(M+1); H_d5=2*cos(omga'*m)*h_d5(M+2:N)'+h_d5(M+1); subplot(312);plot(omga,[H_d1,H_d2,H_d3,H_d4,H_d5]); legend('Blackman','Hamming','kaiser','hann','rectwin'); subplot(313);plot(abs([fft(h_d1);fft(h_d2);fft(h_d3);fft(h_d4);fft(h_d5)] )'); pause(); end 程序分析: 整个对称窗的长度为N,然而为了在MATLAB中看到窗函数在负值时的形状需将N 变为它的一半,即为2M+1个长度。窗长设置为从3开始以4为间隔一直跳动51。则长度相同的不同窗函数在时域[-M,M]的形状如第一个图所示。 对窗函数进行傅里叶变换时,将零点跳过去先构造一个一半的理想滤波器的脉冲响应hd,再将零点位置求导得出的数赋值进去。将生成的hd左右颠倒形成了一个理想的滤波器的脉冲响应。将构造的理想滤波器的脉冲响应依次与之前定义的窗函数相乘,相乘出来的为列向量,用转置将其变成行向量,形成的h_d就是非理想的低通滤波器的脉冲响应序列。因为h_d为对称奇数长度序列,它的DTFT可以是二倍的离散余弦变化,而零点的位置则直接带入求出,两者相加则是H_d。 则第二个图表示的是五个矩阵向量在频域的变化,而第三个图表示的是五个非理想低

相关文档
相关文档 最新文档