スレッド一覧に戻る
| タイトル |  Ditherって |
| ポイント [?] | pt.
|
| アクセス | 2483 |
| カテゴリー | DSP |
| キーワード | Dither Ditherアルゴリズム 丸め 下位ビット ご回答お待ち Powered by Yahoo |
| 投稿日時 | 10/01/30 14:07 |
|
Ditherアルゴリズムについてお詳しい方教えて頂けませんでしょうか。
Ditherとは丸めに起因する歪みを取るために使用するアルゴリズムなようです。
乱数を発生させて下位ビットの丸めを制御するなどWebには書かれておりますが、参考となるサンプルコードなどありませんでしょうか。 またもっとスマートな方法はないでしょうか。
ご回答お待ちしております。
|
|
コメントする
| タイトル | Ditherに関してのアプリケーション・ノート |
| ポイント | pt.
|
| アクセス | 1959 |
| 投稿日時 | 10/08/17 16:33 |
みなさん、こんにちは!昨日も今日も暑いですね!外気温が体温に近いというこの事態…。どうぞ熱中症などにお気を付けください! さて、Ditherについて日本語のアプリケーション・ノートが最近できておりますので、ご紹介いたします。 AN-410: ディザ使用によるコンバータ非直線性の改善 ご参考になれば幸いです。
|
|
| タイトル | Dither (ADCノイズ) |
| ポイント | pt.
|
| アクセス | 2160 |
| 投稿日時 | 10/08/13 13:10 |
|
Ditherに関して、AD社の情報誌Analog Dialogueに、掲載されておりますので、添付いたします。こちらは、和文になっております。
|
※このデータをダウンロードするにはログイン(ユーザー登録)が必要です。 |
|
| タイトル | カテゴリ修正しました |
| ポイント | pt.
|
| アクセス | 2499 |
| 投稿日時 | 10/02/04 15:44 |
|
こちらは「アンプ&コンパレータ」から「DSP」に修正いたしました。内容はADコンバータのコメントがついておりますが、投稿者ご本人の意思を尊重し、「DSP」とさせていただきました。
|
|
| タイトル | すみません DSPにおける質問です。 |
| ポイント | pt.
|
| アクセス | 2631 |
| 投稿日時 | 10/02/03 10:04 |
|
Greenlineさん、PNP-NPNさん ご回答ありがとうございました。 カテゴリーを間違ってしまいました。失礼しました。 (後から変えることはできなさそうです。。)
WikiのDitherは確認したのですが、具体的な処理のイメージ(効率面を考えた)が良くわからなかったため質問させて頂きました。
ADCの入力側でアナログ的にDither処理が必要になるケースがあるというのは勉強になりました。 しかし、根本でやりたいことは同じであると感じました。
今回はデジタル処理で出力を丸める時に出てしまう特定ノイズを押さえるために行う処理をイメージしております。SigmaDSPのSPORT出力段にはDitherが入っているようなのですが、、詳細不明です。(1940)
|
|
| タイトル | DitherとADC変換精度 |
| ポイント | pt.
|
| アクセス | 3509 |
| 投稿日時 | 10/02/02 11:45 |
|
ADCの入力にDitherという「ノイズ」を混ぜて変換すると、AD変換の特性(実はある特定の性能だけですが)が向上するというのは、何となくピンとこないかもしれません。Ditherにより改善されるのはSFDRという特性で、通信機器やレーダーなどのシステムでは非常に重要な特性です。FFTの結果より信号(キャリア)とその他のノイズ成分の最大値の差を示した特性で、受信感度や受信信号の弁別性能などに関わるスペックです。一般的に高調波が最大のノイズ成分になるので、Dither法はADCの歪みによる高調波特性を改善する技術です。従って高速のADコンバータ・システムに比較的多く利用される技術です。アルゴリズムはどうかというお話ですが、どちらかというとハード面の設計が性能を決める部分が大きい技術です。
Dither法に関する資料(英文で済みませんが)を添付するので、詳細はこちらをご覧ください。Dither法にはふたつあり、比較的大きな振幅のノイズを入力に足し算し、結果からデジタル値でノイズ分を引き算する方法と、1/2LSBrms以下の小さなノイズを混ぜる方法があります。後者の場合は、ADCの結果に後処理はありませんので、ハードだけの処理になります。資料1をベースにして解説します。
ADCはそれぞれ固有のリニアリティ特性を持っています。全てのコードが同じ誤差を持つのではなく、誤差が他より大きいコードがあります。例えばサブレンジング型の高速ADCでは、資料1の図8.133のように各段のつなぎ目で、DNL誤差が大きくなる可能性があります。入力サイン波が、このコードを通過すると、このコードで常に他より大きな誤算が発生し、歪が大きくなります。その結果として変換結果のFFTによる高調波が大きくなり、SFDR特性が劣化します。信号振幅が小さい時でも、この誤差の大きさは変わらないため、変換精度としてはより不利になります。 そこで同じ電圧が入力されても、ADCの変換が異なるコードで起こるように、入力信号にDitherというノイズをあらかじめ混入してレベルをシフトし、あとでデジタル値からこのノイズを引き算することにより、特定コードの誤差が集中しないようにします。これにより歪みを起こすリニアリティ誤差成分が分散されて、SFDRが改善されます。一番目の方法は、大きな振幅のノイズを加えますが、重要なことはこれが「既知のノイズ」であるということです。そのため デジタルの乱数発生器と、Ditherを発生するDACの組み合わせが良く用いられます。(図8.130) ここでDACに高精度が必要なのではという疑問が出ますが、仮にDACとADCのレンジが同じだとしても、大きな問題にはなりません。DitherはADCの入力フルスケール・レンジに比べて小さな値なので、通常DAC出力はアッテネートされて加算されます。例えばDACが±0.5LSBの精度でも、1/256のアッテネートなら0.5÷256=0.0002LSBの誤差になります。ただし原理的には簡単ですが、DACのセトリングや、加算器のノイズや歪み特性などいろいろと考慮しなければならない項目があります。ふたつ目の小さなノイズの挿入は、コードの前後に入力をずらすという動作をし、後段のデジタル処理はありません。一般的に高分解能ADCを使ったシステムをくみ上げると、動作条件が良くなければ(例えば評価ボードのような好条件と比較して)、回路自身の持つノイズにより、ある程度この小振幅Ditherの動作が自然と行なわれています。
一番目の方法の肝は、どれぐらいの振幅の「ノイズ」が最適解なのか見つける設計技術です。この点については、資料1の頁8.129以降に述べられています。その効果については、図8.135あるいはもうひとつの資料AN410の6頁をご覧ください。最後にDither法は、SFDRを改善しますが、トータルのSN比を改善することはありません。むしろ付加回路による低下が、現われます。また大きなDitherを使うと、その分ADCのダイナミックレンジが削られることもトレードオフです。100LSBのDitherを使えばダイナミックレンジは、フルスケールから100LSB下がります。入力がフルスケールから+100LSBの範囲になった時、ADCが正確に変換できないからです。
|
※このデータをダウンロードするにはログイン(ユーザー登録)が必要です。 |
|
| タイトル | re:Ditherって |
| ポイント | pt.
|
| アクセス | 2797 |
| 投稿日時 | 10/02/01 21:32 |
|
take-yangさん、
ご質問はデジタル信号処理に関してでしょうか。私もディザリングについては少ししか内容をしりません(汗)。Wikipediaでは「ディザ」として結構詳しく説明されていますね。
AD変換などで考えれば、LSB程度のノイズを混入させて、AD変換時にLSBレベル以下の振幅を検出するというのも、(たぶん)ディザの一種なのかもしれませんね。
take-yangさんの書き込みからしますと、「アルゴリズム」とありますので、デジタル信号処理にかかわることと思いました。どなたか詳しい方、いらっしゃいますか?
|
|
スレッド一覧に戻る
コメント投稿
* コメントの投稿にはログイン(ユーザー登録)が必要です。