• Python科学计算(两)——时域波形和正弦信号的频谱


    Python科学计算(两)-- 时域和频域波形为正弦波形信号生成、计算和显示


    # -*- coding: utf-8 -*-
    
    import numpy as np
    import matplotlib.pyplot as pl
    import matplotlib
    import math
    import random
    
    row = 4
    col = 4
    
    N = 500
    fs = 5
    n = [2*math.pi*fs*t/N for t in range(N)]
    axis_x = np.linspace(0,1,num=N)
    myfont = matplotlib.font_manager.FontProperties(fname='c:\windows\fonts\fzshjw_0.ttf')
    
    #频率为5Hz的正弦信号
    x = [math.sin(i) for i in n]
    pl.subplot(221)
    pl.plot(axis_x,x)
    pl.title(u'5Hz的正弦信号', fontproperties=myfont)
    pl.axis('tight')
    
    
    #频率为5Hz、幅值为3的正弦+噪声
    
    x1 = [random.gauss(0,0.5) for i in range(N)]
    xx = []
    #有没有直接两个列表相应项相加的方式??
    for i in range(len(x)):
    	xx.append(x[i]*3 + x1[i])
     
    pl.subplot(222)
    pl.plot(axis_x,xx)
    pl.title(u'频率为5Hz、幅值为3的正弦+噪声', fontproperties=myfont)
    pl.axis('tight')
    
    #频谱绘制
    xf = np.fft.fft(x)
    xf_abs = np.fft.fftshift(abs(xf))
    axis_xf = np.linspace(-N/2,N/2-1,num=N)
    pl.subplot(223)
    pl.title(u'频率为5Hz的正弦频谱图', fontproperties=myfont)
    pl.plot(axis_xf,xf_abs)
    pl.axis('tight')
    
    #频谱绘制
    xf = np.fft.fft(xx)
    xf_abs = np.fft.fftshift(abs(xf))
    pl.subplot(224)
    pl.title(u'频率为5Hz的正弦频谱图', fontproperties=myfont)
    pl.plot(axis_xf,xf_abs)
    pl.axis('tight')

    有疑问的留简介讨论



    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    如何清理云之家的用户
    修改BOS的开发商标识
    华军纯净下载
    3333
    取得当前目录
    达梦数据库常用知识
    idea远程debugger
    ubuntu 16.04 安装TurtleBot3 ROS功能包
    树莓派4B安装ubuntu server系统
    ubuntu 安装openCV
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4684944.html
Copyright © 2020-2023  润新知