このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
この例では,法罗構造を使用して実装されるデジタル非整数遅延フィルターの設計法を示します。デジタル非整数遅延(fracDelay)フィルターは,信号のサンプリングの瞬間を微調整するのに便利なツールです。これらはたとえば,遅延パラメーターが時間とともに変化するデジタルモデムの同期に通常使用されます。この例では,時変冷杉fracDelayフィルターの実装によく使用される法罗構造について示します。
理想非整数遅延フィルターは,線形位相オールパスフィルターです。そのインパルス応答は,非因果フィルターに対応した時間シフト離散sinc関数です。インパルス応答は無限であるので,時間の有限シフトによって因果的にすることはできません。したがって,これは実現不可能であり,近似しなければなりません。
非整数遅延フィルターの出力を計算するには,既存の離散時間サンプル間の入力信号値を推定する必要があります。任意の点における新しいサンプル値を計算するには,特殊な内挿フィルターを使用できます。これらのフィルターのうち,多項式ベースのフィルターは,その特殊な構造,つまり法罗構造のおかげで係数を簡単に処理できるので,特に有用です。特に,法罗構造の調整可能性により,これは実用的なハードウェアの実装に適しています。
ラグランジュ内挿は,多項式ベースのフィルターの特殊なケースとなる時間領域方法です。出力信号は次数の多項式Mで近似されます。最も単純なケース(M = 1)は線形内挿に対応しています。さまざまな割合で単位遅延を分割する線形非整数遅延フィルターを設計し,解析してみましょう。
Nx = 1024;Nf = 5;yw = 0 (Nx、Nf);transferFuncEstimator = dsp。TransferFunctionEstimator (...“SpectralAverages”25岁的“FrequencyRange”,“单向的”);arrPlotPhaseDelay = dsp。ArrayPlot (“PlotType”,“行”,“YLimits”, 1.5 [0],...“YLabel”,的相位延迟,“SampleIncrement”, 1/512);arrPlotMag = dsp。ArrayPlot (“PlotType”,“行”,“YLimits”, -10年[1],...“YLabel”,“(dB)级”,“SampleIncrement”, 1/512);fracDelay = dsp.VariableFractionalDelay;xw = randn (Nx、Nf);transferFuncEstimator (xw yw);w = getFrequencyVector (transferFuncEstimator, 2 *π);w = repmat (w 1 Nf);抽搐,而toc < 2 yw = fracDelay(xw,[0 0.2 0.4 0.6 0.8]);H = transferFuncEstimator (xw yw);arrPlotMag (20 * log10 (abs (H))) arrPlotPhaseDelay(角(H) / w)。结束release(transferFuncEstimator) release(arrPlotMag) release(arrPlotPhaseDelay) release(fracDelay)
遅延の値に対し,理想フィルターは平坦な振幅応答と平坦な位相遅延応答をもっていなければなりません。近似は最小周波数に対してのみ正しくなります。つまり,実際に線形非整数遅延が正しく機能するには,信号をオーバーサンプリングする必要があります。ここでは,正弦波に2つの異なる非整数遅延を適用し,元の正弦波と2つの遅延バージョンを,時間スコープを使用して重ねます。サンプルレート1000 Hzにおける0.2サンプルの遅延は,0.2ミリ秒の遅延に相当します。
范围= timescope (“SampleRate”, 1000,...“YLimits”[1],...“TimeSpanSource”,“属性”,...“时间间隔”02);正弦= dsp。SineWave (“频率”, 50岁,“SamplesPerFrame”Nx);抽搐,而Toc < 2 x = sin ();y = fracDelay (x)。2。8]);%延迟0.2 ms和0.8 ms范围([x, y (: 1), y (:, 2)))结束释放(范围);发行版(fracDelay)
より高次のラグランジュ内挿器を設計できます。3次ラグランジュ内挿器を線形内挿器と比較してみましょう。
farrowFracDelay = dsp。VariableFractionalDelay (...“InterpolationMethod”,“法罗”,“MaximumDelay”, 1025);
Nf = 2;yw = 0 (Nx、Nf);xw = randn (Nx、Nf);H = transferFuncEstimator (xw yw);w = getFrequencyVector (transferFuncEstimator, 2 *π);w = repmat (w 1 Nf);抽搐,而toc < 2%运行2秒yw (: 1) = fracDelay (xw (: 1), 0.4);%延迟0.4毫秒yw (:, 2) = farrowFracDelay (xw (:, 2), 1.4);%延迟1.4毫秒H = transferFuncEstimator (xw yw);arrPlotMag (20 * log10 (abs (H))) arrPlotPhaseDelay(打开(角(H)) / w)。结束release(transferFuncEstimator) release(arrPlotMag) release(arrPlotPhaseDelay) release(fracDelay)
多項式の次数を若干増加すると有用な帯域幅が増加しますが,ラグランジュ近似を使用する場合は,微分フィルターの長さ,つまりインパルス応答の区分数(“系数”プロパティの行数)が多項式の長さ(“系数”プロパティの列数)に等しくなります。他の設計法を使用してこの制限を克服することもできます。また3次フィルターの位相遅延が直流でどのように0.4サンプルから1.4サンプルにシフトするかにも注目してください。3次ラグランジュ内挿器は3次フィルターであるため,達成可能な最小遅延は1になります。そのため,要求する遅延は,この場合,0.4毫秒ではなく1.4毫秒になります。
正弦= dsp。SineWave (“频率”, 50岁,“SamplesPerFrame”Nx);抽搐,而Toc < 2 x = sin ();日元= fracDelay (x, 0.4);y2 = farrowFracDelay (x, 1.4);范围([x, y1, y2])结束释放(范围);发行版(fracDelay)
直接型冷杉と比較した法罗構造の利点は,その調整可能性にあります。数多くの実用アプリケーションにおいて,遅延は時間とともに変化します。新しい各遅延に対し,直接型実装では新しい係数の集合が必要ですが,法罗実装では多項式係数は一定になります。
抽搐,而Toc < 5 x = sin ();如果Toc < 1 delay = 1;elseifToc < 2 delay = 1.2;elseifToc < 3延迟= 1.4;elseifToc < 4 delay = 1.6;其他的延迟= 1.8;结束y = farrowFracDelay (x,延迟);范围((x, y))结束释放(范围);发行版(fracDelay)