2

私の DAC は内部で 48khz でクロックされています。これも 48khz ですが、別のソースからクロックされているストリームからフィードする必要があります。

2 つのソースは時間の経過とともに変動し、その間のバッファリングは必然的にオーバーフローまたはアンダーフローします。

残念ながら、ソースで使用できるレート制御メカニズムはありません。

これをどのように処理するのが最善でしょうか?

補うために時折のサンプルを複製したり、投げたりすることは許容されますか? 30ppm の差については、約 7 万サンプルごとに 1 つのサンプルを見積もっています。

4

3 に答える 3

2

クロックは基本的に 2 つの異なる速度で動作しているため、サンプルを複製するか破棄するしかありません。

読み書きされたサンプル数を数え、現在の時間に基づいて読み書きされたと予想されるサンプル数を計算します。不一致は、サンプルを複製/破棄することで調整できます。

于 2009-02-11T17:57:10.117 に答える
1

忠実度が気になる場合は、サンプルを削除または複製する代わりに、サンプル レート コンバーターを使用してください。まず、タイムスタンプを使用して、ソース サンプル レートと DAC のサンプル レートの相対周波数比を測定します。この比率を使用して、サンプル レート コンバーターを制御します。まともな品質のサンプル レート コンバーターを使用すると、95 db の S/N 比が得られます。より計算コストの高いアルゴリズムでは、120 db を超える S/N 比が得られます。

見る:

--jdkoftinoff

于 2009-02-22T01:58:25.217 に答える
0

これはばかげた質問のように聞こえるかもしれませんが、聞いてください。出力レートは本当に重要ですか?

このシナリオを考えてみましょう - あなたはオーディオ入力デバイスを持っています。48Khz でアナログ波形入力をサンプリングしています。その波形は、マイクロフォンの連続的な圧力レベル測定から 8Khz 音声コーデックまで、またはそれ以下のあらゆるものによって生成される可能性があります。この特定の出力も 48Khz であることをたまたま知っているという事実は、あなたがしていることには何の関係もありません。

出力デバイスと入力の間で完全な伝送が行われている場合、元のデジタル波形を読み取ったものと比較すると、サンプルが複製されている (クロックが速い場合) か、1 つ見逃されている (クロックが遅い場合) ことが時々わかります。 )。ただし、これは自動的に行われ、必要な補償はありません。これは、「時折のサンプルを複製または投げる」タイミングを把握するための試みと同じくらい簡単に正確です.

実際には、DAC と ADC の両方のフィルタリング効果とノイズの間で、とにかく正確な複製を得ることはおそらくないでしょう。エンコードされたデジタル オーディオ形式について話している場合を除き、その場合は、私が言ったことをすべて無視してください。

編集 - わかりました、デジタル オーディオですか - S/PDIF?
信号は、位相ロックを実装するのに十分な情報を伝送する必要があります。理想的にはハードウェアで - 信号の立ち上がりエッジがクロックレートを定義します - PLL ハードウェアを使用して A/D クロックを入力にロックできる場合があります。または、しばらくオーバーサンプリングし、立ち上がりエッジをカウントしてレートを決定します。または、ソフトウェア レベルで、最初の 4 つのタイム スロットでフレーミング エラーの割合を測定し、クロックを調整して補正します。

于 2009-02-11T19:37:18.303 に答える