基于傅立叶变换的数字滤波器的设计
20 《计量与测试技术》2009年第36卷第3期
基于傅立叶变换的数字滤波器的设计
The Digital Filter Design Based on Discrete Fourier Transf orm
周 燕 崔琪琳 田杜养
(西安石油大学电子工程学院, 陕西710065)
摘 要:本设计介绍了一种不同于传统数字滤波器的新型数字滤波器, 立叶变换, 得到一组幅度和频率对应的变换值, 根据滤波器要求, , 得一组新数据, 对这组新数据进行离散傅立叶逆变换, 结果即为滤波后的信号。关键词:傅立叶变换; 数字滤波器; FFT 1 引言
, 一般的数字滤波器(如FIR 滤波器、IIR 滤波器等) 在理想截止频率与实际截止频率之间都会存在一个过渡带, 因此很难做到很彻底、很干净的滤波。如果采用离散傅立叶变换技术进行滤波, 就可以设计出近乎理想特性的数字滤波器, 因为它是先对信号的频谱进行分析, 再根据滤波要求直接剔除不需要的频谱, 因此能很干净的滤除杂波。2 离散傅立叶变换分析
函数的频率逐渐增加, 周期逐渐减小, 其周期为:T k ==f k
=。当k =N /2时, 谐波的频率最大为:f N/2=k k
2Δt
, 该频率称为Nyquist 频率, 当k 从N /2取到N 时,
其结果与k 从0取到N /2是镜像对称的。现在将(2) 式的各次谐波写成如下形式:
x i =
2
+∑[c k cos (
k =1
N
N
+φk ) ](3)
一个周期为2l 函数f (x ) 可用傅立叶基数展开为
f (x ) =
∞
其中:c k =
tan (-
2
a 2k +b k , 为k 次谐波的振幅; φk =arc 2
2
+∑(a n cos
n =1
) +b n sin
l l
=
(1)
l -l
, 为k 次谐波的初相。a k
其中:a 0=dx , b n =l l
l -l
l
∫
-l
l
f (x ) dx , a n
l
f (x ) cos
从(3) 式也可以看出, 如果知道了离散傅立叶的频域变换结果, 可以通过逆变换将信号返回到时域上来。
3 数字滤波器系统设计
通过以上对离散傅立叶变换的分析可以看出, 离散傅立叶变换实际上就是对连续的时域信号进行采样, 得到N 个离散的采样点, 再通过离散傅立叶变换公式对这组离散数据进行计算, 得到新的一组频域上的数据, 即谐波的幅值, 这组数据的每个值对应一个频率值, 即谐波的频率, 这样就可以分析出信号各次谐波与其对应幅值的关系特性。我们就是要利用在频域上的这组数据来进行滤波。以设计一个低通滤波器为例来说明如何利用离散傅立叶变换来设计滤波器。滤波器的设计原理如图1的框图所示。
连续信号
f (x ) sin
dx l
将连续函数的傅立叶基数展开式(1) 离散化, 为了离散化(1) 式, 在周期区间(0,2l ) 上等间隔的取N 个点, 取
Δt 。则f 样间隔为Δt , 那么l =, 这里要注意dx →
2
(x ) 的离散化序列为{x 0, x 1, x 2, …x N -1}, 且→
l
N
, 由此(1) 式的离散化形式为:
x i =
2
+∑(a k cos
k =1
m
N
+b k sin N
i =0
N
) N
(2)
, b k =
其中:a 0=
N -1i =0
N
N -1i =0
∑x i , a k =
N -1
∑x i cos
N
∑x i sin
N
。N
采样
fk >连续信号
图1 原理框图
在这里对做一个变换, 对其分子分母同乘以Δt
后变为:2πΔ(i Δt ) , 由此可得出第x k 项为一个正弦
N t 和一个余弦周期函数之和, 其频率同为:f k =Δ=,
N t T
其中T 为所取序列总的时间长度。随着k 的增大, 三角
根据图1的原理, 设有连续信号为:f (x ) =sin (200π) +sin (300π) +cos (700π) , 要求截止频率为f c =100Hz , 即要滤除150Hz 和350Hz 的信号。
对信号采样, 采样频率f s =10K , 对时域信号采样N =2m 个点(这里取m =9) , 设这些点为:x ={x 1, x 2, …
1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
周燕等:基于傅立叶变换的数字滤波器的设计
21
x N }, 对这N 点序列做离散傅里叶变换, 得到一组幅值
序列:X ={X 1, X 2, …X N }, 同时利用公式f k =Δ=
N t
, (k =0…N -1) , 计算出N 个频率点, 频率和幅值是T
对应的, f 0对应X 1, 依次类推。当f k 和X k 都求出来以后, 做以下判断:如果f k >100, 则X k +1=0, 否则X k 不变。由此可得到一组新的X k , 这就是经过滤波后的幅值序列, 对这组序列做离散傅里叶反变换就可得到时域的信号序列。这就是利用离散傅里叶变换滤波的全过程。4 滤波效果仿真及分析
, 对于其滤波效果可以通过已经分析过, 如对N , 变换结果, 所以在仿真时只绘出X 的前N /2个点。在matlab 中建立一个m 文件, 输入以下程序:
clear all
N =512;dt =010001;n =0:N-1; t =n 3dt ;f =n/(N 3dt ) ;
x =sin (23pi 31003t ) +sin (23pi 31503t ) +cos (23pi 33503t ) ;
y1=fft (x ) ;
y2=zeros (1,N ) ; for ds =0:N-1if (ds/(N 3dt ) ) 〉100y2(ds +1) =0; else
y2(ds +1) =y1(ds +1) ; end end
subplot (4,1,1) ,plot (t ,x ) ;
) ; xlabel (’图a :原始信号’
subplot (4,1,2) ,plot (f ,23abs (y1) /N ) ;
) ;xlim ([01000]) ; xlabel (’图b :原始信号频谱’
subplot (4,1,3) ,plot (t ,real (ifft (y2) ) ) ; ) ; xlabel (’图c :滤波后信号’
subplot (4,1,4) ,plot (f ,23abs (y2) /N ) ;
) ;xlim ([01000]) ; xlabel (’图c :滤波后信号频谱’
图2 仿真结果图
从图2中B 图可以看出原信号包含有三个频率, 分别为
100H z ,150H z ,350H z , 这与给定信号所含的频率成分相同, 经过滤波后只剩下100H z 的正弦信号, 如图2中图C 所示。图D 所示为信号经过滤波后的频谱, 只剩下100H z 频率。
从图2中的四幅图可以看出, 首先该滤波器准确的分析出了信号所含的频率成分, 然后根据要求滤除了频带意外的频率信号, 而且, 经过滤波后的信号并没有衰减, 很好的实现了滤波功能。仿真结果显示, 该滤波器实现了干净, 彻底滤波的功能。5 结论从以上的介绍可以看出, 这种滤波技术最适合于对一段取样数据进行分析滤波, 它是最干净、最彻底的滤波, 但是这种滤波技术的运算量很大, 相对与其它滤波器如FIR , IIR 等滤波器来说速度比较慢, 而且输出也不是连续性的, 只能是先输出一段波形, 间隔一段时间, 再输出一段波形, 因此它适合于对某一观测量的间断性取样分析滤波, 如果将该技术应用在数字解调上, 将会很大程度上简化原有的数字解调器的设计, 特别在通信环境比较恶劣的情况下还会大大的降低误码率, 提高解调质量。
参考文献
[1]丁玉美, 高西全. 数字信号处理[M ].西安:西安电子科技大学出
版社,20031
[2]万永革. 数字信号处理的MAT LA B 实现[M].北京:科学出版社, 20071[3](美) 罗纳德・N ・布雷斯韦尔著, 殷勤业, 张建国译. 傅里叶变换及
其应用[M ].西安:西安交通大学出版社,20051
[4]蒋长棉, 蒋勇. 快速傅里叶变换及其C 程序[M ].合肥:中国科学
技术大学出版社,20041
[5]飞思科技产品研发中心. MATLAB 7辅助信号处理技术与应用[M ].北京:电子工业出版社, 20051
[6]冷建华. 傅里叶变换[M ].北京:清华大学出版社, 20041[7]程佩青. 数字滤波与快速傅里叶变换[M ].北京:清华大学出版
这里应该注意的是, 本程序中用的是快速傅里叶变
换和反变换, 快速傅里叶变换是离散傅里叶变换的一种快速算法, 它们的基本原理相同。快速傅里叶变换的结
果是一个虚数, 其实部和虚部分别为a k 和b k , 所以最
N N
后结果应对其取模后再乘以系数2/N , 方可得到真实的
社, 19901
作者简介:周燕, 女, 硕士。工作单位:西安石油大学电子工程学院。通讯地址:710065陕西省西安市电子二路18号西安石油大学236#信箱。
崔琪琳, 田杜养, 西安石油大学电子工程学院(西安710065) 。收稿时间:2008-11-07
振幅值。通过运行此程序, 得到图2所示的仿真结果
。
1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net