提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
FFT蝶形算法的verilog实现专题——从FFT算法的定义开始入手
先从FFT的定义入手:
一个N 点序列x(n) 的DFT 定义为:
下面用MATLAB程序来面熟一下上述这个式子:(程序段1)
clear all;close all;clc;
x =[1,2,-1,3,1,4,-1,5];
W = [exp(-j*2*pi/8*0),exp(-j*2*pi/8*1),exp(-j*2*pi/8*2),exp(-j*2*pi/8*3),exp(-j*2*pi/8*4),exp(-j*2*pi/8*5),exp(-j*2*pi/8*6),exp(-j*2*pi/8*7)]
x_fft1 = fft(x);
for i = 1 : 8
x_fft(i) = sum(x.*(W.^(i-1)));
end
plot(abs(x_fft1 - x_fft))
运行的结果为:
由此看出,使用公式进行计算以及调用FFT函数的运算结果非常接近,两个结果相减,差为10的-14次方
好了,我们直接用FFT的定义写出了fft的matlab函数,很好的第一步
写于2021年11月6日。
如需交流,可以评论区留言