SineSweep(正弦扫频信号)
本⽂主要参考:
读后记录如下:
eep波的函数
sweep(t)=sin(2*PI*f0*(k^t-1)/log(k))
的代码
frommathimport*
importarray
asplt
importwave
defsinesweep(f0,f1,sweeptime,samplingrate,peak):
k=exp(log(float(f1)/f0)/sweeptime)
data_len=sweeptime*samplingrate
data=('i',[0]*data_len)
dt=1.0/samplingrate
t=0.0
p=2*pi*f0/log(k)
foriinrange(data_len):
data[data_len-i-1]=int(peak*sin(p*(pow(k,t)-1)))
t+=dt
returndata
defsindata(f0,time,samplingrate,peak):
data=[int(peak*sin(2*pi*f0*x/samplingrate))forxinxrange(int(time*samplingrate))]
('h',data)
if1:
SAMPLING_RATE=44100
SWEEP_TIME=2
F0=20
F1=20000
PEAK=0x2000
data=sinesweep(F0,F1,SWEEP_TIME,SAMPLING_RATE,PEAK)
("sweepdata")
(data)
()
if1:
f=("","wb")
annels(1)#monowave
pwidth(2)#16bit
merate(SAMPLING_RATE)#samplingrate
rames(data)
()
3.运⾏结果
本文发布于:2022-12-28 05:27:10,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/44907.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |