到减少资源占有和提高系统作业速度的目的,更好的体现实时性的数字滤波器优势。 2.1.3数字滤波器的设计原理
在数字信号处理技术的研究中,一般是使用的三种设计方法:窗函数法,FDATool直接设计法,程序编译法。本文首先使用窗函数和Matlab软件共同进行设计。
随着软件技术的不断发展,Matlab软件能给设计者带来的数字信号处理工作已经非常的完善和多样了,设计者可以利用Matlab软件进行数字滤波器的设计和仿真,而且还可以用这款软件进行设计的优化。数字滤波器的一般设计步骤如下: 1.指标的确定
做任何工程或者设计,设计者都必须要有一个期望的指标用来限制设计范围。在很多的实际应用中,设计者常常都是使用数字滤波器做选频的工作。因此,指标的形式一半在频域中给出相位响应和幅度。相位响应的指标形式,一半是指系统在通频带中药有线性相位。幅度指标:绝对指标,它给出对幅度响应函数的要求,一般用于FIR滤波器的设计。相对指标,以分贝值的形式给出具体限制。 2.逼近目标
设计者做高频的时候大概都有一个模式,就是首先得到技术指标,然后利用我们的技术和工具让我们的产品去逼近这个指标。同理我们首先建立以个目标的数字滤波器模型。一般情况下都是采用理想的数字滤波器模型,然后去逼近我们想要的目标数字滤波器参数。 3.计算机仿真和性能优化分析
在工作中我们发现通过(1)、(2)之后本文会得到以差分、系统函数或者冲击响应这三种方式描述的滤波器。这个时候设计者可以利用计算进行仿真,在系统中分析技术指标和滤波结果是否是希望得到的结果。
5
图2-3各种理想数字滤波器的幅度频率响应
2.1.4 FIR数字滤波器的理论计算方式与参数转换思想
在理论上掌握了FIR数字滤波器的基本原理之后,本文需要对设计思想进行一个多方位的论证和尝试。首先设计者设计滤波器要有一个硬性的指标,这个指标可以是直接给出最基本的数据,也有多重表现形式。于是我例举两种特殊的指标形式然后加以解决设计。然后我们分别用2种方式来设计不同指标的滤波器。接下来我首先用程序的方式来实现滤波器: 1.逼近法转换与思想
使用remez函数设计FIR低通滤波器 设计滤波器,使逼近低通滤波特性| |
Hd(e)|。
j?H(edj??1)|=??0p??0????/4 ???5?/16????要求通带波纹
??3dB,阻带衰减
?s?60dB,并用最小阶数实现。
绘出设计的FIR数字滤波幅频特性曲线,检验设计指标。 这个指标我们可以以如下计算方法来得出详细指标: 从给出的低通滤波特性|
Hd(e)|。我们可以看出设计参数f=[1/4,5/16],m=[1,0];
log?1??10j?dev的计算根据公式:Rp=-20于是有Rp=20
log1/1??2?>0
10[1?dev(1)/1?dev(1)],As??20log(dev(2))
所以dev(1),dev(2)可以被表示出来。 2.逼近法程序描述与思想
有了这几个参数我们现在就可以根据已经设定好的格式来调用函数remezord和remez函数了,于是可得如下程序。 clear;close all
fc=1/4;fs=5/16; %输入给定指标 Rp=3;As=60;Fs=2;
f=[fc,fs];m=[1,0]; %计算remezord函数所需参数f,m,dev dev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)];
[N,fo,mo,W]=remezord(f,m,dev,Fs); %确定remez函数所需参数 hn=remez(N,fo,mo,W); %调用remez函数进行设计 hw=fft(hn,512); %求设计出的滤波器频率特性 w=[0:511] *2/512;
6
plot(w,20*log10(abs(hw)));grid; %画对数幅频特性图 axis([0,max(w)/2,-90,5]); xlabel('w/pi');ylabel('Magnitude(dB)')
line([0,0.4],[-3,-3]); %画线检验设计结果 line([1/4,1/4],[-90,5]);line([5/16,5/16],[-90,5]); 程序结束。 3.仿真图像与结果
用以上的程序我们可以得到在Matlab中的许多参数和图像,从而进一步分析我们的设计。首先引入程序输出的幅频特性图:(如图2-4)
图2-4在Matlab中的程序
7
图2-5程序输出的幅频特性
图2-6 Impulse Response
8
图2-7 Magnitude and Phase Responses
图2-8 Phase Delay
9