(0???2?)上对X(ej?)均匀采样得到
?X(k)?X(ej?)
??2?k/N??n???x(n)e?j2?kn/N 0?k?N?1
可以看到X(k)也是频域上的有限长序列,长度为N。序列X(k)称为序列x(n)的N点DFT。N称为DFT变换区间长度。 通常表示
WN?e?j2?/N
可将定义式表示为
?X(k)?
?x(n)Wn???kn 0?k?N?1
X(k)的离散傅里叶逆变换(IDFT)为
x(n)?1N?
1.圆周移位
?X(k)Wn????kn 0?n?N?1
(二)、DFT的性质
定义序列x(n)的m单位的圆周移位y(n)为:
y(n)?~x(n?m)RN(n)?x((n?m))NRN(n)18
实验五 离散傅立叶变换DFT
(x((n?m))N即对x(n)以N为周期进行周期延拓的序列~RN(n)表x(n)的m点移位,示对此延拓移位后再取主值序列)
2. 圆周卷积
??X1(k) 0?k?N?1 设 x1(n)??NDFT??X2(k) 0?k?N?1 x2(n)??NDFT??X1(k)X2(k) 0?k?N?1 则 x1(n) x2(n)??NDFT这里 x1(n) x2(n) 表示x1(n)与 x2(n)的N点循环卷积。
N?1x1(n) x2(n)??xm?02(m)[x1((n?m))NRN(n)],n?0,1,?,N?1
3. 共轭对称性
x(n)?xep(n)?xop(n),0?n?N?1
19
实验五 离散傅立叶变换DFT
1?*x(n)?[x(n)?x(N?n)]?ep2??,0?n?N?1 1*?xop(n)?[x(n)?x(N?n)]2?DFT??X(k) x(n)??Nxep(n)????NDFT12[X(k)?X(k)]?Re[X(k)]?Xr(k)
*实际应用中,利用上述对称性质可以减少DFT的运算量,提高运算效率。
三、实验内容与步骤
1. 构造离散傅立叶正、反变换函数的MATLAB程序,其中dft(xn,N)为离散傅立叶正变换,idft(xn,N)为离散傅立叶反变换。 function[Xk]=dft(xn,N) n=[0:1:N-1]; k=n;
WN=exp(-j*2*pi/N); nk=n’*k;
WNnk=WN.^nk; Xk=xn*WNnk;
function[xn]=idft(xn,N) n=[0:1:N-1]; k=n;
WN=exp(-j*2*pi/N); nk=n’*k;
WNnk=WN.^(-nk); xn =(Xk*WNnk)/N;
如果x(n)?sin(n?/8)?sin(n?/4)是一个N=16的有限长序列,利用离散傅立叶变换函数求其16点DFT,并显示其DFT结果。
2. 利用MATLAB程序求有限长序列x(n)=8(0.4)n, 0≤n<20的圆周移位
xm(n)?x[(n?10)]20R20(n),并显示其图形。
程序:
20