小编rem*_*rem的帖子

绘制和提取 fft 相位

下面是比较 fft 相位图与 2 种不同方法的代码:

import numpy as np
import matplotlib.pyplot as plt
import scipy.fftpack

phase = np.pi / 4
f = 1
fs = f*20
dur=10
t = np.linspace(0, dur, num=fs*dur, endpoint=False)
y = np.cos(2 * np.pi * t + phase)
Y = scipy.fftpack.fftshift(scipy.fftpack.fft(y))
f = scipy.fftpack.fftshift(scipy.fftpack.fftfreq(len(t)))

p = np.angle(Y)
p[np.abs(Y) < 1] = 0

fig, ax = plt.subplots(2, 1)
ax[0].plot(t, y)
ax[1].plot(f*fs, p, label='from fft')
ax[1].phase_spectrum(y, fs, window=None, label='from phase_spectrum')
plt.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)

这是结果:

在此输入图像描述

这是当信号周期数不是整数时的结果:

在此输入图像描述

我有几个问题:

  • 为什么使用phase_spectrum 或使用fft 的相位图和角度如此不同?使用 …

python numpy fft phase

3
推荐指数
1
解决办法
4906
查看次数

标签 统计

fft ×1

numpy ×1

phase ×1

python ×1