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
本文介绍了如何使用HLS(High-Level Synthesis)模块来实现FFT(快速傅立叶变换),并详细说明了设置参数如scale和Nfft的过程。在FFT计算完成后,每个点对应一个特定频率,其模值表示该频率的幅度。通过设置scale为2048,确保结果为16位,并通过setNfft设定1024个采样点。最后,该方法被链接到Vivado环境中进行测试。
订阅专栏 解锁全文
3610

被折叠的 条评论
为什么被折叠?



