python 正弦曲线_使用python生成正弦波数据

在调试ESP32的音频功能的时候,需要对声音的效果做个测试,需要1khz的正弦波c语言数组形式的数据,采样率为16k。这么算也就是一个完整的正弦波波形用16个点来表示。如何快速获取这样的数据,又想起来了强大的python,知道有个numpy科学计算的库,但是仅限于知道还没怎么用过。网上一搜果然有用他生成正弦波的,而且还简单。

这样整体地思路就有了,我先用numpy生成正弦波数据,然后调用python的写文件接口把这些数据写入一个txt文件。随后就一边搜资料一边写,代码如下:

'''

--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代表一共生成的点数量

y=43+43*np.sin(x) #调整43这个值可以调整波峰值

y1=y.astype(int) #把y值转换成整数

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

plt.show()

#先把生成两个正弦波数据存入txt文件

np.savetxt("data.txt",(y1),delimiter=',',fmt="%d",newline=',')

#读取正弦波数据,共包含两个正弦波,32个点

fileH=open("data.txt")

fileData=fileH.read()

fileH.close()

#以写方式打开文件,以之前的两个正弦波的数据做拷贝

fileH=open("data-500.txt",'w')

for i in range(2000):

fileH.write("\n")

fileH.writelines(fileData)

fileH.close()

生成的波形图如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值