dポイントプレゼントキャンペーン実施中!

Q1)下記の(f,f)と(g,g)について、お教え頂けますと大変有難いです。
Q2){(f,f)(g,g)}の{...}についても、お教え頂けますと大変有難いです。
============
例えば、2つの時間に依存する量(実数値)f(t),g(t)があったとき、
(f,g)=∫f(t)g(t)dt
として
(f,g)/√{(f,f)(g,g)}
で、類似度を測定できると思います。
============
以上、宜しくお願いします。

A 回答 (3件)

> (f,g)=∫f(t)g(t)dt



 右辺が不定積分では意味をなしません。右辺が定積分(たとえば0〜Tの範囲の)であれば、 (f,g)とは「fとgの内積」ってことです。
  fがベクトルの場合、(f,f)はベクトルfの大きさ|f|の2乗です。そして (f,g)/√{(f,f)(g,g)} はベクトル同士がなす角度θのcosineですね。
 同様に、f,gが関数の場合の(f,g)というのは、ベクトル(f(0),f(Δt), f(2Δt), ....., f(T))と、ベクトル(g(0),g(Δt), g(2Δt), ....., g(T))の内積(のΔt倍)で、Δt→0とした、ということだと思えばいいんです。

で、何にお困りなのでしょう?
    • good
    • 0
この回答へのお礼

お世話になります。
>何にお困りなのでしょう?
<ーー地震波等のの周波数分析を行っています。
相互相関関数の方法は正確に出ると思いますが、非分析信号が
長い(サンプリング周波数*時間)には、分析時間が掛かります。
その一つの対策としてmor1.5-10等のマザーウエブレットのsin,cos波形を使用しています。この演算の方式を確認する為に質問しました。
回答有難う御座いました。

お礼日時:2022/12/01 19:16

f(t)とg(t)の相互相関関数を出すには


  h(t) = ∫{s=0~T} f(s)g(s+t) ds
の計算が必要です(が、ご質問で「f(t)とg(t)の類似度」とおっしゃっているのはh(0)だけの話ですね)。これは
  u(t) = g(-t)
として
  h(-t) = (f*u)(t)
とやっても同じこと。"*"は畳み込み積分(convolution)のことで
  (f*u)(t) = ∫{s=0~T} f(s)u(t-s) ds
です。これを各tごとに計算するのではなくて、まずf(t), u(t)のフーリエ変換をやったものF(ω), U(ω)を作り、両者の積
  H(ω) = F(ω) U(ω)
を計算し、その逆フーリエ変換をする。そうすればhが全部のtについて一気に計算できます(convolution定理)。なお、フーリエ変換と逆フーリエ変換にはFFTを使います。
    • good
    • 0

使えそうですね。

何が「類似度」かは主観によりますけど。
ただし、その式に現れる 3個の ( , ) が収束するならば...
という条件が付きます。そういう信号を考えているんでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!