【问题标题】:complex conjugate transpose matlab to C复共轭将matlab转置为C
【发布时间】:2013-03-21 20:59:26
【问题描述】:

我正在尝试将以下 matlab 代码转换为 c

cX = (fft(inData, fftSize) / fftSize);
Power_X = (cX*cX')/50;

问题:

  1. 为什么要将 fft(fftSize 复杂元素的数组)的结果除以 fftSize?
  2. 我完全不知道如何转换复共轭 转换为 c,我只是不明白那行是做什么的。

彼得

【问题讨论】:

  • 下面的答案非常感谢。但是我怎么能把它翻译成C?假设 A(2,3) 共轭是 A'(2,-3),函数执​​行:real = real 和 imaginary = -1 * imaginary。但是,这如何适用于整个矩阵? Power_X 最终成为单个值。

标签: c matlab fft translate


【解决方案1】:
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' 是共轭转置。

【讨论】:

  • 不会 sum(abs(cX)^2) 破坏虚部吗?
  • 如果 x=a+ib 则 abs(x)^2 = a^2+b^2,当然是纯实数,但虚数部分 "b "当然不会被"破坏"。如您所见, x * conj(x) = (a+ib)(a-ib) = a^2 + b^2 也是。该示例用于标量,向量乘以转置平方 相加。
  • 斯图尔特,我不是说破坏,对不起,我的意思是忽略。但是我忘记了 sum(abs(cX)^2) cX 是复杂的。所以我想到了最后一个问题,所以在将向量中的每个元素相乘之后,它会将它们相加吗?即 ( cX(1) * cX'(1) ) + ( cX(2) * cX'(2) ) ?
  • 是的,当您将行向量乘以列向量时,矩阵乘法就是这样工作的。请记住,matlab 默认将“*”视为矩阵乘法。 en.wikipedia.org/wiki/Matrix_multiplication
【解决方案2】:
  1. 理想情况下,离散傅里叶变换 (DFT) 纯粹是一种旋转,因为它在不同的坐标系中返回相同的向量(即,它以频率而不是采样时间的音量来描述相同的信号)。但是,DFT 通常以快速傅里叶变换 (FFT) 的方式实现,这些值以各种方式相加,需要乘以 1/N 以保持比例不变。

    通常,FFT 会省略这些乘法以节省计算时间,而且因为许多应用程序不关心尺度变化。无论规模如何,生成的 FFT 数据仍然包含所需的数据和关系,因此省略乘法不会导致任何问题。此外,校正乘法有时可以与应用程序中的其他操作相结合,因此单独执行它们没有意义。 (例如,如果应用程序执行 FFT、进行一些操作并执行逆 FFT,则可以在该过程中执行一次组合乘法,而不是在 FFT 中执行一次,在逆 FFT 中执行一次。)

  2. 我不熟悉 Matlab 语法,但是,如果 Stuart’s answer 是正确的 cX*cX' 正在计算数组中值的大小的平方和,那么我看不到执行快速傅里叶变换。您应该可以直接从iData 以相同的方式计算总能量;变换只是一个不改变能量的坐标变换,除了上面描述的缩放。

【讨论】:

  • 我们为我们需要的其他计算执行 fft。
  • @user438431:如果您希望正确缩放 Power_X 但不需要缩放 FFT 数据,那么您可以从 cX = … / fftSize … 中删除除以 fftSize向量)到Power_X = (cX*cX')/(50*(fftSize*fftSize))(其中它是一个乘法[与fftSize平方,因为Power_X是能量的平方]和一个标量值的除法),节省fftSize-2操作。
猜你喜欢
  • 2013-06-05
  • 2012-08-20
  • 1970-01-01
  • 1970-01-01
  • 2017-04-17
  • 1970-01-01
  • 2014-01-25
  • 1970-01-01
  • 2015-01-11
相关资源
最近更新 更多