赞
踩
18. Scipy Tutorial- 方波傅里叶分解与合成
周期性矩形波(方波)信号:在scipy中用signal包里的square函数来表示。signal里支持的内置其他波形函数可以到其官网查找。当然构造一个方波也可用numpy的zeros和ones来构建。
#coding:utf-8
import numpy as np
import matplotlib.pyplot as plt
x = np.zeros(500)
x[100:150] = 1
plt.plot(x)
plt.ylim(-0.3, 1.3)
plt.show()
根据傅立叶分析,任何信号都可以分解成一系列不同频率的正弦信号,方波中包含了非常丰富的频谱成分。下面可以用实验来直观的分析方波中的频率成分即fft,看看不同频率的正弦信号是如何叠加成为方波的即ifft。
#coding:utf-8
import numpy as np
from scipy import fftpack,signal
import matplotlib.pyplot as plt
b = 30
f_s = 80
N = 8000
t = np.linspace(0, 10, N, endpoint=False)
sq = signal.square(2 * np.pi * 5 * t)
F = fftpack.fft(sq)
f = fftpack.fftfreq(N, 1.0/f_s)
F_filtered = F * (abs(f) <
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。