主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

dsp。RLSFilter

再帰的最小二乗(RLS)アルゴリズムを使用した出力,誤差および係数の計算

説明

dsp。RLSFilter系统对象™は,RLSフィルターの実装を使用して入力の各チャネルをフィルター処理します。

入力の各チャネルをフィルターするには,次を実行します。

  1. dsp。RLSFilterオブジェクトを作成し,そのプロパティを設定します。

  2. 関数と同様に,引数を指定してオブジェクトを呼び出します。

系统对象の機能の詳細については,系统对象とはを参照してください。

作成

説明

rlsFilt= dsp。RLSFilterは適応RLSフィルター系统对象,rlsFiltを返します。この系统对象は,RLSアルゴリズムを使用して,フィルター済み出力,フィルター誤差および指定の入力と目的の信号に対するフィルターの重みを計算します。

rlsFilt= dsp。RLSFilter (lenはRLSフィルター系统对象,rlsFiltを返します。この系统对象には,lenに設定された长度プロパティがあります。

rlsFilt= dsp。RLSFilter (名称,值は,指定した各プロパティが指定の値に設定されたRLSフィルター系统对象を返します。各プロパティ名を一重引用符で囲みます。指定していないプロパティは既定値になります。

プロパティ

すべて展開する

特に指定がない限り,プロパティは”調整不可能”です。つまり,オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ,ロックを解除するには関数释放を使用します。

プロパティが”調整可能”の場合,その値をいつでも変更できます。

プロパティ値の変更の詳細については,系统对象を使用したMATLABでのシステム設計を参照してください。

フィルターの係数の計算に使用するメソッドを,传统的RLS[1][2]户主RLS[3][4]滑动窗口RLS[5][1][2]户主滑动窗口RLS[4],またはQR分解[1][2]として指定できます。このプロパティは調整不可能です。

RLSフィルターの係数ベクトルの長さを,スカラーの正の整数値として指定します。このプロパティは調整不可能です。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

スライディングウィンドウの幅を长度プロパティ値以上のスカラーの正の整数値として指定します。このプロパティは調整不可能です。

依存関係

このプロパティは,方法プロパティを滑动窗口RLSまたは户主滑动窗口RLSに設定した場合にのみ適用されます。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

RLS忘却係数を1以下の正のスカラー数値として指定します。このプロパティ値を1に設定することは無限メモリを意味し,その間は新しいフィルターを求めて適応を行います。

調整可能:是的

データ型:|

冷杉適応フィルター係数の初期値をスカラーまたは长度プロパティ値に等しい長さのベクトルとして指定します。

調整可能:是的

データ型:|

入力信号の逆共分散行列の初期値を指定します。このプロパティは,各次元が长度プロパティ値と等しいスカラーまたは正方行列でなければなりません。スカラー値を設定すると,InverseCovarianceプロパティはそのスカラー値と等しい対角要素をもつ対角行列に初期化されます。

調整可能:是的

依存関係

このプロパティは,方法プロパティを传统的RLSまたは滑动窗口RLSに設定した場合にのみ適用されます。

データ型:|

入力信号の平方根逆共分散行列の初期値を指定します。このプロパティは,各次元が长度プロパティ値と等しいスカラーまたは正方行列でなければなりません。スカラー値を設定すると,SquareRootInverseCovarianceプロパティはそのスカラー値と等しい対角要素をもつ対角行列に初期化されます。

調整可能:是的

依存関係

このプロパティは,方法プロパティを户主RLSまたは户主滑动窗口RLSに設定した場合にのみ適用されます。

データ型:|

入力信号の平方根共分散行列の初期値を指定します。このプロパティは,各次元が长度プロパティ値と等しいスカラーまたは正方行列でなければなりません。スカラー値を設定すると,SquareRootCovarianceプロパティはそのスカラー値と等しい対角要素をもつ対角行列に初期化されます。

調整可能:是的

依存関係

このプロパティは,方法プロパティをQR-decomposition RLSに設定した場合にのみ適用されます。

データ型:|

フィルター係数値をロックするかどうかを指定します。このプロパティを真正的に設定すると,フィルター係数は更新されず,値はそのままになります。既定値は(フィルター係数が継続的に更新される)です。

調整可能:是的

使用法

説明

y= rlsFilt (xdのは、系统对象rlsFiltを使用して,目的の信号dに一致するように基準入力xを再帰的に調整します。目的の信号dは,望ましい信号に望ましくないノイズが加わったものです。

ye) = rlsFilt (xdは,基準入力と目的の信号間で,RLSフィルターの出力を誤差eに沿って表示します。フィルターは,誤差eが最小になるまでその係数を調整します。オブジェクトの系数プロパティにアクセスすることで,これらの係数にアクセスできます。これは,オブジェクトを呼び出した後でのみ実行できます。たとえば,rlsFiltフィルターの最適化された係数にアクセスするには,入力と目的の信号をオブジェクトに渡した後で,rlsFilt。系数を呼び出します。

入力引数

すべて展開する

RLSフィルターでフィルター処理される信号。入力xと目的の信号dはサイズとデータ型が同じでなければなりません。

入力は可変サイズ信号にすることができます。オブジェクトがロックされていても、列ベクトルの要素数を変更できます。System object はオブジェクトを呼び出してそのアルゴリズムを実行するときにロックします。

データ型:|
複素数のサポート:あり

RLSフィルターはその係数を調整して誤差eを最小化し,入力信号xを目的の信号dに可能な限り近づけて収束させます。

入力xと目的の信号dはサイズとデータ型が同じでなければなりません。

目的の信号dは可変サイズ信号にすることができます。オブジェクトがロックされていても、列ベクトルの要素数を変更できます。System object はオブジェクトを呼び出してそのアルゴリズムを実行するときにロックします。

データ型:|
複素数のサポート:あり

出力引数

すべて展開する

フィルター処理された出力。スカラーまたは列ベクトルとして返されます。オブジェクトはそのフィルターの係数を調整して入力信号xが目的の信号dに一致するように収束させます。フィルターは収束した信号を出力します。

データ型:|
複素数のサポート:あり

出力信号yと目的の信号dの差異。スカラーまたは列ベクトルとして返されます。RLSフィルターの目的は,この誤差を最小化することです。オブジェクトはその係数を調整して収束させ、目的の信号とよく一致する出力信号を生成する最適なフィルターの係数になるようにします。eが計算される方法の詳細については,アルゴリズムを参照してください。RLSフィルター係数にアクセスするには,入力信号と目的の信号をオブジェクトに渡した後でrlsFilt。系数を呼び出します。

データ型:|
複素数のサポート:あり

オブジェクト関数

オブジェクト関数を使用するには,系统对象を最初の入力引数として指定します。たとえば,objという名前の系统对象のシステムリソースを解放するには,次の構文を使用します。

发行版(obj)

すべて展開する

msesim 自适应滤波器的估计均方误差
一步 系统对象のアルゴリズムの実行
释放 リソースを解放し,系统对象のプロパティ値と入力特性の変更を可能にします。
重置 系统对象の内部状態のリセット

すべて折りたたむ

RLS(再帰的最小二乗)フィルターを使用してローパス冷杉フィルターでモデル化した未知のシステムを同定します。未知のシステムと推定システムの周波数応答を比較します。

メモ: R2016a以前のリリースを使用している場合,それぞれのオブジェクトの呼び出しを等価な一步構文で置き換えてください。たとえば,obj (x)步骤(obj, x)になります。

初期化

同定対象のシステムを表すdsp。FIRFilterオブジェクトを作成します。信号xを冷杉フィルターに渡します。未知のシステムの出力は、未知のシステム (FIR フィルター) の出力と加法性ノイズ信号nの和である,目的の信号dです。

filt = dsp。FIRFilter (“分子”二十五分,fir1(10日));x = randn (1000 1);n = 0.01 * randn (1000 1);D = filt(x) + n;

適応フィルター

dsp。RLSFilterオブジェクトを作成して,RLSフィルターを作成します。フィルターの長さを11タップに,忘却係数を0.98に設定します。一次入力信号xと目的の信号dをRLSフィルターに渡します。適応フィルターの出力yは目的の信号dに収束された信号であり,2つの信号間の誤差eを最小化します。

rls = dsp。RLSFilter (11,“ForgettingFactor”, 0.98);[y, e] = rls (x, d);w = rls.Coefficients;

結果のプロット

出力信号と目的の信号が一致しており,これらの間の誤差はゼロに近くなっています。

情节(1:1000 [d, y, e]);标题(“FIR滤波器的系统识别”);传奇(“想要的”“输出”“错误”);包含(“时间指数”);ylabel (的信号值);

重みの比較

重みベクトルwは,未知のシステム(冷杉フィルター)に似るように適応させたRLSフィルターの係数を表します。収束を確認するために,冷杉フィルターの分子係数とRLSフィルターの推定された重み付けを比較します。

前の信号プロットの結果を確認すると,推定されたフィルターの重みと実際のフィルターの重みがよく一致しています。

茎([filt.Numerator;w]。');传奇(“实际”“估计”);包含(“系数#”);ylabel (的系数值);

この例では,次に示す逆システム同定モデルを使用して,RLS適応アルゴリズムの例を示します。

適応フィルターを未知のフィルターとカスケード接続すると,未知のシステムの逆数である解に適応フィルターが収束します。

未知のシステムと適応フィルターの伝達関数がそれぞれHz)およびGz)である場合,カスケード接続されたシステムからの信号と目的の信号の間で測定される誤差は,G (z) × H (z) =1になるときに最小になります。この関係が成り立つには,Gz)が1 /H (z)(未知のシステムの伝達関数の逆数)に等しくなければなりません。

これが正しいことを示すため,カスケード接続されたフィルターペアに入力する信号年代を作成します。

s = randn (3000 1);

カスケード接続されたフィルターの場合,未知のフィルターにより,両方のフィルターの後の総和点に到達する信号に遅延が発生します。まだ参照していない信号に適応フィルターが適応しようとすることを防ぐため(未来を予測することと同じです),目的の信号を12サンプル遅延させます(12は未知のシステムの次数)。

一般に,同定しようとしているシステムの次数は不明です。このような場合,適応フィルターの次数の半分に等しいサンプル数だけ目的の信号を遅延させます。入力を遅延させるには,値がゼロの12サンプルを入力年代に先行させる必要があります。

延迟= 0(12日1);d =[延迟;s (1:2988)];%连接延迟和信号。

目的の信号ベクトルdxは同じ長さでなければならないので,遅延サンプルに対応するように信号要素数を調整します。

すべての場合に当てはまるわけではありませんが,この例では未知のフィルターの次数がわかっているので,未知のフィルターの次数に等しい遅延を追加します。

未知のシステムには,12次のローパス冷杉フィルターを使用します。

filt = dsp.FIRFilter;filt。0.55分子= fir1(12日,“低”);

年代にフィルターを適用して,適応アルゴリズム関数の入力データ信号を与えます。

x = filt(年代);

RLSアルゴリズムを使用するには,dsp。RLSFilterオブジェクトを作成し,その长度ForgettingFactor,およびInitialInverseCovarianceプロパティを設定します。

RLSアルゴリズムのオブジェクトを準備するための入力条件の詳細については,dsp。RLSFilterを参照してください。

P0 = 2 *眼(13);λ= 0.99;rls = dsp。RLSFilter (13,“ForgettingFactor”λ,...“InitialInverseCovariance”、p0);

この例では逆数の解を求めようとしているので,データを搬送する信号と目的の信号がどれであるかに注意する必要があります。

前の適応フィルターの例では,フィルターを適用したノイズを目的の信号として使用しました。このケースでは,フィルターを適用したノイズ(x)は未知のシステムの情報を搬送します。分散が1のガウス分布に従う,フィルターを適用しないノイズdが目的の信号です。この適応フィルターを実行するコードは,次のようになります。

[y, e] = rls (x, d);

yには,フィルターを適用した出力が返されます。eには,未知のシステムの逆数を求めるためにフィルターが適応するときの誤差信号が格納されます。

RLSフィルターの推定係数を取得します。

b = rls.Coefficients;

freqzを使用して,適応させたRLSフィルター(逆システム,G(z))の周波数応答を表示します。逆システムは,線形位相をもつハイパスフィルターと同じように見えます。

freqz (b, 1)

未知のシステムH(z)の周波数応答を表示します。この応答は,カットオフ周波数が0.55であるローパスフィルターのものです。

freqz (filt.Numerator, 1)

未知のシステムと適応させたフィルターをカスケード接続すると,カットオフ周波数が0.8に拡張された補正システムになります。

overallCoeffs = conv (filt.Numerator, b);freqz (overallCoeffs, 1)

RLS適応フィルターを使用して未知のシステムに追加された加法性ノイズnを打ち消します。RLSフィルターは,その伝達関数が未知のシステムの伝達関数と可能な限り一致するまでその係数を調整します。適応フィルターの出力と未知のシステムの出力間の差異は,加法性ホワイトノイズを表す誤差信号eです。この誤差信号の最小化が適応フィルターの目的です。

メモ: R2016a以前のリリースを使用している場合,それぞれのオブジェクトの呼び出しを等価な一步構文で置き換えてください。たとえば,obj (x)步骤(obj, x)になります。

初期化

未知のシステムを表すdsp。FIRFilter系统对象™を作成します。dsp。RLSFilterオブジェクトを作成し,長さを11タップに設定します。メソッドを房主RLS的に設定します。未知のシステムに追加されたノイズを表す正弦波を作成します。時間スコープに信号が表示されます。

FrameSize = 100;硝石= 10;rls = dsp。RLSFilter (“长度”11“方法”房主RLS的);filt = dsp。FIRFilter (“分子”fir1(10[5,综合成绩]));sinewave = dsp。SineWave (“频率”, 0.01,...“SampleRate”, 1“SamplesPerFrame”, FrameSize);范围= timescope (“LayoutDimensions”(2 - 1),“NumInputPorts”,2,...“TimeUnits”“秒”“YLimits”(-2.5 - 2.5),...“BufferLength”2 * FrameSize *硝石,...“ActiveDisplay”, 1“ShowLegend”,真的,“ChannelNames”,{噪声信号的},...“ActiveDisplay”,2,“ShowLegend”,真的,“ChannelNames”,{误差信号的});k = 1:NIter x = randn(FrameSize,1); / /D = filt(x) +正弦波();[y, e] = rls (x, d);w = rls.Coefficients;范围(d, e)结束

(范围)

アルゴリズム

dsp。RLSFilter系统对象は,传统的RLSが選択されると、冷杉フィルターの重みの最小二乗推定(RLS)を再帰的に計算します。系统对象は,入力信号と目的の信号に変換するために必要なフィルターの重みまたは係数を推定します。入力信号はスカラーまたは列ベクトルにすることができます。目的の信号は入力信号と同じデータ型、実数/複素数および次元をもたなければなりません。対応する RLS フィルターは、行列形式のPn)として表現されます。

k n λ 1 P n 1 u n 1 + λ 1 u H n P n 1 u n y n w T n 1 u n e n d n y n w n w n 1 + k n e n P n λ 1 P n 1 λ 1 k n u H n P n 1

ここで,λ-1は指数的な重み係数の逆数を示します。変数は次のようになります。

変数 説明
n 現在の時間インデックス
un ステップnでのバッファー済み入力サンプルのベクトル
Pn ステップnでの逆相関行列
kn ステップnでのゲインベクトル
wn ステップnでのフィルタータップの推定ベクトル
y (n ステップnでのフィルター処理された出力
e (n) ステップnでの推定誤差
d (n) ステップnでの目的の応答
λ 忘却係数

uw,およびkはすべて列ベクトルです。

参照

[1] M Hayes,统计数字信号处理与建模,纽约:Wiley, 1996。

[2] S. Haykin,自适应滤波理论,第四版,上鞍河,NJ: Prentice Hall, 2002。

A.A. Rontogiannis和S. Theodoridis,“逆因子分解自适应最小二乘算法”,信号处理号,第52卷。1,第35-47页,1996年7月。

[4] S.C. Douglas,“数字稳健的O(N)2使用最小二乘预白化的RLS算法声学、语音和信号处理,土耳其伊斯坦布尔,vol. I, pp. 412-415, 2000年6月。

[5] A. H. Sayed,自适应滤波原理,霍博肯,NJ: John Wiley & Sons, 2003。

拡張機能

R2013aで導入