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')

    有疑问的留简介讨论



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

  • 相关阅读:
    Linux基础巩固--Day4--文本处理
    Linux基础巩固--Day3--用户组及权限操作
    2020撸python--argparse列出D盘目录详情
    2020撸python--socket编程
    Linux基础巩固--Day2--文件操作
    Linux基础巩固--Day1--背景介绍
    Let's Go -- 初始go语言
    ValueError: Related model 'users.UserProfile' cannot be resolved
    半虚拟化驱动virtio-Windows
    virt-install 创建虚拟机
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4684944.html
Copyright © 2011-2022 走看看