【发布时间】:2017-10-05 13:21:37
【问题描述】:
我有一组信号 S1, S2, ....,SN,我在数值上计算傅里叶变换 F1, F2, ,,,,FN。其中 Si 和 Fi 是 C++ 向量(我的计算使用 C++)。
我的计算目标如下:
计算积:F = F1*F2*...*FN
傅里叶逆变换F得到一个S。
我在数字上观察到的是,当我尝试计算产品时,我遇到了数字变得太小的情况。或者数字变得太大。
我想用 a1 来缩放 F1 以避免上溢或下溢。
随着缩放,我上面的第 1 步将变为
F' = (F1/a1)*(F2/a2)*...*(FN/aN) = F'1*F'2*...*F'N
当我进行逆变换时,我的最终 S' 将与 S 相差一个比例因子。 S的结构形式不会改变。我的意思是只有 S 的标准化是不同的。
我的问题是:
我的理由是否正确。
如果我的理由是正确的,那么给定一个 C++ 向量“Fi”,我如何选择一个好的比例“ai”来放大或缩小 Fi。
非常感谢。
【问题讨论】:
-
您的问题可能更适合Mathematics Stack Exchange。
-
您使用什么数据类型(浮点数?双精度数?长双精度数?整数?)?你能至少给我们看一点代码吗?
-
你在做复数乘法吗?
-
是的,我使用的数字配方 fft 例程将数字的实部和复数部分并排放置,即 N 个复数被放入大小为 2N 的向量中。从 fft 例程获得输出后,我会执行复数乘法。
标签: image-processing signal-processing fft