Python验证采样定理验证采样定理
Python验证采样定理验证采样定理验证采样定理采样定理主要流程代码主函数Change_fs()Change_f0()完整代码
验证采样定理验证采样定理
采样定理采样定理
自行百度
主要流程主要流程
在同一图上画出原波形, 抽样点和抽样还原后波形, 并将不同原频率和采样频率动态更新.
代码代码
主函数主函数
先设置基本参数
f0 #原函数频率
fs #抽样频率
t #横坐标时间
Change_fs() #fs变化时还原函数的变化
Change_f0() #f0变化时还原函数的变化
def main():
#输入基本参数
f0_List = np.arange(100, 1001, 50)
#print(f0)
fs_List = np.arange(1000, 99, -50)
#print(fs)
t = np.arange(0, 0.0101, 0.00001)
#print(t)
while 1:
a = input("键入 1 观察固定频率不同采样率时还原曲线\
键入 2 观察固定采样率不同频率时还原曲线键入 quit 退出")
if a == "1":
Change_fs(f0_List[2], fs_List, t)
elif a == "2":
Change_f0(f0_List, fs_List[0], t)
elif a == "quit":
break
else:
print("无法识别输入QAQ")
Change_fs()
先打开交互模式, 否则不能画动态图.
还原函数时, 利用公式
def Change_fs(f0, fs_List, t):
F = np.cos(2*np.pi*f0*t)#原函数
plt.ion()#开启交互模式
plt.figure(figsize=(14, 6))
for fs in fs_List:
#设置画布外观
plt.cla()
plt.grid(True)
plt.xlim(0, 0.01)
plt.ylim(-1, 1)
plt.ylabel("Amplitude")
plt.title("fo = %ffs"%(f0/fs))
##设置横坐标间距
x_major_locator=MultipleLocator(0.001)
ax=plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
#设置图像线条
Ts = 1 / fs
Points_x = np.arange(-1, 1.001, Ts)