您好、香榭丽舍
下面我有两个关于 VCU2 RFFT 示例代码的问题、
输出缓冲 器 buffer2Q15[0]是 DC、我们可以说这是输入信号的 DC 偏移、它是正确的吗?
我们可以从何处获取输出缓冲器的幅度信息?
如有任何建议、请提出建议、谢谢。
此致、
Luke
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好、香榭丽舍
下面我有两个关于 VCU2 RFFT 示例代码的问题、
输出缓冲 器 buffer2Q15[0]是 DC、我们可以说这是输入信号的 DC 偏移、它是正确的吗?
我们可以从何处获取输出缓冲器的幅度信息?
如有任何建议、请提出建议、谢谢。
此致、
Luke
您好、Luke、
[引用 USER="Luke Chen ]输出缓冲 器 buffer2Q15[0]是直流的、我们可以说这是输入信号的直流偏移、它是正确的吗?
是的、没错
[引用 user="Luke Chen "]我们可以从何处获取输出缓冲区的幅度信息、请
您需要计算此值。 在 RFFT 操作的末尾,即在 CFFT_UNPACGE()之后,您最终得到频谱的第一个 N/2-1复数点。 其原因是纯实数输入的傅里叶变换是共轭对称的、即 F (N-k)= F (k)*、k = 0至 N/2-1。 这也意味着 F (0)和 F (N/2)只有具有0虚部的实部。
因此、为了获得幅度平方、您必须执行类似这样的操作(伪代码)
for (i=0、j=0;i < N;)
{
mag[j++]= buff2[i++]^2 + buff2[i++]^2;
}
如果您需要上述的 sqrt (),则必须包含 IQmath 库并调用相应的 sqrt ()
您好、Vishal、
感谢您的回答、我仍有关于 vcu2示例代码的问题、
我还有关于 FixedPointLib 2833x_FixedPoint_RFFT 示例代码的问题、需要您的评论、
感谢你的帮助。
此致、
Luke
[引用 user="Luke Chen ]在2837x_vcu2_rfft_256示例代码中、buffer1Q15数组中有256个实数部分项、而 CFFT_run128Pt 将该数组视为实数+虚数部分、如领域1、imag1、real2、imag2。 那么、它是否正确?[/quot]
正确、它将256 pt 实数数据视为128 pt 复数、运行128 pt CFFT、然后"解压缩"或"拆分"(此操作没有正式名称)输出、以获得一半的实数数据频谱。 您只需要一半、因为频谱是共轭对称的
[引用 user="Luke Chen ]在此示例代码中、我构建正弦波数据(实数部分)并运行、似乎 FFT 输出数据位于 buffer1Q15中、而不是 buffer2Q15中。 这是正确的吗?
不、它应该在 buffer2Q15中
[引用 user="Luke Chen ]此 RFFT 的 FFT 输出格式是什么? 它是否包括实部和虚部?
是的、但仅到 N/2-1st bin、那么
F[0].r、F[0].I、F[1].r、F[1].I、....、 F[N/2-2].r、F[N/2-2].I、F[N/2-1].r、F[N/2-1].I
[引用 user="Luke Chen ]函数原型 void RFFT32_bev (int32_t * src、int32_t * dst、uint16_t size);不同于文档定点 DSP 软件库。 此软件库是用于16位 FFT 还是32位 FFT?[/QUERP]
其32位、文档中的原型不正确。 我可以提交一个 TT 来纠正这种情况
[引用 user="Luke Chen "]此软件库是否还将输入数据视为领域1、imag1、real2、imag2…等等?
是的、它执行相同的算法、在输入上运行一个 N/2点复数 FFT、然后分离输出以获得频谱、直到 N/2 th bin
[引用 user="Luke Chen "]此 FFT 输出包括实部和虚部?
是的、任何 FFT 输出都是复杂的。
[引用 user="Luke Chen ]示例代码使用函数 RFFT32_brev ()、FFT 的位反转意味着什么?[/quot]
是的。 在输入上运行 FFT 之前、您可以对其进行位反转格式的重新排序