簡體   English   中英

Python,FFT 和 DC 偏移分析

[英]Python, FFT and DC offset analysis

我在占空比為 50% 的方波信號(100Hz,0V-5V)上測試 FFT,但我不明白為什么我的 DC 偏移量很大?

理論上應該是2.5V?

謝謝,最好的問候。

基波正常,其他諧波正確。

方波信號100Hz,TTL兼容0V-5V,50%占空比

FFT,直流偏移問題,基波正常,諧波正常

from scipy.fftpack import fft
from scipy import signal
import matplotlib.pyplot as plt
import numpy as np

#
# configuration
# time analyse = L * (1/Fsample)
#
L = 512 # lenght buffer
Fsample = 2000 # frequency sample
Fsignal = 100 # frequency

#********************************

# perdiode sample
Tsample = 1.0/Fsample

# time vector, start = 0s, stop = 0.1024s, step = (0.1024s / (1/Fe))
t = np.linspace(0.0, L*Tsample, L)

# signal definition, DC offet = 2.5V, Amplitude = 2.5V
signal = 2.5 + 2.5*signal.square(2 * np.pi * Fsignal * t, 0.5)

# plot time signal
plt.subplot(2,1,1)
plt.plot(t, signal)

# fft of time signal
yf = fft(signal)

# time vector of fft 
xf = np.linspace(0.0, 1.0/(2.0*Tsample), L//2)

# plot spectral
plt.subplot(2,1,2)
plt.plot(xf, 2.0/L * np.abs(yf[0:L//2]))

在最后一行,歸一化因子是錯誤的。

不是2/L而是1/L

正確的歸一化因子plt.plot(xf, 1.0/L * np.abs(yf[0:L//2]))

代碼現在工作正常!

FFT 正確幅度

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM