python中对序列FFT后结果不是共轭对称的问题

python中对序列FFT后结果不是共轭对称的问题

我对雷克子波进行了fft后,发现结果并不是共轭对称的。

这导致我把fft后结果取前一半区间,然后共轭对称到后一半,再反变换回去的结果就有点异常了。如果直接把fft后的全序列做ifft,结果就是对的。

第一张图是fft后,把前一半区间取共轭对称,再和后一半区间相减,可以看到误差还是挺大的,而且越到后面越大。

我在别的论坛看到有人用matlab也遇到过这个问题。

请问这是什么原因?

附上代码:

import numpy as np
from scipy import fft, ifft
import matplotlib.pyplot as plt
import math

f = 50
t = np.arange(-0.512, 0.512, 0.001)
n = int(len(t)/2)

rick = (1 - 2 * (math.pi * f * t)**2) * math.e ** (-1 * (math.pi * f * t)**2)

yy = fft(rick)

y1 = yy[: n]
y2 = np.conj(y1)[:: -1]
y3 = yy[n:]
yyy = np.append(y1, y2)

plt.plot(ifft(yy))
plt.plot(ifft(yyy))
plt.show()

plt.plot(y2-y3)
plt.show()

误差。在这里插入图片描述
直接反变换和共轭对称后再反变换的结果。在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值