ラズパイ・オーディオの勘どころ② ラズパイ・オーディオの勘どころ②

Raspberry Pi 2 LIFE
ハイレゾ時代のコモンセンス ご購入はこちら
ラズパイ・オーディオの勘どころ②
〜サンプリング周波数変換編〜
最終回
第
3回
ちょっと高等テク…非整数分の1(M /N )ダウンサンプリング
大津 秀紀
表 1 1/N ダウンサンプリング…出力サンプリング周波数は入力
オーデイオ入出力用API ALSA
を利用してハイレゾ音源を再生する
サンプリング周波数によってこのように変換される
サンプリング周波数:48kHzまでしか
対応していないときラズベリー・パイ側で
データを間引くことになる
オーディオ・
プレーヤ
USB
ラズベリー・パイ
D-Aコンバータ
アナログ
波形確認
USBオーディオ・
デバイス
PC
図 1 ダウンサンプリング実験時のハードウェア構成
● これまでは簡単な 1/N ダウンサンプリングし
かしてない
ちまたのオーディオ用 D-A コンバータにも,サン
プリング周波数 192kHz,分解能 16 ビットなどといっ
たハイレゾ・オーディオに対応する品もありますが,
サンプリング周波数が 48kHz までしか対応していな
い品もまだまだあります.そのような D-A コンバー
タを利用する際には,データを間引く処理が必要にな
ります(図 1)
.
データを間引く方法として,ダウンサンプリング処
理があります.ダウンサンプリング処理を適切に行わ
ないと,波形ひずみや,思いもしない周波数帯域への
折り返しノイズなどの,思わぬ「ニセ信号」が生じま
す.
第 2 回(2017 年 3 月号)では,ラズベリー・パイ上で
ダウンサンプリングを適切に行うためのプログラムの
作り方を解説しました.そして,その効果を波形で確
かめました.第 1 回(2017 年 1 月号),第 2 回では,ダ
ウン・サンプリングを,表 1 のように 1/N の周波数で
行うことを前提としていました.
入力 fS
48kHz 以下
48kHz 超
~ 96kHz 以下
96kHz 超
再生 fS
ダウンサンプリング
入力 fS と同じ
1/1(=フィルタ特性なし)
入力 fS の半分
1/2
入力 fS の 1/4
1/4
サンプリング周波数変換を適切に行うためには,変
換比が整数であることが重要です.
例えばサンプリング周波数を 192kHz から 44.1kHz
にダウンサンプリングする場合は,単純に整数比には
できません.そのため,いったん入力と出力のサンプ
リング周波数の最小公倍数に相当するサンプリング周
波数に変換してから,出力サンプリング周波数に変換
します.変換過程のブロック図を図 2 に示します.
理論的なダウンサンプリングを行うには,以下の過
程で処理を行います.
①入力サンプリング周波数 fSI を M 倍のアップサンプ
リングにより中間サンプリング周波数 fSM に変換す
る.補間処理入力サンプル値の間を M − 1 個の 0 で
埋めるか,前値を M − 1 個連続させて階段状波形に
する.
②中間サンプリング周波数の信号に対し,出力サン
プリング周波数の半分以上の成分を抑えるために
ローパス・フィルタを掛ける.
③ローパス・フィルタ出力を N 回に 1 回とり,ダウ
ンサンプリング結果とする.
fSI
①
補間処理
fSM
②
fSM
ローパス・
フィルタ
fSO
fC =
2
③
間引き
処理
fSO
● 非整数分の 1 ダウンサンプリングの基本メカ
ニズム
1/N のダウンサンプリングは比較的容易に実現でき
ますが,非整数分の 1 ダウンサンプリングは少し工夫
が必要です.ここで,ダウンサンプリングを含むサン
プリング周波数変換について少し詳しく説明します.
2017 年 4 月号
図 2 非整数分の 1(M/N)ダウンサンプリングを行うには M
倍にアップサンプリングしないといけなくてたいへん
第 1 回 ダウンサンプリング時に発生するひずみ信号(2017 年 1 月号)
第2回 ひずみを発生しないダウンサンプリング・プログラム(2017年3月号)
99