謹賀新年

(遅くなりましたが)あけましておめでとうございます

本年もよろしくお願いいたします。

今年の干支をウェーブレットで描かしてみました。
必要な環境は id:ikeuchihiroki:20090102 と同じです。

from pylab import *
import iwavelets.pycwt as w

#Generate Time series
Fs = 1024.0*4
time  = arange(0,3.0/4.0+1.0/8.0,1/Fs)

#horizontal lines
signal=sin(2*pi*200*time)+sin(2*pi*100*time)
signal[0:Fs/2+Fs/8]+=sin(2*pi*300*time[0:Fs/2+Fs/8])

win=zeros(signal.size)
win[Fs/8:Fs-Fs/4]=(ones(Fs-Fs/4-Fs/8))

signal=signal*win

#vertical lines
t0=time[0:Fs/8]
sig1=sin(2*pi*(100+t0*200*4)*t0)

signal[Fs/4:Fs/4+Fs/8]+=sig1*2
signal[Fs/2:Fs/2+Fs/8]+=sig1*2

#Frequency array
freqs=arange(1.0,400.0,1.0)

#Morlet fc
fc=5

#calc
r=w.cwt_f(signal,freqs,Fs,w.Morlet(fc))
rr=r.real**2+r.imag**2

#show
clf()
imshow(flipud(rr),aspect='auto',extent=(time[0],time[-1],freqs[0],freqs[-1]))

xlabel('Time[s]')
ylabel('Frequency[Hz]')

show()

#output Wave file
import wave
f=wave.open('test.wav','wb')
f.setnchannels(1)
f.setframerate(Fs)
f.setsampwidth(2)
f.writeframes(signal)
f.close()