一般的fft需要將點數補成2的整數次冪,MATLAB中有fft函數,輸入N點序列則輸出也是N點序列,其中N不一定為2的整數次冪。所以會疑惑MATLAB做的fft和N點序列對應的dft是否一樣。經過驗證,MATLAB中對N點序列做fft的結果與N點dft的結果是完全一樣的,沒有對N點序列進行補0后再做操作。
下面是MATLAB代碼和結果。
n = 0: 49; A = 444.128; a = 50 * sqrt(2.0) * pi; w0 = 50 * sqrt(2.0) * pi; T = 0.001; x = A * exp( -a * n *T) .* sin(w0 * n * T); k = 0 : 49; W = 2 * pi / 50; X = x *(exp(-j * W)).^ (n' * k); magX = abs(X);%X的幅度譜 close all; subplot(311);stem(x);title('理想信號采樣1');set(gca,'box','off');%采樣完成 subplot(312);stem(magX);title('理想采樣信號的幅頻特性1(dft)');set(gca,'box','off'); subplot(313);stem(abs(fft(x)));title('理想采樣信號的幅頻特性1(fft)');set(gca,'box','off');
結果顯示: