gpt4 book ai didi

ios - FFT的大小实际上意味着什么

转载 作者:行者123 更新时间:2023-12-01 17:42:11 25 4
gpt4 key购买 nike

  • 使用Apple文档中的FFT示例代码时,N,log2n,n和nOver2到底是什么意思?
  • N是否指代fft的窗口大小或给定音频中的样本总数,
  • 如何从音频文件计算N?
  • 它们与音频采样率(即44.1kHz)有什么关系?
  • 此代码中的FFT帧大小是多少?

  • 码:
    /* Set the size of FFT. */
    log2n = N;
    n = 1 << log2n;

    stride = 1;
    nOver2 = n / 2;

    printf("1D real FFT of length log2 ( %d ) = %d\n\n", n, log2n);

    /* Allocate memory for the input operands and check its availability,
    * use the vector version to get 16-byte alignment. */
    A.realp = (float *) malloc(nOver2 * sizeof(float));
    A.imagp = (float *) malloc(nOver2 * sizeof(float));
    originalReal = (float *) malloc(n * sizeof(float));
    obtainedReal = (float *) malloc(n * sizeof(float));

    最佳答案

  • N或n通常指元素的数量。 log2n是n的以2为底的对数。 (32的以2为底的对数是5。)nOver2是n / 2,n除以2。
  • 在FFT的上下文中,n是馈入FFT的样本数。
  • n通常由各种约束条件确定。您希望有更多的样本来提供更好的质量结果,但是您不希望有那么多的样本以致处理占用大量的计算机时间,或者要直到用户注意到延迟才可以使用该结果。通常,确定大小的不是音频文件的长度。而是设计一个“窗口”,将其用于处理,然后将音频文件中的样本读取到一个足够大的缓冲区中,以容纳窗口,然后处理该缓冲区,然后对文件中的更多样本进行重复。重复会一直持续到处理完整个文件为止。
  • 较高的音频采样率意味着在给定的时间段内将有更多的采样。例如,如果您希望将窗口保持在1/30秒以下,则44.1 kHz的采样率将小于44.1•1000/30 = 1470个采样。较高的采样率意味着您需要做更多的工作,因此可能需要调整窗口大小以使处理保持在限制范围内。
  • 该代码使用N代替log2n,这很不幸,因为它可能会使人们感到困惑。否则,代码如上所述,FFT帧大小为n

  • 当涉及到实际数据和复杂数据的混合时,可能会对FFT的大小或长度感到困惑。通常,对于实数到复数FFT,实数元素的数量被称为长度。当执行复数到复数FFT时,复数元素的数量就是长度。

    关于ios - FFT的大小实际上意味着什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15516300/

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