我正在尝试将以下 matlab 代码转换为 c
cX = (fft(inData, fftSize) / fftSize);
Power_X = (cX*cX')/50;
问题:
- 为什么要将 fft(fftSize 复元素数组)的结果除以 fftSize?
- 我完全不确定如何转换复共轭 转换为 c,我只是不明白那行代码的作用。
彼得
最佳答案
1. Why divide the results of fft (array of fftSize complex elements) by fftSize?
因为生成的 fft 的“能量”(平方和)随着 fft 中点数的增加而增加。除以点数“N”对其进行归一化,使得 fft 的平方和等于原始信号的平方和。
2. I'm not sure at all how to convert the complex conjugate transform to c, I just don't understand what that line does.
这就是实际计算平方和的内容。很容易验证cX*cX' = sum(abs(cX)^2),其中cX'是共轭转置。
关于复共轭转置matlab到C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15732384/