傅立叶变换缩放幅度

时间:2017-10-05 13:21:38

标签: image-processing signal-processing fft

我有一组信号S1,S2,......,SN,我用数字计算傅里叶变换F1,F2 ,,,,, FN。其中Si和Fi是C ++向量(我的计算是用C ++编写的)。

我的计算目标如下:

  1. 计算产品:F = F1 * F2 * ... * FN

  2. 逆傅里叶变换F得到一个S.

  3. 我在数字上观察到的是,当我尝试计算产品时,我遇到数字变得太小的情况。或者数字变得太大了。

    我想过用a1来缩放F1,以避免溢出或下溢。

    通过缩放,我上面的步骤1将变为

    F' = (F1/a1)*(F2/a2)*...*(FN/aN) = F'1*F'2*...*F'N
    

    当我逆变换时,我的最终S'将与比例因子的S不同。 S的结构形式不会改变。我的意思是只有S的归一化是不同的。

    我的问题是:

    1. 我的理由是否正确。

    2. 如果我的理由是正确的,那么给定一个C ++向量“Fi”,我如何选择一个好的比例“ai”来扩大或缩小Fi。

    3. 非常感谢提前。

1 个答案:

答案 0 :(得分:0)

您可以在新域中更改Fi矢量的范围,让我们说[a,b]。因此,从您的矢量Fi,最小数量将变为a,最大数量将变为b。您可以使用以下等式缩放矢量:

Fnew [i] =(b-a)/(max-min)*(F [i] - min)+ a,

其中:min = F的最小值 max = F

的最大值

现在唯一的问题是选择a和b。我会选择[1,2],因为值很小(所以你不会轻易地溢出),但不小于0.