電子書籍の厳選無料作品が豊富!

カテ違いだったのでこちらで質問させていただきます。

基準となる波形といくつかのデータとしての波形があり、基準となる波形との相互相関係数からどの波形が一番基準の波形と似ているか知りたいときに、単純に畳み込み積分をすると、相関係数が振幅に左右されてしまいます。
波形の振幅に左右されずどの波形が一番基準の波形に似ているか知るにはどのように正規化したらよいでしょうか?
すこしでもわかる方はよろしくお願いします。

A 回答 (3件)

#1です。



> あと疑問なのですが、振幅や平均値でなくエネルギーを用いることの意義というのがわかれば教えていただきたいです。

振幅(Peak-Peak)では飛び抜けた値がある場合に駄目。
平均値はそれなりに比較できるけど、数値解析的にはやはりエネルギーでしょう。
ちなみに録音した波形とのことなので、音声の場合について書きますが、
エネルギーが一定=音量[dBSPL]が一定
ということになります。
平均値が一定≠音量[dBSPL]が一定
です。
    • good
    • 0
この回答へのお礼

確かにそうですね!エネルギーをもちいてやってみたいと思います。
遅くなりましたが大変丁寧に解説していただき、ありがとうございます。本当に感謝です。

お礼日時:2010/02/13 11:58

#1です。



書き忘れてたけど、相関係数求める前にオフセット消しといた方が無難かな。
base=base-mean(base)
    • good
    • 0
この回答へのお礼

2.の全てのエネルギーが一定値になるように正規化してから相関係数を求める方法を用いたいと思います。
録音した波形なので直流成分はあまりないかもしれませんが、すべての波形のオフセットを消してから相関係数を求めたいと思います。
わかりやすい回答ありがとうございます。
あと疑問なのですが、振幅や平均値でなくエネルギーを用いることの意義というのがわかれば教えていただきたいです。

お礼日時:2010/02/03 13:44

1.相関係数の二乗和が等しくなるように、相関係数を正規化。


coe = coe./std(coe,1);

2.全ての波形(基準となる波形)も含めてエネルギー(二乗和)が一定値になるように正規化してから相関係数を求める。
base = base./std(base,1);
signal1 = signal1 ./std(signal1 ,1);
signal2 = signal2 ./std(signal2 ,1);
...

とかかな。
base = c(0) + c(1) * signal
の最小二乗誤差問題解くだけでもできそうだけど。
    • good
    • 0

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