適応フィルタリング:最適なフィルター長と遅延


7

RLSアルゴリズムを使用して、適応フィルタリングの最適なフィルター長を見つけようとしています。

私はこのデザインを使用しています:

つまり、「エラー」信号はノイズのない信号です(それが私が欲しい信号です)。

私が持っている場合はが、、私は私の希望信号必要されるだから用いて最適フィルタ長(及び遅延)を見つけますMSE基準ですが、今はエラーとして必要な信号があるので、最適なフィルター長を見つける方法がわかりません。出力でMSEが何を取得する必要があるかわからないためです。e(n)=d(n)y(n)d(n)e(n)0

誰か私に何をすべきか教えてもらえますか?

ありがとう!


3
一般的に、これは良い質問のようですが、あなたの図は私を混乱させます。たとえば、結合信号を使用して狭帯域干渉を削除することはありません...これは意図的なものでしたか?また、システムの伝達関数を知っているので、なぜ適応フィルターが必要なのですか?d(n)G(z)=zΔ
2017

適応フィルターは、入力と相関のない信号をフィルター処理します。遅延を追加すると、遅延したノイズは元のノイズと相関しなくなりますが、遅延したは元と相関しているため、ノイズがフィルター処理されます。だよね?そのデザインはMITからのものです。s(n)s(n)
名前なし

2
わかりましたが、これが機能するためには、遅延が十分に大きく、目的の信号がフィルターの入力での遅延信号と無相関である必要があります。その場合、フィルターは干渉を予測します。(コメントで書いたように)ノイズではなく、遅延信号と無相関にする必要のある希望の信号であることに注意してください。Δs(n)
Matt L.

はい、私はあなたが正しいと思います。したがって、エラー信号はですか?はどのくらい大きくなければなりませんか?e(n)e(n)=r(n)Δ
名前なし

いいえ、およびです。遅延所望の信号の自己相関が遅れゼロ(閉鎖する)であるように選択されなければならないように、、入力と無相関となるフィルタします。したがって、の選択はプロパティに依存します。e(n)s(n)y(n)r(n)ΔΔs(n)f(n)Δs(n)
Matt L.

回答:


4

遅延に最適な値を選択できるようにするには、システムの動作を理解することが重要です。遅延の目的は、適応フィルターの入力で目的の信号と信号成分を無相関化することです。つまり、は、遅れがより大きい場合、の自己相関がゼロ(に近いなるように選択する必要があります。Δs(n)s(nΔ)ΔRss(k)s(n)Δ

Rss(k)0,|k|>Δ

ただし、フィルターの入力での遅延干渉を信号に追加された干渉と相関させる必要があるため、任意に大きくすることはできません。つまり、干渉の自己相関は、遅延。それ以外の場合、適応フィルターは干渉を予測できません。がと比較して狭帯域であると想定できる場合、適切な値を見つけることは常に可能です。ΔRrr(k)Δr(n)s(n)Δ

適切な値を指定すると、適応フィルターは干渉を予測しようとします。つまり、干渉に大きな周波数成分がある周波数帯域の遅延の影響を取り消そうとします。したがって、フィルターの出力は:近似します。その結果、エラー信号は希望する信号に近似します:。Δr(n)y(n)r(n)e(n)s(n)

自己相関に基づいて値を選択した後、試行錯誤によってフィルター長を選択する必要があります。フィルターが長いと、収束が遅くなりますが、抑制効果が高まります。Δs(n)


いつものように素晴らしい答え、マット。
Jason R

Mattに感謝します。多くのことを理解しました。しかし、私はまだいくつかの問題を抱えています。、および、私は主ポスト上に置くことが図に見ることが一つであり、私は自己相関を計算する:ですが、少しにくい結果があります。フィルター長場合:e(n)s(n)e(n)
Rss=n=1Le(n)e(n)
M=50
Δ=2R=0.1950Δ=5R=0.4566Δ=10R=0.1396Δ=11R=0.5913Δ=12R=0.0588Δ=13R=0.1.9348Δ=30R=0.7577
名前なし

そして私が取る場合私が持っている どうしたらいいかわかりません。私はそれらの結果を期待していなかった:SM=20
Δ=2R=0.2310Δ=5R=0.4435Δ=10R=0.9420Δ=30R=0.2.5122
名前

1
@ディラン:何を期待し、何をしようとしているのですか?
Matt L.

@MattL .:同じフィルター長の場合、遅延が大きいほど、自己相関は小さくなると思いました。メインポストで示した設計からを計算し、MATLABでその信号を次のように してから、自己相関を計算するには: Δe(n)
edelayed=zeros(1,length(e));for i=(Δ+1):Ledelayed(i)=e(iΔ);end
autocorr=eedelayed
名前なし
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.