python 生成一个周期的正弦数据

6 篇文章 0 订阅
import math

i=0
list1=[]  #定义一个空list
while(i<360):
    list1.append(i)  #把数据增加到列表末
    i=i+3.6; #因为我要一个周期里有100个点,所以点间距为3.6度

#以上生成了100个点的角度数据
list2=[x*math.pi/180 for x in list1]  #把角度转成弧度

list3=[100*math.sin(x) for x in list2]  #求出正弦值,并放大100倍

list4=[int(x) for x in list3] #取整

print(list4)

用于单片机查表用,以上是自己想的方法。

第二种方法:
转载:http://www.eemaker.com/python-sin-data.html
‘’’
–sin.py
–write by derrick
–功能:生成正弦波采样数据并写入txt文件
–20180829
‘’’
import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(0,4*np.pi,4*8) #4/2=2 2个完整的正弦波波形   4*8代表一共生成的点数量
#x是32个点的list,从0开始,终点4*pi, 总点数32个, 4pi则是2个周期数据

y=43+43*np.sin(x)  #生成正弦表并增加偏置
y1=y.astype(int)   #把y值转换成整数

#画x,y图
plt.plot(x,y1,'bp--') #绘制成图表
plt.show()


#先把生成两个正弦波数据存入txt文件,生成的data.txt在本文件的目录下
np.savetxt("data.txt",(y1),delimiter=',',fmt="%d",newline=',')

#读取正弦波数据,共包含两个正弦波,32个点
fileH=open("data.txt")
fileData=fileH.read()
fileH.close()

print(type(fileData))
print(fileData)#要打印数据,必须先关闭画xy图

#以写方式打开文件,以之前的两个正弦波的数据做拷贝
fileH=open("data-500.txt",'w')
for i in range(2000):  #把data.txt的数据写2000次到data-500.txt文件
    fileH.write("\n")
    fileH.writelines(fileData)
fileH.close()
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值