https://zhuanlan.zhihu.com/p/265115075
维纳辛钦定理编程实验
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
t=np.linspace(0,6.28,256)
x=np.sin(t)+np.sin(20*t)
y = np.correlate(x, x, 'full')
plt.figure()
plt.plot(t,x)
plt.title('signal')
plt.xlabel('Frequency')
plt.ylabel('Magnitude')
plt.figure()
plt.plot(y)
plt.title('autocorrelate')
plt.xlabel('Frequency')
plt.ylabel('Magnitude')
########################################################
fy=np.fft.rfft(y)
freq = np.fft.fftfreq(len(fy))
plt.figure()
plt.plot(freq,abs(fy))
plt.title('FFT of autocorrelate')
plt.xlabel('Frequency')
plt.ylabel('Power')
########################################################
freq2, psd = signal.welch(x,scaling='spectrum')
freq2