読者です 読者をやめる 読者になる 読者になる

たまによろしく

プログラム(C,C#,Unity,Python,R)のことやバイク(Skywave_CJ46)のこと

ウェーブレット変換を試してみる【R】

フーリエ変換とかを使ってると,ウェーブレット変換というのを耳にすることがあります.
フーリエ変換三角関数の重ね合わせなら,ウェーブレット変換はマザーウェーブレットというものを移動させたり伸縮させたりして元の波形を表現する.
(ざっくりとしたイメージなので,きちんとしたものは他のところを見てください.)


理論的なことは抜きにして,とりあえず,Rでウェーブレット変換をやってみる.
今回使ったコード.

# 必要に応じてコメントアウトしている命令を実行する
# install.packages("Rwave")
# library(Rwave)
par( mfrow = c(3,2))
x <- 1:512
chirp <- sin( 2 * pi * 4 * (x/length(x)) )
plot( x/length(x), chirp)
retChirp <- cwt(chirp, noctave=10, nvoice=10)
chirp <- sin( 2 * pi * 8 * (x/length(x)) )
plot( x/length(x), chirp)
retChirp <- cwt(chirp, noctave=10, nvoice=10)
plot( x/length(x), chirp)
retChirp <- cwt(chirp, noctave=10, nvoice=10)
par( mfrow = c(3,2))
chirp <- sin( 2 * pi * 1 * (x/length(x)) )
plot( x/length(x), chirp)
retChirp <- cwt(chirp, noctave=10, nvoice=10)
chirp <- sin( 2 * pi * 2 * (x/length(x)) )
plot( x/length(x), chirp)
retChirp <- cwt(chirp, noctave=10, nvoice=10)
chirp <- sin( 2 * pi * 4 * (x/length(x)) )
plot( x/length(x), chirp)
retChirp <- cwt(chirp, noctave=10, nvoice=10)

得られた結果.(左:元の波形,右:ウェーブレット変換の結果)
f:id:tamaskave:20170211210126j:plain
なんとなくそれっぽいのが出てる.