まるもの雑記

なにか作ったりとかゲームとか。

IIRフィルタと位相のずれ2

前回画像にフィルタをかけていたら

→のあと←にかけると同じになったように見えたので

一応確認してみることしました。

フィルタ

例によってこいつを

こいつにかけてみます。

結果

まず順方向と逆方向のグラフ

赤い方はフィルターのレジスタをリセットしたあとに

右から左に(←方向)信号を入れています。

青い方(順方向)に比べると出力遅れが左側に出ます。

画像にかけたときにこれが位置ずれになるんでしょうね。

初期値が0から負に行くのでそのあたりに違いが出てます。

 

このグラフにそれぞれさらに逆方向からもう一度フィルタかけたやつを

重ねてみるとこんな感じ

なんか見にくいですが紫と緑がだいたい重なっています。

矩形波を入れているので全ての周波数に対してテストできるはず(たぶん)

紫と緑だけにするとこんな感じ

両側で初期値が違うのでそこ以外はぴったり重なってますね。

f0とかQが同じHPFでも試してみると

これも完全に重なる。

すばらしい。

何に使えるんだかよくわからないけどすばらしい気がする。

入力が変化するところがぴったり検出できてます。

画像をいじろうと思ったらこれは使えそうな感じ。

 

結論

フィルタを両側からかけると元の波形に対してずれない。

教科書読み返したら書いてあるだろなこれ。

 

蛇足

かけてみましょうとか書いてますが

実はグラフを書くのに結構苦労しています。

部品は大体できてきたのでわりときれいに出力できるようになりました。

補助線ひいたりとか色分けしたりとかコメントつけたりとか。

 

こーゆーのがぱぱっと出来る人がプログラマーになれるんでしょうけど

ちょっと僕にはむずかしいのでのんびりいきます。

 

補足

こーゆー記事を見に来る人はほぼ100%大学のレポートだと思うので

一応解釈を書いておきます。

申し訳ありませんが当然正しくない部分もあると思います。

 

隣のピクセルとの差を取るということは

わかりやすく言うと微分になります。

HPFは変化を抽出するフィルターなのでやってることは微分です。

これを2回かけるということは2回微分

大学受験でよく見る二次関数のグラフの書き方を思い出してほしいのですが

二回微分で正負が反転するということは

グラフを書いた時に上に凸が下に凸になったりするということです。

色と色の境界がぼやけてる場所では1回微分でエッジ検出すると

同じような場所がたくさんあるので結果がぼやけるのですが

凸の向き変化の場所は1点になりやすくなってるんだと思います。

 

もっといい説明があればコメントしていただけるとうれしいです。