重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

DACの前でやる処理です

A 回答 (4件)

数学的にはサンプリング定理や窓関数で検索すると解説が見つかるのではないかと思います。


サンプリング定理によって飛び飛びのデータ点から、なめらかな元の波形が再現されることが数学的に証明されています。しかしこれには全てのデータ点からの寄与と膨大な計算量が必要となります。そこで窓関数というものを使って限られたデータ点から元の波形を少ない誤差で再現することを考えます。また元の波形全てを再現するのではなく、データ点とデータ点の丁度中間の点についてのみ、値を求めます。
具体的に(一般的な)DACが行っているのは、前後200づつのデータ点から、近いデータ点ほど寄与が大きく、遠いデータ点は寄与が小さくなるように重し付けをして、それらを足し合わせます。重し付けの値は事前に(窓関数から)得られているので、400程度のデータ点の値に各係数を掛けて足し合わせるということですね。これによって中間のデータ点が、おおよそサンプリング定理に従って再現された値として得られます。これで2倍のアップサンプリング(オーバーサンプリング)となります。
次にこの中間のデータ点と元のデータ点のデータを使って同様に、その間のデータ点の値を求めるのですが、今回得られた中間のデータ点の値や、過去に計算した中間のデータ点の値などを利用し、参照するデータ点も半分くらいに減らし、中間の中間点のデータ値を求めます。これで4倍。
更にもう一度同様のことをして、この辺りになると中間点の値自体に誤差があることもあり、前後60程度のデータ点からの寄与を計算していたと思いますが、とりあえず中間の中間の中間点のデータ値を求めます。これで8倍オーバーサンプリングってわけです。

ちなみにCD音質(44.1kHz or 48kHzサンプリング)の場合は8倍になりますが、元のデータが 192kHzのデータの場合は、最後の2倍のアップサンプリングの計算をやって終わりになります。つまりどちらも384kHzサンプリングのデータにされるということですね。
このためCD音質の音源とハイレゾの音源の差は、非常に小さく、人が検知できない程度になっています。

あとは、まぁご存じかもしれませんが、ギザギザ波長をローパスフィルターを通したり通さなかったりして出力しています。サンプリング定理もへったくれもないテキトーDA変換ですねw
    • good
    • 0
この回答へのお礼

それをリアルタイムでやるのですか?

お礼日時:2025/03/18 19:50

n 倍オーバーサンプリングなら、元のデータ Vm、Vm+1 の間に



 Vmi = Vm + [(Vm+1 - Vm)/n]i (i=0~n-1)

と内挿するのが「リニア」補正。

前後の変化率を使って「滑らか」に補正・内挿するアルゴリズムもあるでしょうね。
    • good
    • 0
この回答へのお礼

そのやりかたは?

お礼日時:2025/03/18 19:09

オーバーサンプリングの機能が有る、音楽再生アプリを使います。


Frieve Audio
https://www.frieve.com/

foobar2000
https://www.gigafree.net/media/music/foobar2000. …
https://www.foobar2000.org/
    • good
    • 0
この回答へのお礼

Thank you

お礼日時:2025/03/18 14:21

簡単にいうと、D-Aコンバータの入力となる本来のサンプリングデータ列に、隣り合う2つのデータの間に、それらの間に存在するにふさわしいデータを


新たに演算で追加します(内挿補間)が、通常、この処理はデジタルフィルタを用いて実現します。
    • good
    • 0
この回答へのお礼

デジタルフィルタでどうしますか?

お礼日時:2025/03/18 14:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A