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

41528d3028836879cd698677c3999917.gifmatlab的fir高通数字滤波器的设计和分析

基于MATLAB的FIR高通数字滤波器的设计和分析 陆锐勇(2009012303) 通信工程09级02班 摘 要:以MATLAB中FIR高通数字滤波器为例,对滤波进行工作原理分析。利用声音处理函数作为数据接口,使用FDAtool设计滤波器,对仿真前后的音频进行波形和频谱的对比分析,加深对滤波的理解。 关键词:高通滤波,数字滤波,matlab,FIR 0、 引言 数字信号处理的目的包括设计某种设备或者建立某个算法用来处理信号序列,使序列具有一些确定的性质,这个设备或者算法结构就成为数字滤波器。数字滤波器的主要功能是对数字信号进行处理,最常见的处理是保留数字信号中的有用频率成分,去除信号中的无用频率成分。通常是用有限精度的算法实现的离散时间线性时不变系统,它本身既可以有硬件也可以由软件来实现,还可以用DSP处理器配合软件实现。数字滤波器可以分为有限冲激响应FIR和无线冲激响应IIR两种。 FIR滤波器可以通过窗函数法、频率抽样法和最优化设计方案来设计【1】。首先解释FIR数字高通滤波的物理过程,然后用FDAtool采用窗函数法设计语音高通滤波器。 1、数字滤波器的工作原理 数字滤波器具有一定传输特性的数字信号处理功能,它的输入以及输出都是离散的数字信号,并借助于数字器件和一定的数值计算方法,对输入信号进行处理,改变输入信号,进而达到除去信号中无用成分而保留有用成分的功能。 数字滤波器是一个离散的数字信号处理装置,也是一个离散的时间系统,输入和输出都是一个时间序列。这里设H(z)为数字滤波器的系统函数,h(n)为其相应的脉冲序列,则在时域内有 y(n)=x(n)*h(n) 在z域内有 Y(z)=H(z)*X(z) 上式中,X(z),Y(z)分别为输入x(n)和输出y(n)的Z变换。 在频域内有 Y(jw)=H(jw)X(jw) 上式中,H(jw)为数字滤波器的频率特性;X(jw)和Y(jw)分别为输入x(n)和输出y(n)的频谱. 由以上论述可知,一个合适的滤波器系统函数H(z)可以改变输入x(n)的频率特性,经数字滤波处理后得到信号y(n),保留x(n)中的有用频率成分,而去掉其中无用的成分。 FIR数字滤波器的一般设计步骤: (1) 按照任务要求确定滤波器的指标; (2) 用因果稳定的离散线性时不变系统的系统函数逼近这一性能指标要求; (3) 利用有限精度算法实现该系统函数,包括选择运算结构、适当的字长和有效位处理的方法; (4) 进行实际技术实现,常采用软件、硬件或者软硬件结合的方法实现。 3、语音高通数字滤波器的设计 本文的设计利用MATLAB的FDAtool采用窗函数法来设计语音高通数字滤波器。 在MATLAB command窗口下,执行fdatool命令,将会出现如下窗口 步骤如下: 选择一段时间较短的单声道音频,用计算机windows附件中的录音机将其他格式的语音转换成。Wav格式并命名为gaot保存到MATLAB的work文件夹中,也可以自行创建work文件夹。用MATLAB中的wavread()函数将.wav语音转换成数组格式数据,用wavwrite()函数将数组格式数据转换成.wav格式语音,利用MATLAB的FDAtool工具设计所需FIR滤波器系数h(n)。由于本文实验所用音频录制时的抽样频率为44.1kH,所以在设计h(n)系数时应采用44.1kH,其他参数设置为,Response选择Highpass,Design选择FIR的window通过频率Fp=44.5kH,截止频率Fs=20kH.将设计好的高通滤波器系数导出到工作空间,命名为high,对上述过程叙述的参数编写如下m程序:x=wavread(‘gaot.wav’);y=conv(high,x);wavwrite(y,44100,’gaot1.wav’)。 运行该m程序将在MATLAB的work文件夹中产生一个名为gaot.wav的语音文件,分别对gaot.wav和gaot1.wav编写如下程序,进行时域和频域的分析: 程序1 [y,fs,bits]=wavread( gaot.wav ); sound(y,fs,bits); %回放该音频 Y=fft(y,4096); %进行傅立叶变换 subplot(211); plot(y); title( gaot.wav声音信号的波形 ); subplot(212) plot(abs(Y)); title( gaot1.wav声音信号的频谱 ); 程序2 [y,fs,bits]=wavread( gaot1.wav ); sound(y,fs,bits); %回放该音频 Y=fft(y,4096); %进行傅立叶变换 subplot(211); plot(y); title( gaot1.wav声音信号的波形 ); subplot(212) plot(abs(Y)); title( gaot1.wav声音信号的频谱 ); 运行上述程序,分别得到如下波形: 程序1结果 程序2 结果 在运行程序过程中,对滤波前后的音频进行播放,会觉得处理后的语音变得尖锐,原因是低频分量被高通滤波器衰减。对比滤波前后的频谱图可以看出明显衰减。 4、结论 理论上,信号经系统在时域进行卷积运算等同于在频域做乘积运算。在用声音处理函数时,对卷积的两个参量格式要求较为严格,根据MATLAB不同的版本以及使用的音频格式选择具体的声音处理函数。在对音频进行播放,对比播放效果,可以判断出处理后的音频比较尖锐。既达到仿真预期效果,实现保留高频滤除低频的目的。在时域处理中是对信号的波形进行变换,在频域中试对信号的频谱结构进行变换,从程序运行的结果来看,时域卷积和频域乘积是等效的。 参考文献: 【1】 陈怀琛 吴大正 高西全 matlab及在电子信息课程中的应用[M] 电子工业出版社 2006.3 【2】 车晴 电子系统仿真与matlab[M] 北京广播学院出版社 2000 【3】 陈亚勇 matlab信号处理详解[M] 人民邮电出版社 2002

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值