gpt4 book ai didi

audio - 如何在音频分析仪中使用真正的kiss_fft?

转载 作者:行者123 更新时间:2023-12-03 02:30:45 30 4
gpt4 key购买 nike

我正在尝试实现Kiss FFT实际计算。

我敢肯定,每个人都知道我不是第一个询问Kiss FFT的人,也不是第一个询问Kiss_fftr的人。我对FFT相当陌生,但已经掌握了大部分基础知识,现在正尝试在ATxmega192A3的音频分析仪中实现它。

这是我复制并修改的基本代码,试图将512个8位ADC样本输入FFT以获取256个输出频率点。

int size = 512;
int isinverse = 1;
kiss_fft_scalar zero;
memset(&zero,0,sizeof(zero));
kiss_fft_cpx fft_in[size];
kiss_fft_cpx fft_out[size];

kiss_fftr_cfg fft = kiss_fftr_alloc(size*2,0,0,0);

//load 512 samples from ADC into fft_in[].r and zero out fft_in[].i, fft_out[].i, and fft_out[].r

kiss_fftr(fft, (kiss_fft_scalar*) fft_in, fft_out);

这是我的问题:
  • 出库中是否有任何重叠?意思是如果我正在查看..假设12Hz出仓仅显示12Hz,而不是部分舍入为12.1Hz(我知道音频不够精确,因此会产生残余物理效应而引起干扰)?
  • 我很难弄清楚如何使用kiss_fftr_cfg。我不确定使用8位整数(或16位)将所有选项标记在何处,但这不意味着我的所有输入样本都必须是16位吗? cfg的声明在他进行的前两个int声明之外,我听不懂,并且不确定他为什么使用memset而不是允许kiss_fftr分配空间。在哪里可以找到更多信息?带有kiss_fft的文件,并且似乎并没有花费很多时间来挖掘代码中找到很多有用的信息。
  • 最佳答案

    FFT输出仓的带宽大约为2 * Fs / N(FFT长度上的采样率),但是作为Sinc整形函数会下降或过渡。因此,除了仓中心之外,所有FFT结果仓均与所有其他仓重叠。

    使用Kiss FFT需要了解C数据类型以及哪些自动转换有效。

    关于audio - 如何在音频分析仪中使用真正的kiss_fft?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30008481/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com