基于matplotlib Python实现正弦信号的时域波形和频谱图示例


本文摘自php中文网,作者不言,侵删。

这篇文章主要介绍了Python实现正弦信号的时域波形和频谱图,涉及Python数学运算与图形绘制相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python实现正弦信号的时域波形和频谱图。分享给大家供大家参考,具体如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

# -*- 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)]  # 生成了500个介于0.0-31.35之间的点

# print n

axis_x = np.linspace(0,3,num=N)

#频率为5Hz的正弦信号

x = [math.sin(i) for i in n]

pl.subplot(221)

pl.plot(axis_x,x)

pl.title(u'5Hz的正弦信号',fontproperties='SimHei')

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

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

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

pl.plot(axis_xf,xf_abs)

pl.axis('tight')

pl.show()

运行效果:

相关推荐:

Python实现的求解最小公倍数算法示例

以上就是基于matplotlib Python实现正弦信号的时域波形和频谱图示例的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python中的条件语句怎么写01:单个和多个条件判断

Python能生成exe程序吗

Python lambda怎么用

Python能做什么

Python单行注释用什么符号

Python中的end怎么用

Python到底是什么类型的语言

Python之正则表达式中的贪心模式和非贪心模式的用法和区别

举例说明Python中空格是属于字符

Python update函数定义及作用实例解析

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...