python离散数据傅里叶变换公式_离散傅里叶变换中的移位定理

博主在尝试使用Python和numpy进行离散傅里叶变换(DFT)以优化卷积运算,利用移位定理试图简化计算。然而,当尝试通过相位因子计算已移位函数的DFT时遇到问题,发现计算结果与预期不符,相位因子的绝对值大于1。博主提供了代码示例并寻求社区帮助解决这个问题。
摘要由CSDN通过智能技术生成

我试图用python+numpy解决一个问题,在这个问题中,我有一些类型为c8aca24aa55324873b34b91467cb19b3.gif的函数,需要与另一个函数e5a033bcf1f951bc1384803958bbb38c.gif进行卷积。为了优化代码,我对f和g进行了fft运算,将它们相乘,然后进行反变换以得到结果。在

作为进一步的优化,我意识到,由于移位定理,我可以简单地计算一次f(x,y,z)的fft,然后乘以依赖于58288740474076ede8502b75fb868bd7.gif的相位因子,得到{a4}的fft。特别是f1d72fe39e51793e1f27434377568c6b.gif,其中N是x和y的长度

我试图用python+numpy实现这个简单的公式,但是由于一些目前我还不清楚的原因,它失败了,所以我请求so community的帮助,以找出我遗漏了什么。在

我也提供了一个简单的例子。在In [1]: import numpy as np

In [2]: x = np.arange(-10, 11)

In [3]: base = np.fft.fft(np.cos(x))

In [4]: shifted = np.fft.fft(np.cos(x-1))

In [5]: w = np.fft.fftfreq(x.size)

In [6]: phase = np.exp(-2*np.pi*1.0j*w/x.size)

In [7]: test = phase * base

In [8]: (test == shifted).all()

Out[8]: False

In [9]: shifted/base

Out[9]:

array([ 0.54030231 -0.j , 0.54030231 -0.23216322j,

0.54030231 -0.47512034j, 0.54030231 -0.7417705j ,

0.54030231 -1.05016033j, 0.54030231 -1.42919168j,

0.54030231 -1.931478j , 0.54030231 -2.66788185j,

0.54030231 -3.92462627j, 0.54030231 -6.74850534j,

0.54030231-20.55390586j, 0.54030231+20.55390586j,

0.54030231 +6.74850534j, 0.54030231 +3.92462627j,

0.54030231 +2.66788185j, 0.54030231 +1.931478j ,

0.54030231 +1.42919168j, 0.54030231 +1.05016033j,

0.54030231 +0.7417705j , 0.54030231 +0.47512034j,

0.54030231 +0.23216322j])

In [10]: np.abs(shifted/base)

Out[10]:

array([ 0.54030231, 0.58807001, 0.71949004, 0.91768734,

1.18100097, 1.52791212, 2.00562555, 2.72204338,

3.96164334, 6.77009977, 20.56100612, 20.56100612,

6.77009977, 3.96164334, 2.72204338, 2.00562555,

1.52791212, 1.18100097, 0.91768734, 0.71949004, 0.58807001])

我希望通过shifted/base我可以得到相因子的相应值,但是可以看出,它不可能是相位因子,因为它的np.abs是>=1!在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值