利用python和jupyter notebook交互式小部件生成方波,可以实时调节谐波个数和基波频率
2021-04-25 15:27
标签:active des 功能 ipython mamicode oat pyplot loading tle 最近在试着使用jupyter waget来实现一些滑块的功能。 这里是用python创造一个方波。方波本质就是一个不同次谐波的正弦函数的叠加,因此代码很简单: 最后的结果效果不错 利用python和jupyter notebook交互式小部件生成方波,可以实时调节谐波个数和基波频率 标签:active des 功能 ipython mamicode oat pyplot loading tle 原文地址:https://www.cnblogs.com/datkartoffel/p/13258684.htmlimport ipywidgets as widgets
from IPython.display import display
import matplotlib.pyplot as plt
import numpy as np
%matplotlib nbagg
fig, ax = plt.subplots(1, figsize=(10, 4))
plt.suptitle(‘square‘)
def plot_exp(f_max, num):
ax.clear()
T = 1/f_max
t=np.linspace(-2, 2, 2000) #0到6T区间内2000个样本
x = np.zeros_like(t)
f = f_max
k=np.arange(1,num)
k = 2 * k -1
for i in range(2000):
x[i]= np.sum(np.sin(k*np.pi*f*t[i])/k)
y = np.real(x)
ax.plot(t, y)
plt.show()
f_max = widgets.FloatSlider(min=0, max=1, value=1, description=‘f:‘) #f_max是正弦波基波频率
num = widgets.IntSlider(min=1, max=100, value=1, description=‘num:‘)#num是要叠加的谐波次数
widgets.interactive(plot_exp, f_max=f_max,num=num)#设置滑块插件
文章标题:利用python和jupyter notebook交互式小部件生成方波,可以实时调节谐波个数和基波频率
文章链接:http://soscw.com/index.php/essay/79416.html