| |
dsp背景下,DFT是应用最广泛、最基本的理论之一(也许可以不带之一)。我们的设计中有太多它的影子,让本人不得不实践一下其意义。
首先DFT的理论:
http://zh.wikipedia.org/wiki/%E7%A6%BB%E6%95%A3%E5%82%85%E9%87%8C%E5%8F%B6%E5%8F%98%E6%8D%A2
现在假设N=8,输入是一个正玄波:
%xn = [0 1 0 -1 0 1 0 -1 ]; %k=2,f=2/8
N = length(xn);
n = 0:N-1;
k = 0:N-1;
Xk = xn*exp(-j*2*pi/N).^(n'*k);
x = (Xk*exp(j*2*pi/N).^(n'*k))/N;
figure,subplot(2,2,1),stem(n,xn);
title('x(n)');
subplot(2,2,2),stem(n,abs(x));
title('IDFT|X(k)|');
subplot(2,2,3),stem(k,abs(Xk));
title('|X(k)|');
subplot(2,2,4),stem(k,angle(Xk));
title('arg|X(k)|');
axis([0,N,1.1*min(angle(Xk)),1.1*max(angle(Xk))])
当xn = [0 0.707 1 0.707 0 -0.707 -1 -0.707]; %k=1,f=1/8
输出如下,可见Xk在第二个点和第八个点有能量,其实只有第二个点是真实的,第八个点是其镜像。因为当k=7时,频率f=7/8,fs=1 , 不满足fs>=2f
当[0 1 0 -1 0 1 0 -1 ]; %k=2,f=2/8
输出如下,可见Xk在第三个点和第七个点有能量,其实只有第三个点是真实的,第七个点是其镜像。因为当k=6时,频率f=6/8,fs=1 , 不满足fs>=2f
结论:对于N点DFT变换中:
k代表的是频率,其频率Fk与采样频率Fs的关系是:
Fk/N=Fs,
当k=1时,Fk=(1/N)Fs,是基波频率