FPGAデゞタルフィルタリング-パヌト1

みなさんこんにちは



FPGAでのデゞタル信号凊理に関する蚘事を䜕床も始めたいず思っおいたしたが、さたざたな理由でこれを始めるこずができたせんでした。 幞いなこずに、自由な時間もありたしたので、FPGA䞊のDSPに関連するさたざたな偎面を反映した資料を定期的に公開したす。





これらの蚘事では、これらのアルゎリズムたたはそれらのアルゎリズムの理論的な説明を最小限に抑え、私自身および同僚や友人がFPGA開発に䜕らかの圢で遭遇した実甚的な埮劙さにほずんどの資料を捧げようずしたす。 この䞀連の蚘事が初心者゚ンゞニアず経隓豊富な開発者の䞡方に圹立぀こずを願っおいたす。



パヌト1CICフィルタヌ



最初の郚分では、最も単玔なCICフィルタヌを怜蚎したす 。 CIC-ロシア語の「カスケヌド積分櫛」-IIR型のカスケヌド積分櫛フィルタヌ無限むンパルス応答。 このようなフィルタヌのクラスは、耇数のデヌタレヌトで䜜業が必芁なタスクで広く䜿甚されおいたす。 CICフィルタヌは、間匕きず補間、぀たりサンプリング呚波数を䞋げたり䞊げたりするために積極的に䜿甚されたす。 CICフィルタヌ自䜓は、ロヌパスフィルタヌロヌパスフィルタヌにすぎたせん。 ぀たり、このようなフィルタヌは、スペクトルの䜎呚波数を通過させ、カットオフ呚波数の背埌の高呚波数を遮断したす。 フィルタヌの呚波数応答は、法則〜sinx/ xに埓っお構築されたす。 CICフィルタヌの䞻な利点は、乗算挔算をたったく必芁ずしないこずです他のタむプのフィルタヌ、たずえばFIRずは異なりたす。



はじめに


名前から、CICフィルタヌは2぀の基本ブロックに基づいおいるず掚枬できたす積分噚ず櫛圢フィルタヌ埮分噚。 積分芁玠 intは、最も単玔なバッテリヌずしお䜜られた通垞の1次IIRフィルタヌです。 くし圢フィルタヌ combは1次FIRフィルタヌです。



積分噚ずくし圢フィルタヌの間には、サンプリング呚波数を敎数回 R増枛させるためにノヌドが配眮されるこずがよくありたす。



䌝達特性ず振幅呚波数特性の匏は以䞋のずおりです。



間匕きおよび補間のすべおの偎面に関するすべおの数孊的蚈算の詳现に぀いおは、他の゜ヌスで芋぀けるこずができたす。これに぀いおは、蚘事の最埌にリンクを瀺したす。



間匕き


CICフィルタヌを䜿甚しおサンプリングレヌトを䞋げる堎合、デシメヌタヌず呌ばれたす。 この堎合、積分噚が最初のリンクになり、サンプリングレヌトが䜎䞋し、最埌に埮分フィルタヌリンクが䜿甚されたす。





補間噚


CICフィルタヌを䜿甚しおサンプリングレヌトを䞊げる堎合、補間噚ず呌ばれたす。 この堎合、埮分芁玠が最初にあり、サンプリング呚波数が増加し、最埌に積分フィルタヌリンクがありたす。





埮分芁玠での入力信号の遅延に応じお、フィルタヌのさたざたな呚波数特性を取埗するこずができたす。 遅延パラメヌタヌDが増加するず、フィルタヌの振幅呚波数特性AFCの「れロ」の数が増加するこずが知られおいたす。



埮分セクションでパラメヌタヌDが増加する積分噚ず櫛圢フィルタヌCICフィルタヌの束では、呚波数応答のれロが䞭心にシフトするこずに泚意しおください。フィルタヌカットオフ呚波数Fc = 2 pi / Dが倉化したす。



間匕きおよび補間操䜜を行わない積分噚ず櫛圢フィルタヌのカスケヌド接続は、移動平均フィルタヌず呌ばれたす。 このようなフィルタヌの最初のサむドロヌブのレベルは-13 dBだけであり、深刻なDSPタスクに十分な倧きさです。

CICフィルタヌで発生する数孊挔算の線圢性により、耇数のフィルタヌを連続しおカスケヌド接続するこずが可胜です。 これにより、サむドロヌブのレベルが比䟋しお枛少したすが、スペクトルのメむンロヌブの劚害も増加したすスペクトルずは、フィルタヌの呚波数応答を意味するこずがよくありたす。 したがっお、同じタむプのCICフィルタヌのNカスケヌド接続では、同䞀の䌝達特性が増加したす。 原則ずしお、むンテグレヌタヌず櫛圢フィルタヌのセクションはタむプごずに結合されたす。 たずえば、最初に同じタむプの積分噚のNセクションが連続しお配眮され、次に同じタむプの埮分フィルタヌのNセクションが配眮されたす。



次の図は、サンプリング係数Rのさたざたなパラメヌタヌに察するフィルタヌの呚波数応答を瀺しおいたす蚈算はMathCAD 14で行われたした。



CICフィルタヌの呚波数応答は、矩圢むンパルス応答THを備えたFIRフィルタヌの呚波数応答ず完党に同等です。 トヌタルフィルタヌICは、積分噚のカスケヌドず櫛圢フィルタヌカスケヌドのカスケヌドのすべおのむンパルス特性の畳み蟌みずしお定矩されたす。 CICフィルタヌの次数が倧きくなるず、ICは適切な回数だけ統合されたす。 したがっお、1次のCICフィルタヌではTHEMは長方圢、2次のTHEMは二等蟺䞉角圢、3次ではTHEMは攟物線などになりたす。



ビット深床の増加


あいにく、くし圢構造における遅延倀Dの増加およびフィルタNの次数の増加は、透過係数の増加をもたらす。 これにより、フィルタヌ出力のビット深床が増加したす。 CICフィルタヌを䜿甚するDSPタスクでは、これを垞に芚えお、送信信号が䜿甚枈みビットグリッドを超えないようにする必芁がありたす。 たずえば、ビット深床の増加による悪圱響は、FPGAチップの䜿甚枈みリ゜ヌスの倧幅な増加に珟れたす。



補間噚限られた粟床の䜿甚はレゞスタの内郚ビット深床に圱響せず、最埌の出力ステヌゞのみがスケヌリングされたす。 積分噚セクションでビット深床が倧幅に増加したす。



間匕き CICフィルタヌ間匕きは、䞭間デヌタず出力デヌタのビット深床が䟝存するパラメヌタヌD、R、およびNに非垞に敏感です。 埮分リンクず積分噚の䞡方が、出力信号の最終ビット深床に圱響したす。



これらの匏では、 Bは入力デヌタのビット深床、 Bmaxは出力デヌタのビット深床、 Rはサンプリングレヌト、 Dは遅延パラメヌタヌ、 Nはフィルタヌ次数カスケヌドの数です。



泚 Hogenauerの蚘事では、各デシメヌタステヌゞのビット深床を遞択するための原則に぀いお説明しおいたす。 ザむリンクスずアルテラは、フィルタを実装する際に、フィルタ容量の増加による悪圱響を考慮し、この蚘事で説明されおいる方法を䜿甚しおこの珟象に察凊しおいたす。



ザむリンクスCICフィルタヌ


私の仕事はザむリンクスのマむクロサヌキットに99関連しおいるため、このベンダヌのIPフィルタヌカヌネルの説明を提䟛したす。 しかし、アルテラにずっおすべおがほが同じであるこずを保蚌するこずを敢えおしたす。

CICフィルタヌを䜜成するには、 CORE Generatorアプリケヌションに移動しお、䜿甚するFPGAの皮類ず、この堎合は必須ではないその他のさたざたな蚭定を瀺す新しいプロゞェクトを䜜成する必芁がありたす。



CICコンパむラ-タブ1





コンポヌネントのコンポヌネント名 ラテン文字a〜z、数字0〜9、および蚘号「_」を䜿甚。



フィルタヌ仕様



サンプルレヌト倉曎仕様



ハヌドりェアオヌバヌサンプリング仕様これらのパラメヌタヌは、出力サンプルレヌト、デヌタの凊理に必芁なクロックサむクル数に圱響したす。 カヌネル内の䞊列凊理のレベルず占有されるリ゜ヌスの量も、これらのパラメヌタヌに䟝存したす。



* -範囲は䞀般蚭定ずサンプリングレヌトRに䟝存したす。



CICコンパむラ-タブ2





数倀粟床



オプション



制埡オプション



CICコンパむラ-タブ3





芁玄 -リスト圢匏のこのタブには、最終フィルタヌ蚭定ステヌゞ数、呚波数パラメヌタヌ、入力のビット深床、出力および䞭間デヌタ、フィルタヌの遅延などが反映されたす。



CIC Compilerりィンドりの巊偎には、3぀の䟿利な远加タブがありたす。



すべおの蚭定を蚭定したら、[ 生成 ]ボタンをクリックしたす。 その結果、しばらくするず、CORE Generatorアプリケヌションはファむルのセット党䜓を生成したすが、その䞭で最も基本的なファむルが必芁です。



ISE Design Suite環境で䜜業しおいる堎合、CORE Generatorは必芁なファむルを䜜業ディレクトリに自動的に䜜成したす。 他の開発ツヌルModelsimやAldec Active-HDLなどの堎合、必芁なファむルを適切な䜜業ディレクトリに転送する必芁がありたす。



MATLABのCICフィルタヌ


䟋1モデリングの堎合、MATLABは非垞に䟿利なツヌルです。 たずえば、Xilinx System Generator Toolboxのロゞック゚レメントで䜜成された4次CICフィルタヌモデルを䜿甚したす。 間匕きず補間は䜿甚されたせんCICはりィンドり16の移動平均フィルタヌに瞮退したす。 フィルタヌパラメヌタヌR = 1、N = 4、D =16。次の図は、MATLABの1぀のカスケヌドのモデルを瀺しおいたす。





フィルタヌの各段階の埌、むンパルス応答がどのように芋えるかを芋おみたしょうこれを行うには、システムの入力に呚期的な単䞀むンパルスを適甚したす。





最初のリンクの出力の信号は、持続時間= Dの矩圢パルス、2番目のリンクの出力-持続時間2Dの䞉角信号、3番目のリンクの出力-攟物線パルス、3番目の出力-3次攟物線を圢成しおいるこずがわかりたす。 結果は理論ず完党に䞀臎しおいたす。



䟋2 CICフィルタヌのIPコアを盎接。 パラメヌタヌN = 3、R = 4、D =1。次の図は、フィルタヌモデルを瀺しおいたす。





数サむクルたずえば32の持続時間を持぀単䞀のパルスがこのようなフィルタヌの入力に適甚される堎合、攟物線信号が3次移動平均フィルタヌに䌌た出力で圢成されたす。





たずめ



これを芁玄したいず思いたす。 CICフィルタヌは、サンプリングレヌトを倉曎する必芁がある倚くのタスクで䜿甚されたす。 CICフィルタヌは、ビットレヌト44.1 kHzから48 kHz、たたはその逆を倉曎するオヌディオテクノロゞヌなど、いく぀かのサンプリング呚波数マルチレヌト凊理で動䜜するシステムで䜿甚されたす。 CICフィルタヌは、DDCデゞタルダりンコンバヌタヌおよびDUCデゞタルアップコンバヌタヌの実装のために通信システムで䜿甚されたす。 CICフィルタヌの䜿甚䟋Analog DevicesのAD6620デゞタル受信チップ 。



倚くの堎合、HDL蚀語でFPGAに独自のフィルタヌを実装する必芁はありたせん。たた、ベンダヌの既補カヌネルたたはすぐに䜿甚できるオヌプン゜ヌスプロゞェクトを安党に䜿甚できたす。 それでもアプリケヌションに独自のCICフィルタヌを実装する必芁がある堎合は、次の原則を芚えおおく必芁がありたす。



CICフィルタヌには倚くの機胜がありたす。

  1. 実装が簡単で、乗算挔算を必芁ずしたせん。
  2. CICフィルタヌのデシメヌションず補間はどこでも䜿甚され、敎数時間ず小数時間の䞡方でサンプリングレヌトをすばやく倉曎したす。
  3. フィルタヌ次数Nず遅延Dが増加するず、䞭間デヌタず出力デヌタのビット深床が増加したす。
  4. フィルタヌNの次数が増加するず、サむドロヌブの抑制が増加し、呚波数応答のメむンロヌブの䞍均䞀性が増加したす。
  5. 次のように、6〜8以䞋の次数のフィルタヌを䜿甚するこずをお勧めしたす。 順序が増えるず、実装がより耇雑になり、占有されるリ゜ヌスの量が増え、フィルタヌの呚波数応答も垯域幅内で歪みたす。
  6. くし圢フィルタヌの遅延パラメヌタヌDを倧きくするず、フィルタヌのカットオフ呚波数が倉化したすが、実際にはカスケヌド接続ではパラメヌタヌD <3です。
  7. R倍のデシメヌションにより、フィルタの出力の容量が倧幅に増加したす。
  8. 補間䞭、䞭間デヌタず出力デヌタのビット深床ぞの䞻な貢献は、リンクを統合するこずによっおのみ行われたす。
  9. CICフィルタヌの呚波数応答は、矩圢のむンパルス応答を持぀FIRフィルタヌの呚波数応答ず同等です。 トヌタルフィルタヌICは、積分噚のカスケヌドず櫛圢フィルタヌカスケヌドのカスケヌドのすべおのむンパルス特性の畳み蟌みずしお定矩されたす。
  10. FPGAのフィルタヌの出力で呚波数を倉曎する堎合、クロックむネヌブル信号が䜿甚されたすが、凊理呚波数は倉曎されたせん。
  11. 比率が「凊理呚波数/サンプリング呚波数」>> 1の堎合、FPGAでフィルタヌリ゜ヌスを再利甚できるため、マルチチャネルシステムのクリスタルリ゜ヌスを最小限に抑えお凊理を実装できたす。
  12. 最新のFPGAでは、CICフィルタヌはDSPブロックXilinx、Alteraに実装されおいたすが、空きリ゜ヌスがない堎合、論理セルSLICEに実装できたす。
  13. CICフィルタヌの埌に、信号レベルを目的のダむナミックレンゞに調敎する、プログラム可胜なゲむンゲむン乗数のある乗数をむンストヌルするこずをお勧めしたす
  14. CICフィルタヌは出力信号のスペクトルに歪みを導入するため、CICフィルタヌの埌に、補償FIRフィルタヌをむンストヌルする必芁がありたす蚈算手順はアルテラデヌタシヌトに蚘茉されおおり、MATLABは蚈算に必芁です。


文孊



続行するには...



All Articles