微妙に異なるサンプリング周波数を合わせる                         (C)Y.Utsunomia 2008-2010  普通、そのデジタルレコーダーやファイルに、特定のサンプリング周波数が表記され ていたら、何の疑いもなくその数値を信用してしまうが(あるいは、半端な数値が存在 するということすら知らない)、この表記されたサンプリング周波数とはアナログメデ ィアでいうなら、テープ速度やレコードの回転数程度のものでしかない。これらのアナ ログメディアのテープ速度やレコード盤の回転精度は、その動力源であるモータや駆動 軸の精度、摩擦係数によって決まるが、デジタルでも同様に水晶振動子という機械工作 物の加工精度や、伝達機構であるカウンター回路やPLL回路に依存している。確かに全 体としての精度の絶対値はデジタルに移行して桁違いに向上したように見えるが、現実 の問題として、伝達機構が複雑になると一般的に精度は低下する。  アナログメディアではプーリーやベルト、デジタルではPLLやカウンターを重ねるごと に品位は低下する傾向があり、精度の向上の切り札とも言える「同期運転」にすると長 期精度は上がるものの、短期精度はアナログでもデジタルでも悪化することがしばしば ある。(巧妙に設計すれば、ジッタなどは減らすこともできるが・・)  このような精度の問題には、長期精度と短期精度の問題があり、アナログメディアで は前者をスピード偏差、フラッターと呼び、後者をワウと称した。デジタルにおいては、 前者をクロック精度(正確にはワードクロック精度)、後者をジッターと称する。  デジタルではアナログの時代に比べ、桁違いに向上したと言うが、場合によっては明 確に耳で識別できるほど大きな誤差を持つ場合がある。  古くから知られている問題として、デジタル録音の黎明期に多用された、PCMアダプタ ーとビデオレコーダーの組み合わせによる録音システムがあるが(広義にはCDのマスタ ーであるPCM-1630とU-Maticの組み合わせや、DATなどもその延長線上にある)、その中 で、民生用のビデオレコーダーを使用するものや、44.1KHzに同期されていないU-Matic で録音された録音物の多くは、44.1KHzサンプリングを表示していても、実際には44.056 KHzであることが多い。  これはPCM化した音声信号をアナログ画像信号としてビデオテープに「録画」する関係 上、映像信号の水平同期周波数に同期させる必要があるからで、したがって、同様のシ ステムでもヨーロッパ圏で使用するPAL、SECAMなどの映像信号用のPCMアダプターはさら に異なるサンプリング周波数を使用している(44.16kHz)。  近年ではフラッシュメモリーを用いた録音機が普及しつつあるが、多くの機種ではサ ンプリング周波数として、48KHzと44.1KHzの切り替えを備えているが、基本設計上はそ のどちらかをデフォルトとして、残りは「一応」付けました的なこともあるようだ。  先にクロックは水晶振動子にその源があることは記述したが、48KHzと44.1KHzは単純 整数比にはならず、正しくはそれぞれの独立した水晶を内蔵することになるのであるが、 これは製造コストの増大、マシン全体の処理の2モード化が必要になることを意味し、 低価格では実現困難な問題として設計者の前に立ちはだかる。  このようなセットでは、ファイル出力のヘッダーには44.1KHzが書かれているものの、 データそのものは44.118KHzだったりするわけで、尺や記録内容の時間精度が問題になる 用途では、補正する必要がある。  本来デジタルオーディオ用のチップ開発においても、やはり同様の問題(内部のタイ ミング設計やフィルター設計において)があり、「デフォルト」が存在する。筆者が調 べた範囲ではデフォルト48kHzのものが多く、44.1KHzをデフォルトとしているものはMP3 コーデックなどを前提としたもの、あるいはCD専用に設計されたものに限られるようで ある。無論、この問題はその要であるA/D、D/Aコンバータでは著しく現われる。このこ とを考慮すると使用者の都合でサンプリング周波数は選べそうに見えるが、多くの場合 48KHzの方が良好な結果が得られそうである。                 *          *  この微妙な問題を補正するにはいくつかの選択肢がある。サンプリング周波数が微妙 に異なることで発生する問題としては、「尺が合わない」と「ピッチが合わない」こと に大別される。その原因は、例えば本来44100Hzサンプリングであるべきところが、 44056Hzであることなので、「テープ速度」は44100/44056≒1.0009987・・≒0.1%早く 再生されることになる。 (44.118KHzの場合は、44100/44118≒0.9996・・約0.04%遅く再生される)  audacity では任意サンプリング周波数のファイルを任意サンプリング周波数のプロジ ェクトで作業できるのでその機能を用いると、 ○ プロジェクトのサンプリング周波数:任意 ○ 本当は44.056KHzサンプリングのファイルを読み込む    ○ その読み込んだトラックの左側のトラックプルダウンメニューを開き ○ 「レートをセット」→「その他」を選び、44056(Hz)を入力 ○ 44.1KHzで出力したい場合は、画面左下のプロジェクトのプロジェクトの  サンプリング周波数を44.1KHzにセットし、ビット深度、ファイル形式、ファイル名を  入力し書き出す。 **この方法は容易に作業ができるが、ファイル書き出し時点でリサンプル処理により  問題解決を図っている。リサンプルが気に入らない場合は次の方法がある。 ○ 作業に先立ち、そのファイルの真のサンプリング周波数を調べる。  (この調査は容易ではなく、実際に録音物の実録音時間(録音時の)とそれに要した   サンプル個数から、あるいは高精度の周期パルスを録音し、その間隔とサンプル個   数から算出する必要がある。強引に録音機をこじ開け、A/DコンバータのWCLK信号の   クロックを周波数カウンタで計るという方法もあるが・・・) ○ そのほかの有用なソフト、で推奨するr8brain.exeなどのより優秀なサンプリングレ   ートコンバータープログラムを使用する。ただしこのようなレート変換プログラム   を使用する場合でも、ファイルヘッダーにそのファイルの真のサンプリング周波数   の記載が無い場合は処理できない。audacityの画面左下にある、プロジェクトのサ   ンプリング周波数とトラック波形表示の左のプルダウンメニューの「レートをセッ   ト」に「真のサンプリング周波数」を書き込みファイルアウトすることで、レート   変換プログラムにより正確な入力を与えることができる。(r8brain.exeの場合は   set sample...に真のサンプリング周波数を記入すれば同様のことができる) <R8brain.gif を参照> ○ そのほかの有用なソフト、で紹介の wtctrl.exeを起動し、算出した補正数値を入力   し、その他必要な入力を行い処理を行う。 **wtctrl.exeは尺あわせを目的に作られているので、尺の誤差を1ms単位で入力する形  式である。したがって総サンプル数から求められる時間(実際にaudacityで読み込ん  でみると表示される)と、算出される誤差の%から誤差時間を割り出し入力すればよ  いのである。(あるいは合わすべき正しい時間と、実際のそのファイルの時間の「差  」がわかれば、その数値を入力するだけで、誤差を無くすことができる)   このソフトはリサンプルではなく、一定間隔でサンプルを間引いたり、ダミーサン  プルを挿入することで尺を合わしている。ゆえにリサンプルのような漫然とした変化  はないが、定期的にサンプルを操作するため、ソースによっては定期的な瞬間的変化  が問題になるかもしれない。(電子音楽などで正弦波が延々と続くような部分など)  またリサンプルではないので、音程の補正はされない。