• 大小: 3KB
    文件类型: .py
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: Python
  • 标签: Python  采样定理  

资源简介

Python_验证采样定理 利用傅里叶变换与反变换进行抽样与还原, 验证采样定理. ①原频率固定采样频率改变 ②采样频率固定原频率改变

资源截图

代码片段和文件信息

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator

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 观察固定频率不同采样率时还原曲线\n\
键入 2 观察固定采样率不同频率时还原曲线\n键入 quit 退出\n“)
        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“)

def Change_f0(f0_List fs t):
    Ts = 1 / fs
    Points_x = np.arange(-1 1.001 Ts)#抽样点横坐标x
    plt.ion()#开启交互模式
    plt.figure(figsize=(14 6))
    for f0 in f0_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)
        #设置图像线条
        F = np.cos(2*np.pi*f0*t)#原函数
        Points_y = np.cos(2*np.pi*f0*Points_x)#抽样点纵坐标y
        fa = []
        for tt in t:
            fa.append(np.dot(Points_y np.sinc(fs*(tt-Points_x))))#抽样后还原函数
        #画图
        plt.plot(t F “r“ label=“Orignal Wave“)
        plt.plot(Points_x Points_y “*g“ label=“Sampling Points“)
      

评论

共有 条评论