音乐信号滤波去噪——使用最优等波纹法设计的FIR滤波器

音乐信号滤波去噪——使用最优等波纹法设计的FIR滤波器
音乐信号滤波去噪——使用最优等波纹法设计的FIR滤波器

音乐信号滤波去噪——使用最优等波纹

法设计的FIR滤波器

学生姓名:*** 指导老师:***

摘要本课程设计是设计和使用FIR滤波器滤除信号中的噪声。本次设计是在MATLAB软件平台上进行的,采用最优等波纹法设计FIR滤波器。原始信号是录音采集的音乐信号,加入一个单频噪声后当作干扰后的信号,通过设计的FIR滤波器还原成原始信号。本次课程设计中设计的滤波器起到了很好的滤波作用,滤波后的信号和原始信号基本一样,达到了设计目的。

关键词音乐信号;FIR滤波器;最优等波纹法;MATLAB

1 引言

滤波器作为通信系统的基本模块,是指执行信号处理功能的电子系统,它专门用于去除信号中不想要的或者增强所需成分。根据性质,滤波器可以分为非线性的、线性的、时不变的、时变的(自适应的),连续的、离散的(数字的)、无限脉冲响应(IIR)的、有限脉冲响应(FIR)的等。

选择和过滤信号是滤波器的重要功能。从频率域上看,就是将有用的信号频率成分选择出来,而阻止其他频率成分的信号或干扰。根据信号过滤的频域特征,又可将滤波器分为低通、带通、高通、带通、带阻、全通以及梳状滤波器等类型。能够通过滤波器的信号频率部分称为通带,而被阻止的频率部分称为阻带。

1.1课程设计的目的

(1)巩固和扩大所学数字信号处理,信号与系统及通信原理等专业课程的知识。

(2)综合使用这些知识和技术完成通信系统中的数字信号处理算法的设计,激发学习兴趣和培养独立思考和动手能力。

1.2课程设计的要求

进一步熟悉数字信号处理算法和数字信号处理系统。

(1)将课程设计内容用MATLAB实现。

(2)设计过程中,要求独立思考,刻苦钻研,按时、全面的完成规定的设计任务。

(3)设计报告必须由设计者独立编写,不得抄袭。报告内容简明扼要,条例清楚。

(4)按时完成设计任务,准时上交设计报告的打印件。

1.3设计平台

本次课程设计的设计平台是MATLAB。

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

MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。

特点

1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;

2) 具有完备的图形处理功能,实现计算结果和编程的可视化;

3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;

4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方

便实用的处理工具。

2 设计原理

2.1 FIR滤波器

FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,是数字信号处理

系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR 滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。

有限长单位冲激响应(FIR )滤波器有以下特点: (1) 系统的单位冲激响应h (n)在有限个n 值处不为零;

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

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

设FIR 滤波器的单位冲激响应h (n)为一个N 点序列,0 ≤ n ≤ N —1,则滤波器的系统函数为

H(z)=∑h(n)*z^-n

(2.1)

就是说,它有(N —1)阶极点在z = 0处,有(N —1)个零点位于有限z 平面的任何位置。FIR 滤波器的基本结构有:横截型(卷积型、直接型)、级联型、频率抽样型、快速卷积结构。

FIR 滤波器的基本设计方法有:窗口设计法、频率采样设计法、最优等波纹设计法。

2.2最优等波纹设计法

窗口法设计和频率采样设计都存在某些缺陷。首先,在设计中不能将边缘频率p ω和

s ω精确地给定。其次,不能够同时标定波纹因子δ1和δ2。最后,近似误差(即理想响

应和实际响应之间的差)在频率区间上不是均匀分布的。而最优等纹波设计法能解决上面三个问题。

对于线性相位FIR 滤波器来说,有可能导得一组条件,对这组条件能够证明,在最

大近似误差最小化的意义下这个设计解是最优的(有时就称最大值最小或切比雪夫(Chebyshev )误差)。具有这种性质的滤波器就是通过最优等波纹设计法设计得到的等波纹滤波器。 切比雪夫近似问题现在能定义为:

确定这组系数)(~n a 或)(~n b 或)(~n c 或)(~n d [或等效为a(n)或b(n)或c(n)或d(n)]以使在

通带和阻带内E(w)的最大绝对值最小,即

)](max min[ωωE S

(2..2)

交错点定理:

设S 是闭区间[0,π]内任意闭合子集,为使P (ω)是在S 上对)(ωdr H 的唯一最大值

最小近似,其必要与充分条件是E (ω)在S 内至少呈现出(L+2)个“交错点”或极值频率;这就是说,在S 内一定存在(L+2)个频率 i ω使之有

E(i ω)=-E(1-i ω)=|)(|max ωE S

±

(2.3)

S L ∈<<

将这个定理与前面的结论结合在一起,表明最优等波纹滤波器在S 内它的误差函数

不是有(L+2)个就是有(L+3)个交错点。 Parks-McClellan 算法:

假定滤波器长度M (或L )和比值12/δδ已知,选取加权函数,正确的选定阶M ,

当这个解得到时就有2δδ=。M 和δ是互为关联的;M 愈大,δ就愈小。近似的M 可由下面

这个公式得到。

p

s M ωωωω

δδ-=?+?--=;1285.213log 20?2110 (2.4)

Parks-McClellan 算法从估算(L+2)个极值频率{i ω}开始并估计出在这些频率上的

最大误差δ。然后通过(2.3)式给出的点拟合一个L 阶多项式。在一个很细的密度上确定局部最大误差,并在这些新的极值上调整极值频率{i ω}。通过这些新的极值频率又拟合出一个新的L 阶多项式,这个过程一直重复下去。这一迭代过程一直持续到最优一组频率{i ω}和全局最大误差δ被找到为止。最后脉冲响应被计算出来。

由于是对M 的近似,最大误差δ可能不等于2δ。若是这样,那么必须增大M (若

δ>2δ),或者减小M (若δ<2δ),再求出一个新的δ。重复这个过程直到δ<2δ为止。这样,最优等波纹FIR 滤波器就确定了。

Parks-McClellan 算法在MATLAB 中作为一个称为firpm 的函数是可以得到的,这个函数一种的句法是 [h]=firpm(N,f,m,weights);

设计一N 阶(注意,滤波器长度是M=N+1)FIR 数字滤波器,其频率响应由数组f 和m

给定。数组f 包含以π为单位的频带边缘频率,也即0.0

为了估计出滤波器的阶N ,SP 工具箱提供了函数firpmord 。这个函数也能估计在

firpm 函数中用到的其他参数。这个基本语法是 [N,f0,m0,weights]=firpmord(f,m,delta);

这个函数计算窗的阶N ,在f0中的归一化频带,m0中的振幅响应,以及在weights 中的频带加权值。向量f 是归一化频带边缘频率向量,m 是由f 定义的频带上给定期望振幅值的向量。F 的长度小于两倍m 的长度,也即f 不包括0或1。向量delta 给定在每个频带内的容度。估计出的参数现在能用于firpm 函数。

3设计步骤

3.1 设计流程图

录音

原始音乐信

号噪声

干扰后的音乐信号播放

FIR滤波器

滤波后的音乐信号播放

幅度、频谱

分析

幅度、频谱

分析

幅度、频谱

分析

音乐1

音乐2

音乐3

对比

对比

图3.1 总体设计流程图

估猜滤波器的阶N 得到滤波器系数

判断最小阻带衰减

Asd是否大于等于As

M=N+1

完成,最后一次得到的滤波器系数即最终设计值N=N+1或N=N-1

设计指标

YES

NO

图3.2 最优等波纹法设计FIR滤波器流程图

本课程设计的总体设计流程如图3.1所示。

利用最优等波纹法设计FIR滤波器的流程图如图3.2所示。

3.2 录制语音信号

(1)音乐信号的采集

本课程设计的原始信号是在Matlab软件平台下通过wavrecord函数录制的一段音乐信号(歌曲“伤心太平洋”中的一段)。利用函数wavrecord对语音信号进行采样,记住采样频率和采样时间。通过wavrecord函数的使用,很快理解了采样频率、采样时间等概念。采集完成后在信号中加入一个频率1500Hz的单频噪声,设计的任务即为从含噪信号中滤除单频噪声,还原原始信号。

>> Fs=8000; %设置录音采样率为8000次/s

>> T=5; %录音时间长度为5s

>> y=wavrecord(T*Fs,Fs);

%以double格式记录样值,单声道,输出值y在-1~1之间

%回车之后开始录音,5s之后将自动执行下一句

>>wavplay(y,Fs); %播放刚刚录音的结果

>> N=length(y); % 计算信号y的长度

>> fn=1500; % 单频噪声频率,此参数可改

>> t=0:1/Fs:(N-1)/Fs; % 计算时间范围,样本数除以采样频率

>> y=y';y1=y+0.3*sin(fn*2*pi*t); %加入单频噪声

>>wavplay(y1,Fs); %播放加入单频噪声的音乐信号

(2)原始信号和加噪信号的幅度和频谱分析

首先画出原始信号和加噪信号的时域波形;然后对原始信号和加噪信号进行快速傅里叶变换,得到信号的频谱特性。

>> Y=abs(fft(y));Y1=abs(fft(y1)); % 对原始信号和加噪信号进行fft变换,取幅度谱>> Y=Y(1:N/2);Y1=Y1(1:N/2); % 截取前半部分

>> deltaf=Fs/N; % 计算频谱的谱线间隔

>> f=0:deltaf:Fs/2-deltaf; % 计算频谱频率范围

>> subplot(2,2,1);plot(t,y);axis([0,5,-1.3,1.3]);grid on

>> xlabel('时间(单位:s)');ylabel('幅度');title('原始音乐信号');

>> subplot(2,2,2);plot( f,Y);grid on

>>xlabel('频率(单位:Hz)');ylabel('幅度谱');title('音乐信号幅度谱图');

>> subplot(2,2,3);plot(t,y1);axis([0,5,-1.3,1.3]);grid on

>> xlabel('时间(单位:s)');ylabel('幅度');title('加入单频干扰后的音乐信号');

>> subplot(2,2,4);plot(f,Y1);axis([0,4000,0,1500]);grid on

>> xlabel('频率(单位:Hz)');ylabel('幅度谱');title('加入干扰后的音乐信号幅度谱图');

1

2345-1-0.500.5

1时间(单位:s)

幅度

原始音乐信号

010002000300040000200

400600

800

频率(单位:Hz)

幅度谱音乐信号幅度谱图

1

2345

-1-0.500.5

1时间(单位:s)

幅度

加入单频干扰后的音乐信号0

1000200030004000

0500

1000

1500频率(单位:Hz)

幅度谱

加入干扰后的音乐信号幅度谱图

图3.3 原始信号和加入噪声后信号的幅度及其幅频特性图

原始信号和加噪信号的幅度和频谱如图3.3所示。加入噪声后,原始信号幅度受到

了一定的干扰。加噪后的信号频谱图中也多了一个1500Hz 的冲击频率。

3.3 滤波器设计

(1) 设计数字滤波器

因为噪声的频率是1500Hz ,所以设计各滤波器的性能指标如下所示:

Hz

f Hz f Hz

f Hz f p s s p 16001550145014002211====,A s =50dB ,R p =1 dB

>>fp1=1400;fs1=1450;fs2=1550;fp2=1600; Rp=1;As=50;

% 带阻滤波器设计指标

>>wp1=fp1/Fs*2*pi;ws1=fs1/Fs*2*pi;ws2=fs2/Fs*2*pi;wp2=fp2/Fs*2*pi; %将Hz 为单位的模拟频率换算为rad 为单位的数字频率 >>[delta1,delta2]=db2delta(Rp,As);

%把以dB 计的通带波纹和阻带衰减转换成相应

的容度(或波纹)

>>f1=[wp1,ws1,ws2,wp2]/pi;m=[1,0,1];delta=[delta1,delta2,delta1]; %设置firpmord 的

输入参数

>>[N,f1,m,weights]=firpmord(f1,m,delta);N

%估猜窗的阶N

N =

288

>> h=firpm(N,f1,m,weights); %通过Parks-McClellan算法计算N阶FIR数字滤波器的频率响应

>>[db,mag,pha,grd,w]=freqz_m(h,[1]); % 调用自编函数计算滤波器的频率特性

>> delta_w=2*pi/1000;

>> ws1i=floor(ws1/delta_w)+1;wp1i=floor(wp1/delta_w)+1;

>>ws2i=floor(ws2/delta_w)+1;wp2i=floor(wp2/delta_w)+1;

>> Asd=-max(db(ws1i:1:ws2i))

Asd =

43.7257

%校核最小阻带衰减并与As比较,然后增大(或降低)这个滤波器系数

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

>> N=N+1;

>>h=firpm(N,f1,m,weights);

>>[db,mag,pha,grd,w]=freqz_m(h,[1]); % 调用自编函数计算滤波器的频率特性

>> Asd=-max(db(ws1i:1:ws2i))

Asd =

42.3696

%校核最小阻带衰减并与As比较,然后增大(或降低)这个滤波器系数%-------------中间省略了一些重复的步骤

>> N=N+1;

>>h=firpm(N,f1,m,weights);

>>[db,mag,pha,grd,w]=freqz_m(h,[1]); % 调用自编函数计算滤波器的频率特性

>> Asd=-max(db(ws1i:1:ws2i))

Asd =

50.1366

%一直比较判断Asd和As的大小,当Asd第一次大于等于As时完成

%此时Asd>As,完成

>> N

N =

413

>> M=N+1

M =

414 %滤波器长度M=N+1

(2)画图分析滤波器的各参数

>> n=0:M;

>> subplot(2,2,1);stem(n,h);axis([0,M,-0.1,1])

>>xlabel('n');ylabel('h(n)');title('滤波器脉冲响应图');grid on

>> subplot(2,2,2);plot(w/pi,db); axis([0,1,-60,5]);

>> set(gca,'Xtick',[0,(wp1+ws1)/(2*pi),(wp2+ws2)/(2*pi),1],'Ytick',[-50,-1]);grid on >> xlabel('w/pi');ylabel('dB');title('滤波器幅度响应图');

>> subplot(2,2,3);plot(w/pi,pha); axis([0,1,-4,4]);grid on

>> xlabel('w/pi');ylabel('相位');title('滤波器相位响应图');

>> subplot(2,2,4);plot(w/pi,mag); axis([0,1,0,1.1]);grid on

>>xlabel('w/pi');ylabel('幅度mag');title('滤波器幅度响应图');

0.35630.3937

1

-50

-1

w/pi

d B

滤波器幅度响应图

100

200300400

0.5

1

n

h (n )

滤波器脉冲响应图

0.51

-4-2024w/pi

相位

滤波器相位响应图0

0.51

0.5

1

w/pi

幅度m a g

滤波器幅度响应图

图 3.4 最优等波纹的FIR滤波器

用最优等波纹法设计的FIR 滤波器的各参数特性如图3.4所示。观图可知,FIR 滤

波器符合设计要求。

3.4 信号滤波处理

用滤波器对信号进行滤波 >>[y_fil,ny]=conv_m(y1,t,h,n); %用设计好的滤波器处理干扰后的音乐信号 >> y_fil=y_fil(1:40000); %限定滤波后信号的长度

>> Y_fil=abs(fft(y_fil)); % 对原始信号和加噪信号进行fft 变换,取幅度谱 >> Y_fil=Y_fil(1:N/2);

% 截取前半部分

3.5 结果分析

(1) 在波形及频谱上比较滤波前后音乐信号 >> subplot(3,2,1);plot(t,y);axis([0,5,-1.3,1.3]);grid on >> xlabel('时间(单位:s)');ylabel('幅度');title('原始音乐信号'); >> subplot(3,2,2);plot(f,Y);grid on

>> xlabel('频率(单位:Hz)');ylabel('幅度谱');title('音乐信号幅度谱图');

>> subplot(3,2,3);plot(t,y1);axis([0,5,-1.3,1.3]);grid on

>> xlabel('时间(单位:s)');ylabel('幅度');title('加入单频干扰后的音乐信号'); >> subplot(3,2,4);plot(f,Y1);axis([0,4000,0,1500]);grid on

>> xlabel('频率(单位:Hz)');ylabel('幅度谱');title('加入干扰后的音乐信号幅度谱图'); >> subplot(3,2,5);plot(t,y_fil);axis([0,5,-1.3,1.3]);grid on

>> xlabel('时间(单位:s)');ylabel('幅度');title('滤波后的音乐信号'); >> subplot(3,2,6);plot(f,Y_fil);grid on

>> xlabel('频率(单位:Hz)');ylabel('幅度谱');title('滤波后音乐信号幅度谱图');

1

2345-10

1时间(单位:s)

幅度

原始音乐信号

10002000300040000

500

1000

频率(单位:Hz)

幅度谱

音乐信号幅度谱图

1

2345

-10

1

时间(单位:s)幅度

加入单频干扰后的音乐信号

100020003000400005001000

1500频率(单位:Hz)

幅度谱

加入干扰后的音乐信号幅度谱图0

1

2345

-10

1时间(单位:s)

幅度

滤波后的音乐信号0

1000200030004000

500

1000

频率(单位:Hz)

幅度谱

滤波后音乐信号幅度谱图

图3.5 滤波后信号幅度和频谱与原始信号和加噪后信号的比较

分析图3.5,通过FIR 滤波器处理后的音乐信号和原始音乐信号在时域上基本相同,

只是在频域1500Hz 左右衰减较严重。

(2) 在回放中比较滤波前后音乐信号 >>wavplay(y,Fs);

%播放原始音乐信号

>>wavplay(y1,Fs); %播放加入单频噪声的音乐信号

>>wavplay(y_fil,Fs);

%回放滤波后的音乐信号,与原始信号进行对比

通过在Matlab上回放原始音乐信号、加噪后的音乐信号和滤波后的音乐信号进行比较,滤波后的音乐信号在音质上和原始音乐基本相同,说明设计的FIR滤波器滤波效果较明显,设计成功。

4出现的问题及解决方法

(1)加入的噪声如果不限定其振幅,对原始信号的影响较大。为了便于观察和分析,限定其振幅为0.3的单频噪声(0.3*sin(fn*2*pi*t))。

(2)在通过plot函数画加噪后信号的频谱图时,因为噪声的冲击值很大,如果不限定纵坐标显示的范围,原始信号的频谱图会显得很小。所以为了更明显地比较原始信号和加噪后信号在频谱图上的不同,适当地限定了纵坐标的显示范围。

(3)在用最优等波纹法设计FIR滤波器的时候,因为本滤波器的设计指标相对较高,所以最后得到的滤波器的阶数会比较大,如果迭代运算时N的值每次只加1,会很耗时。为了解决这个问题,在通过firpmord函数得到近似的滤波器的阶后,开始可以将N的值每次加大点的数值,到发现Asd的值和As很接近了的时候,再减小N每次加的数值,直到Asd刚大于或等于As。

(4)在用设计好的FIR滤波器处理加噪信号时,不太会用fftfilt函数,所以就使用conv_m代替。这两个函数的内部算法应该差不多,也达到了同样的效果。

5结束语

通过本次课程设计,我对数字信号处理有了更具体的认识,更深地了解了滤波器的设计一般设计步骤,尤其是对利用最优等波纹法设计FIR滤波器。

在本次课程设计中,我的题目是音乐信号的滤波去噪,相对平时作业题更贴近现实。不像作业中设计滤波器最多是处理余弦信号等,处理音乐信号让我更形象地认识到滤波器在实际生活中的应用,也增强了学习兴趣。还有就是在写课程设计报告时,你需要对原先课堂上学的知识有更透彻的认识,能对其原理和来龙去脉一清二楚。所以写报告在一定程度上也是整理思路,加深对课程的理解。

经过几天的设计和实践,已经比较顺利地完成了本次课程设计,在此感谢胡老师的指导和一些同学的帮助!

6 参考文献

[1] [美]维纳·K·英格尔,约翰·G·普罗克斯.刘叔棠.数字信号处理(MATLAB版)Digital Signal Processing Using MATLAB.第2版.西安:西安交通大学出版社,2008年

[2] 张志涌等.精通MA TLAB 6.5版.北京:北京航空航天大学出版社,2003年

[3] 邵玉斌.Matlab/Simulink通信系统建模与仿真实例分析. 北京:清华大学出版社,2008

[4] 邓华.MATLAB通信仿真及应用实例详解.北京:国防工业出版社,2003

附录(程序用到的两个自编函数):

function [d1,d2] = db2delta(Rp,As)

% 从相对dB标度变换为绝对delta 标度.

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

% [d1,d2] = db2delta(Rp,As)

% d1 = 通带容差

% d2 = 阻带容差

% Rp = 通带波动

% As = 阻带衰减

%

K = 10^(Rp/20);

d1 = (K-1)/(K+1);

d2 = (1+d1)*(10^(-As/20));

function [y,ny] = conv_m(x,nx,h,nh)

% 信号处理的改进卷积程序

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

% [y,ny] = conv_m(x,nx,h,nh)

% y = 卷积结果

% ny = y 的基底(support)

% x =基底nx 上的第一个信号

% nx = x 的支架

% h =基底nh上的第二个信号

% nh = h 的基底

%

nyb = nx(1)+nh(1); nye = nx(length(x)) + nh(length(h)); ny = [nyb:nye];

y = conv(x,h);

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数字滤波器设计与使用

实验报告 课程名称:数字信号处理指导老师:刘英成绩:_________________实验名称: 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 滤波器的方法,运用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低通滤波器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的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低通滤波器

数字信号处理课程设计 设计题目半带FIR低通滤波器设计 题目编号 0205 学院名称电气学院 指导教师 班级 学号 学生姓名

目录 一.半带滤波器的概述 (1) 二.半带FIR滤波器的性质及设计方法 (1) 2.1半带FIR滤波器的性质 (1) 2.2半带滤波器的设计方法 (2) 2.3滤波器指标的确定 (3) 2.4手工计算 (4) 三.在MATLAB中仿真 (4) 3.1滤波器的系数 (4) 3.2半带FIR滤波器的频率特性曲线 (4) 3.3基于MATLAB的幅频响应曲线 (5) 四.滤波器的结构不同对性能指标的影响 (6) 4.1利用直接型结构构建滤波器 (6) 4.2利用级联型结构构建数字滤波器 (7) 五.参数字长对性能指标的影响 (8) 5.1参数字长取2位对性能指标的影响 (8) 5.2参数字长取8位对性能指标的影响 (8) 5.3参数字长取12位对性能指标的影响 (9) 5.4参数字长取14位对性能指标的影响 (9) 5.5结论 (9) 六.心得体会 (9) 七.参考文献 (10) 八.附录 (10)

半带FIR 低通滤波器的设计 一.半带滤波器的概述 在数字滤波器的设计过程中,为了能够有效地进行抽取滤波,往往采用多级抽取的方法,这就需要采用内插和抽取的原理。如果对滤波器进行M 倍抽取,则输出的采样频率是输入采样频率的I /M ;如果对滤波器进行M 倍内插,则输出的采样频率是输入采样频率的M 倍。 半带滤波器是一种基于抽取和内插原理的滤波器,它是一种特殊的低通FIR(有限冲激响应)数字滤波器——一种抽取因子为2的抽取滤波器,这种滤波器由于通带和阻带相对于二分之一Nyquist 频率对称,因而有近一半的滤波器系数为O 。由于系数为0的部分在运算的过程中不需要消耗运算量,所以运算量减少了一半,使实际滤波过程中的运算量大幅度减少。因此计算的效率高,实时性比较强,有利于滤波运算的实时实现,多速率信号处理中有着特别重要的地位,并且得到了广泛的应用。 二.半带FIR 滤波器的性质及设计方法 2.1半带FIR 滤波器的性质 图1为抽取因子为2的半带滤波器的框图,其中:)(z H h 为抽取滤波器,s f 为输入采样 率,2/1s s f f =为输出采样率。 图1 抽取因子为2的半带滤波器框图 现在考虑频率特性如图2所示的一种特殊的FIR 滤波器,即为半带FIR 滤波器,它具有如下的特性: (1)通带纹波p δ和阻带纹波s δ相等,即s p δδ=; (2)通带边频p F 和阻带边频s F 相对于4/s f 对称,即2/s s p f F F =+,用数字频率表示为:πωω=+s p 。 f s x(n) H h (z) f s 2 2/1s s f f =

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数字低通滤波器要点

河北科技大学课程设计报告 学生姓名:学号: 专业班级: 课程名称: 学年学期 指导教师: 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 的取

c语言写的fir低通滤波器

根据fir滤波器的公式y(n)=∑h(m)x(n-m);(m: 0~(N-1)).利用MATLAB产生滤波器系数(h(n))并归一化,下面为一个LP滤波算法 void filter(void) { uint16 i,j; fp32 sum; int16 x1[2030]; fp32 h[19]={ -0.0027, -0.0025, 0.0050, 0.0157, -0.0000, -0.0471, -0.0482, 0.0838, 0.2953, 0.4013, 0.2953, 0.0838, -0.0482, -0.0471, -0.0000,0.0157, 0.0050, -0.0025, -0.0027}; for(i=0;i<2020;i++) x1[i] = data0[i]; for(i=0;i<2020;i++) { sum=0.0; for(j=0;j<19;j++) { if(i >= j) sum+=h[j]*x1[i-j]; else ; } data0[i]=(int16)sum; } for(i=0;i<2000;i++) { data0[i] = data0[i+20]; } } 考虑到前19个点为不完全累加和,故抛去前19个点。(应该是前后各18个点都是不完全累加和,都应该去掉,对于数据分段进入滤波器的情况,应该把前一段的后面数据放到下一段的前面,这段时间我在解调FSK时遇到了这个问题,通过滤波器的数据的分段处理。) 设输入数据x[N],输出数据y[N],滤波器系数h[n] 1.直接法(由y(m)=h(0)*x(m)+h(1)*x(m-1)+...+h(N-1)*x(m-n-1)); void fir(short x[], short h[], short y[]) { int i,j; long long sum; for (j = 0; j < N; j++) { sum = 0; for (i = 0; i < n; i++) sum += x[j-i] * h[i]; y[j] = sum >> 15; } } 乘法器使用次数:N*n 2.逆推法: void fir(short x[], short h[], short y[])

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

(完整版)基于DSP的FIR数字低通滤波器设计

电气控制技术应用设计 题目基于DSP的FIR数 字低通滤波器设计 二级学院电子信息与自动化学院 专业电气工程及其自动化 班级 113070404 学生姓名黄鸿资学号 11307991032 学生姓名姜天宇学号 11307991015 指导教师蒋东荣 时间:2016年8月29日至2016年9月9日 考核项目平时成绩20分设计35分报告15分答辩30分得分 总分考核等级教师签名

一绪论 (3) (一)课题设计的目的 (3) (二)课题内容 (3) (三)设计方法 (3) (四)课程设计的意义 (4) 二FIR滤波器基本理论 (4) (一)FIR滤波器的特点 (4) (二)FIR滤波器的基本结构 (4) (三)Chebyshev逼近法 (5) 三用MATLAB辅助DSP设计FIR滤波器 (5) (一)利用fir函数设计FIR滤波器并在在MATLAB环境仿真 (6) (二) Matlab中自带工具箱FDATool快速的实现滤波器的设计 (10) 1.确定一个低通滤波器指标 (10) 2.打开MATLAB的FDATool (10) 3.选择Design Filter (11) 4.滤波器分析 (11) 5.导出滤波器系数 (13) (三)滤波器设计总结 (13) (四)DSP所需文件配置 (14) 四基于DSP的FIR滤波器实现 (14) (一)DSP中滤波器的算法实现 (15) 1.线性缓冲区法 (15) 2.循环缓冲区法 (15) (二)C语言实现FIR (15) (三)CSS仿真调试 (17) (四)滤波器的仿真测试 (18) 五 DSP数字滤波器与硬件低通滤波器对比 (21) (一)二阶有源低通滤波电路的构建 (21) (二)二阶低通滤波器参数计算 (22) (三)在protues环境下的仿真测试 (22) (四)实物硬件连接以及测试结果 (22) (五)利用FilterPro的低通滤波器设计 (23) 1 选择filter类型 (24) 2 滤波器参数设定 (24) 3 滤波器的算法选择 (25) 4 滤波器的拓扑结构选择 (25) (六) DSP数字滤波器与硬件电路滤波器对比总结 (26) 六课程设计总结 (26) 参考文献 (28)

FIR低通滤波器设计

信息处理课程设计 姓名 班级 学院 学号

目录 一、前言 二、FIR滤波器简介 三、FIR低通滤波器的设计 四、FIR数字滤波器程序设计与仿真 五、小结 六、参考文献

一、前言 数字滤波器是一个离散时间系统(按预定的算法,将输入离散时间信号转换为所要求的输出离散时间信号的特定功能装置)。应用数字滤波器处理模拟信号时,首先须对输入模拟信号进行限带、抽样和模数转换。 数字滤波器输入信号的抽样率应大于被处理信号带宽的两倍,其频率响应具有以抽样频率为间隔的周期重复特性,且以折叠频率即1/2抽样频率点呈镜像对称。为得到模拟信号,数字滤波器处理的输出数字信号须经数模转换、平滑。 数字滤波器具有高精度、高可靠性、可程控改变特性或复用、便于集成等优点。数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。 数字滤波器有低通、高通、带通、带阻和全通等类型。它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。应用最广的是线性、时不变数字滤波器,以及FIR滤波器。 二、FIR滤波器简介 FIR滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。 有限长单位冲激响应(FIR)滤波器有以下特点: (1) 系统的单位冲激响应h (n)在有限个n值处不为零; (2) 系统函数H(z)在|z|>0处收敛,极点全部在z = 0处(因果系统); (3) 结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。

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

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

学生班级:设计名称:起止日期:学生姓名:学号: FIR 低通、高通带通和带阻数字滤波器的设计指导教师: 设计目标: 1、采用 Kaiser 窗设计一个低通 FIR 滤波器 要求: 采样频率为 8kHz ; 通带: 0Hz~1kHz,带内波动小于5%; 阻带: 1.5kHz,带内最小衰减: Rs=40dB。 2、采用 hamming 窗设计一个高通FIR 滤波器 要求: 通带截至频率wp= 0.6 rad , 阻带截止频率ws= 0.4 rad, 通带最大衰减p0.25dB ,阻带最小衰减s50dB 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 数字滤波器采用窗函数法或频率抽样法,本设计采用窗 函数法,分别采用海明窗和凯泽窗设计带通、带阻和低通。 如果所希望的滤波器的理想频率响应函数为H d (e jw ) ,如理想的低通,由信号系统的知识知道,在时域系统的冲击响应h d(n) 将是无限长的,如图2、图 3 所示。 H d(w) -w c w c 图 2图 3 若时域响应是无限长的,则不可能实现,因此需要对其截断,即设计一个FIR 滤波 N 1 器频率响应 H (e jw )h(n)e jwn来逼近H d(e jw),即用一个窗函数w(n)来截断 n 0 h d(n) ,如式 3 所示: h(n) h d (n) w(n)(式1)。 最简单的截断方法是矩形窗,实际操作中,直接取h d(n) 的主要数据即可。 h( n) 作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数为: N 1 H (e jw )h(n)e jwn(式 2) n 0 令 z e jw,则 N 1 H ( z)h(n)z n(式 3), n 0 式中, N 为所选窗函数w(n)的长度。

FIR数字低通滤波器设计

第1章 绪论 1.1设计的作用、目的 课程设计是理论学习的延伸,是掌握所学知识的一种重要手段,对于贯彻理论联系实际、提高学习质量、塑造自身能力等于有特殊作用。本次课程设计一方面通过MATLAB 仿真设计内容,使我们加深对理论知识的理解,同时增强其逻辑思维能力,另一方面对课堂所学理论知识作一个总结和补充。 1.2设计任务及要求 通过课程设计各环节的实践,应使学生达到如下要求: 1.掌握双线性变换法及脉冲响应不变法设计IIR 数字滤波器以及窗函数法 设计FIR 数字滤波器的原理、具体方法及计算机编程。 2.观察双线性变换法、脉冲响应不变法及窗函数法设计的滤波器的频域特性,了解各种方法的特点。 3.用MATLAB 画出三种方法设计数字滤波器的幅频特性曲线,记带宽和衰减量,检查结果是否满足要求。 1.3设计内容 设计题目:FIR 数字滤波器的设计 设计内容: (1)设计一线性相位FIR 数字低通滤波器,截止频率π2.0=Ωf ,过渡带宽度 π4.0≤?Ω,阻带衰减dB A s 30>。 (2)设计一线性相位FIR 数字低通滤波器,截止频率π2.0=Ωf ,过渡带宽度π4.0≤?Ω,阻带衰减dB A s 50>。

第2章FIR 数字低通滤波器的原理 2.1 数字低通滤波器的设计原理 FIR 数字滤波器传统的设计方法有窗函数法、频率抽样法和等波纹逼近法。用窗函数设计FIR 数字滤波器就是用有限长的脉冲相应逼近序列,其基本设计思想为:首先选定一个理想的选频滤波器,然后截取它的脉冲响应得到线性相位。 滤波器(filter ),是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的直流电。对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器,其功能就是得到一个特定频率或消除一个特定频率。就是允许某一部分频率的信号顺利的通过,而另外一部分频率的信号则受到较大的抑制,它实质上是一个选频电路。 1.滤波器的概念 滤波器是对输入信号起滤波的作用的装置。当输入、输出是离散信号,滤波器的冲激响应是单位抽样响应()n h 时,这样的滤波器称作数字滤波器(DF )。DF 是由差分方程描述的一类特殊的离散时间系统。 2.数字滤波器的系统函数与差分方程: 系统函数 (2-1) 差分方程 对上式进行 Z 反变换,即得: (2-2) 3.数字滤波器结构的表示 数字滤波器分FIR 数字滤波器和IIR 数字低通滤波器。其中FIR 低通滤波器分直接型和级联型,IIR 分直接型、级联型和并联型。 方框图法、信号流图法 ∑∑==-+-= N k M k k k k n x b k n y a n y 1 )()()(∑∑=-=--= = N k k M k k z a z b z X z Y z H k k 1 1) ()()(

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

信息院14电信(师范) 实验五:FIR数字滤波器设计与软件实现 一、实验指导 1.实验目的 (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。 (3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MATLAB函数设计与实现FIR滤波器。 2.实验内容及步骤 (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图1所示; 图1 具有加性噪声的信号x(t)及其频谱如图 程序代码:(信号产生函数xtg程序清单) function xt=xtg(N) %êμ?é??D?o?x(t)2úéú,2¢??ê?D?o?μ?·ù?μì?D??ú?? %xt=xtg(N) 2úéúò???3¤?è?aN,óD?óD????μ??éùμ?μ¥?μμ÷·ùD?o?xt,2é?ù?μ?êFs=10 00Hz

%??2¨?μ?êfc=Fs/10=100Hz,μ÷???y?ò2¨?μ?êf0=fc/10=10Hz. N=1000;Fs=1000;T=1/Fs;Tp=N*T; t=0:T:(N-1)*T; fc=Fs/10;f0=fc/10; %??2¨?μ?êfc=Fs/10£?μ¥?μμ÷??D?o??μ?ê?af0=F c/10; mt=cos(2*pi*f0*t); %2úéúμ¥?μ?y?ò2¨μ÷??D?o?mt£??μ?ê?af0 ct=cos(2*pi*fc*t); %2úéú??2¨?y?ò2¨D?o?ct£??μ?ê?afc xt=mt.*ct; %?à3?2úéúμ¥?μμ÷??D?o?xt nt=2*rand(1,N)-1; %2úéú???ú??éùnt %=======éè????í¨??2¨?÷hn,ó?óú??3y??éùnt?Dμ?μí?μ3é·?,éú3é??í¨ ??éù======= fp=150; fs=200;Rp=0.1;As=70; % ??2¨?÷??±ê fb=[fp,fs];m=[0,1]; % ????remezordoˉêy?ùDè2?êyf,m,dev dev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)]; [n,fo,mo,W]=remezord(fb,m,dev,Fs); % è·?¨remezoˉêy?ùDè2?êy hn=remez(n,fo,mo,W); % μ÷ó?remezoˉêy??DDéè??,ó?óú??3y??éùnt?Dμ?μí?μ3é·? yt=filter(hn,1,10*nt); %??3y???ú??éù?Dμí?μ3é·?£?éú3é??í¨ ??éùyt %=========================================================== ===== xt=xt+yt; %??éù?óD?o? 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) D?o??ó??éù2¨D?') subplot(3,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title('(b) D?o??ó??éùμ??μ?×') axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('·ù?è')输出波形: (3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅

相关文档
最新文档