主要内容

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

最適化された固定小数点冷杉フィルター

この例では,固定小数点冷杉フィルターを最適化する方法を示します。最適化には,阻止帯域の減衰や,特定仕様を満たすために必要なビット数など,フィルター応答の特性が含まれます。この機能は,特定の語長の設定可能な係数をいくつかもつハードウェアの作業を行うユーザーや,研究対象に大規模な設計スペースがあるASICやFPGAなどのケースで特に有益です。ハードウェア設計者は,通常係数とビットのトレードオフを検討して,各種のASICまたはFPGAを最適化することができます。

この例では,最適な固定小数点冷杉フィルター係数を得るための,ノイズシェーピングに基づく各種方法について説明します。以下の操作について説明します。

  • 係数の語長の最小化

  • 係数の語長の制約

  • 阻止帯域の減衰の最大化

理論的背景

,本地的に固定小数点冷杉フィルターの他の帯域の量でで,临界临界数帯域(通常常帯域排除し。,ノイズノイズシェーピングののプロセスを示しいいいいいいフィルターははもののシステムフィルター子に似いるシステムあるを过过过ししシステムを过过过ししあるシステム过过过过しますシステムを过过过しし计算をを过过过计算计算计算计算てから,b1,b2,およびb3の函数により定义れるシンプルなiirハイパスフィルターに误差ををさせせせせますますますさされれれれ丸め丸め丸め。〖图库以来,-lsb + lsb〗た,-lsb + lsbのますはランダムランダムブロックブロック値値はは値れれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれれ値値値値値値値値遅延遅延値値値値

システムの出力は,量子化とノイズシェーピングが行われた新しいフィルター系数です。遅延ブロックに异なるランダムな初期状态を使用してこの手顺を何度か缲り返すことにより,异なるフィルターを作成できます。

係数の語長の最小化

最初に,単一个ステージまたは多段の仕様を満たす最点固定点点点フィルターしますます。08,阻止帯域され迁移幅.08,阻止帯域减衰59dbのハーフバンドの例例例使カイザー设计を使使と,仕様を満たす91の倍精密运动小小数码がががられますますます得られます。

TW =。08;%过渡宽度Astop = 59;%停滞衰减(DB)f = fdesign.halfband (“TW, Ast”、TW Astop);高清=设计(f,'kaiserwin');

ベースラインを確立するために,“算术”プロパティを'固定'に設定し,仕様を満たす最小値が見つかるまで係数の語長を反復することにより,フィルターを量子化しま。あするいは,minimizecoeffwl()を使用してこのプロセスを高速化できます。ベースラインの固定小数点フィルターには,91の17ビット係数が含まれます。

Hqbase = minimizecoeffwl(高清...'matchreffilter',真的,'吵闹',错误的,...“Astoptol”,0);%91 17位系数,astop = 59.1 dB

17ビット语长は,多重のハードウェアターゲットに不错。特价の状况では,16ビットのみののをことができすることででことができます。59dbではなく,わずか58.8dbであること,元の仕様を厳に満たしてないことに注意してててしてて

Hq1 = (Hqbase)复印件;Hq1。CoeffWordLength = 16;% 91 16位系数,Astop = 58.8 dBm1 =测量(Hq1)% #好吧
m1 =采样率:N/A(归一化频率)Passband Edge: 0.46 3-dB Point: 0.49074 6-dB Point: 0.5 Stopband Edge: 0.54 Passband Ripple: 0.017157 dB Stopband Atten。过渡宽度:0.08

あるいは,阻止帯域の误差を许容误差に制御するための许容値を设定できます。たとえば,阻止帯域の许容误差を0.15分贝とすると,3-ビット短缩して,91の14ビット系数をもつフィルターを得ることができます。

Hq2 = minimizecoeffwl(高清...'matchreffilter',真的,'吵闹',错误的,...“Astoptol”,.15);% 91 14位系数,Astop = 58.8 dB

係数の語長を短縮すると,固定小数点設計が仕様を満たさなくなります。許容誤差はアプリケーションによって異なりますが,この方法は多くの状況で制限があります。'matchreffilter'の制約を緩和することで、別の自由度を使用することができます。'MatchRefFilter' プロパティを false に設定することで、フィルターの次数 (最小次数設計の場合) またはフィルターの遷移幅 (固定次数設計の場合) Hd を一致させようとしていません。中間浮動小数点フィルターの再設計を許可することにより、93 の 13 ビット係数の仕様を満たす固定小数点フィルターが得られます。参照固定小数点設計に比べ、4 ビット短縮しましたが、係数が 2 つ (1 つは非ゼロ) 追加されています。

HQ3 = Minimizecoeffwl(HD,...'matchreffilter',错误的,'吵闹',错误的);%93 13位系数

これよりも優れた解決策は,ノイズシェーピングを使用して量子化フィルターの阻止帯域の減衰を最大化することです。ノイズシェーピング手順は確率的です。[NTrials]オプションを試したり,兰德を初期化して以下の結果を再現することもできます。'matchreffilter'は既定で false に設定され、'NoiseShaping' は true であるため、両者を省略できます。最適化された固定小数点フィルターは、91 の 13 ビット係数の仕様を満たします。これにより、同じ数の係数をもつ参照固定小数点設計よりも、4 ビット短縮したことになります。

HQ4 = Minimizecoeffwl(HD,“Ntrials”,10);%91 13位系数hfvt = fvtool(hqbase,hq4,'showreference''离开''颜色'“白色”);传奇(HFVT,'17 -bit参考滤波器'“可Noise-Shaped过滤器的);

リップルリップル周波数号は単纯な关键词

轴([0 0.5060 -0.0109 0.0109])

係数の語長の制約

前のデモではminimizecoeffwl()メソッドの‘MatchRefFilterパラメーターを假に設定することにより,多くの係数(固定フィルター次数の設計では大きな遷移幅)を短い係数の語長とトレードオフする方法を確認しました。ここでは,最小次数設計の場合に,多段(3ステージ)の8:1間引きを例にとり,このトレードオフをさらに制御する方法を示します。

fm = fdesign.decimator(8,低通滤波器的'FP,FST,AP,AST',0.1,0.12,1,70);HM = Design(FM,'多级'“nstages”3);

メモ:次のコマンドは计算计算をとし,行走に数分别可以性性があり

最初に浮動小数点設計の次数を一致させ,次の仕様を満たすノイズシェーピングされた固定小数点フィルターを取得します。

  • 最初のステージで7つの15ビット係数

  • 第2ステージで10の13ビット係数

  • 第3ステージで65の17ビット偏数

Hmref = minimizecoeffwl(嗯,'matchreffilter',真正的);

フィルターの次数を増加させることにより,次のように係数の語長を短縮できます。

  • 最初のステージで9つの9ビット次数

  • 第2ステージで10の12ビット係数

  • 第3ステージで65の15ビット係数

HQ5 = Minimizecoeffwl(HM,'matchreffilter',错误的);

最终的な语长の制御を上させるためは,约束させるにますメソッドを使,各ステージの语长を个别制约制约できの语长たとえば制约できますますたとえばできできできますできできできできできできできできできできできできできできできできできできできできできできますできできますできできできできできできできますますますビットビットれににししますます。

  • 最初のステージで8つの10ビット係数

  • 第2ステージで12の12ビット读数

  • 第3ステージで68の14ビット数

Wl = [10 12 14];认证机构= constraincoeffwl(嗯,王);

阻止帯域の減衰の最大化

特价语长语长可能なをいくつかもつフィルタリング(arsp)を设计するする场さ指定のフィルターの阻止の最大大する帯域减衰最大大するすること望まれ次れれれれれれれれれれれれれれれれれの例では,系数の表现に14ビットを使使ながら,70次のハーフバンド间引きで帯域の减衰69dbを取得しますます取得しししししし

跳频= fdesign.decimator (2'halfband''n,ist'、70、69);Hb1 =设计(跳频,“equiripple”);
警告:此设计生成将在将来的版本中删除的MFilt对象。要生成等效的系统对象,请将“systemobject”参数设置为true。语法:HS = Design(d,...,'systemobject',true)

14ビット係数で単純にフィルターを量子化する場合に得られる減衰は,わずか62.7 dbです。

Hb1。算术='固定的';hb1.coeffwordlength = 14;MB1 =测量(HB1)% #好吧
MB1 =采样率:N / A(归一化频率)通带边缘:0.44518 3-DB点:0.48816 6-DB点:0.5托管边:0.55482通带纹波:0.010552 DB停机带。:62.7048 DB过渡宽度:0.10963

ノイズシェーピングにより阻止帯域からノイズを排除することで,減衰を1.5 db近く向上して64.18 dbにすることができますが,まだ仕様を満たすことはできません。

Hbq1 = maximizestopband (Hb1 14);mq1 =测量(Hbq1)% #好吧
mq1 = Sample Rate: N/A(归一化频率)Passband Edge: 0.44373 3-dB Point: 0.48811 6-dB Point: 0.5 Stopband Edge: 0.55529 Passband Ripple: 0.01064 dB Stopband Atten。: 64.1876 dB过渡宽度:0.11156

次の手順は,減衰80分贝の浮動小数点フィルターを設計することです。減衰を増加すると,遷移幅が増加するという代償があります。ノイズシェーピングを行っていない14ビットのフィルターの減衰は62.7 dbから66.2 dbに向上しますが,それでも仕様を満たすことができません。

跳频。Astop = 80;Hb2 =设计(跳频,“equiripple”);Hb2。算术='固定的';hb2.coeffwordlength = 14;MB2 =测量(HB2)% #好吧
警告:此设计生成将在将来的版本中删除的MFilt对象。要生成等效的系统对象,请将“systemobject”参数设置为true。语法:HS = Design(D,...,'SystemObject',True)MB2 =采样率:N / A(归一化频率)通带边缘:0.43464 3-DB点:0.48704 6-DB点:0.5托管边缘:0.56536通带纹波:0.0076847 DB停机带Agenten。:66.2266 DB过渡宽度:0.13073

ノイズノイズ方法をををと,阻止帯域の减衰を66.2dbから3db以上し,69.4dbにするで,ようやくようやくを満たすことができ。

HBQ2 = MaximizestopBand(HB2,14);MQ2 =测量(HBQ2)% #好吧
mq2 = Sample Rate: N/A(归一化频率)Passband Edge: 0.43584 3-dB Point: 0.4871 6-dB Point: 0.5 Stopband Edge: 0.56287 Passband Ripple: 0.0053253 dB Stopband Atten。过渡宽度:0.12703

驾驶小数设计设计に比べ比べ,固定小数点フィルターの迁移増幅设计します幅阻止帯域のを迁移さ阻止のををさにはははははは必要なるなるなるににはが必要なるなる,14ビットのみの系もつ69dbの减衰を取得するには,これが代偿になり。

关闭(hfvt);hfvt = fvtool (reffilter (Hb1) Hbq2,'showreference''离开''颜色'“白色”);传奇(HFVT,“浮点过滤”“14-bit Noise-Shaped过滤器的);

关上(hfvt)

まとめ

ここでは,ノイズシェーピング方法を使用して,単一ステージまたは多段の固定小数点冷杉フィルターの係数語長を最小化したり,阻止帯域の減衰を増加させる方法を確認しました。さらに,最小次数設計でビットを多くの係数とトレードオフしたり,固定次数設計でビットを大きな遷移幅とトレードオフする方法を確認しました。

参考文献

Jens Jorgen Nielsen,使用误差谱塑造技术设计线性相位直接FIR数字滤波器,使用误差谱塑造技术,声学,语音和信号处理上的IEEE®事务,Vol。37,7月7日,7月7日,第1020-1026。

[1]陈晓东,离散时间信号处理,计算机辅助设计与图形学学报,1999,第3版。