zoukankan      html  css  js  c++  java
  • 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')

    有疑问的留简介讨论



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

  • 相关阅读:
    luogu P3168 [CQOI2015]任务查询系统
    luogu P2633 Count on a tree
    c++小游戏:洛谷彩票
    UVA514 铁轨 Rails:题解
    SP1805 HISTOGRA
    洛谷 P4363 [九省联考2018]一双木棋chess 题解
    比赛:大奔的方案solution
    【CYH-02】NOIp考砸后虐题赛:数学:题解
    【CYH-02】NOIp考砸后虐题赛:坐标:题解
    【CYH-02】NOIp考砸后虐题赛:转换式:题解
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4684944.html
Copyright © 2011-2022 走看看