使用python生成正弦波数据

python 电子创客营 92次浏览 已收录 扫描二维码

在调试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()

 

生成的波形图如下:

使用python生成正弦波数据


转载请注明转自电子创客营:使用python生成正弦波数据! 了解我们点击这里
喜欢 (1)or分享 (0)
电子创客营
关于作者: