ガボールフィルタ・モーレフィルタ

  • こちらで任意次元ウェーブレット変換をやっている
  • 空間について考えるとき、「縦軸と横軸をとって…」というやり方は、いかにも使いにくい。特定の基底を出発点にしているから
  • ガボールフィルタと言うのがあって、生物(ヒト)の視覚処理モデルとして使われるとともに、なかなか強力なものらしい
  • 資料1
  • 資料2(wiki)
  • 資料3
  • 空間の次元はガボール的に、時間は普通のウェーブレット(かフーリエ)的にとするのがよいかなー
  • 関数自体は素直なもので、二次元正規分布(楕円的)に三角関数をかぶせたもの
  • 三角関数を指数関数で計算してあるが、実部と虚部があるということ
  • ウェーブレットするときは、「実々」「実虚」「虚実」「虚虚」の4つにする(?)
  • 3Dガボール

x <- y <- seq(from=-3,to=3,length=100)
xy <- expand.grid(x,y)
lambda <- 2
theta <- pi/3
psi <- pi/5
sigma <- 1.3
gamma <- 3

x. <- xy[,1] * cos(theta) + xy[,2] * sin(theta)
y. <- -xy[,1] * sin(theta) + xy[,2] * cos(theta)

z <- exp(-(x.^2 + gamma^2 * y.^2)/(2*sigma^2)) *exp(1i*(2*pi * x./lambda + psi))

image(x,y,matrix(Re(z),length(x),length(y)))
  • 同様にMaulet filterというのがある
    • 1次元データを虚実に分ける


sigma <- 5
csigma <- (1+exp(-simga^2)-2*exp(-3/4*sigma^2))^(-1/2)
kappasigma <- exp(-1/2*sigma^2)

t <- seq(from=-5,to=5,length=10000)
z.m <- csigma * pi^(-1/4)*exp(-1/2*t^2)*(exp(1i * sigma * t)-kappasigma)
plot(t,Re(z.m),type="l")
library(rgl)
plot3d(t,Re(z.m),Im(z.m),type="l")