FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。N个采样点,经Tzhi后,就可以得到N个复数结果,为方便计算N取2的整数次方。这里N最大定为1024,也就是2的10次方。假设采样频率Fs,信号频率F,采样点数N,FFT之后的结果就是N点的复数。每一个点就对应着一个频率点,Fn=(n-1)*Fs/N,这个点的模值,就是该频率值下的幅度。
HLS 模块程序
#include <stdio.h>
#include <complex>
#include "hls_fft.h"
const char FFT_INPUT_WIDTH = 16;
const char FFT_OUTPUT_WIDTH = FFT_INPUT_WIDTH;
const char FFT_CONFIG_WIDTH = 24;
const char FFT_NFFT_MAX = 10;
const int FFT_LENGTH = 1 << FFT_NFFT_MAX;
struct config1 : hls::ip_fft::params_t
{
static const unsigned ordering_opt = hls::ip_fft::natural_order;
static const unsigned config_width = FFT_CONFIG