ハイレゾ時代のコモンセンス ラズパイ・オーディオの勘どころ②

Raspberry Pi 2 LIFE
ハイレゾ時代のコモンセンス ご購入はこちら
ラズパイ・オーディオの勘どころ②
〜サンプリング周波数変換編〜
第
2回
ひずみを発生しないダウンサンプリング・プログラム
大津 秀紀
制作するプログラム
オーデイオ入出力用API ALSA
を利用してハイレゾ音源を再生する
ユーザ・プログラム
オーディオ・
プレーヤ
USB
ラズベリー・パイ
D-Aコンバータ
アナログ
USBオーディオ・
デバイス
関数を呼び出す
波形確認
ALSAライブラリ
パソコン
サンプリング周波数 192kHz,分解能 16 ビットなど
といったハイレゾ・オーディオに関する記事が本誌で
も何度か紹介されてきました.ちまたの D-A コンバー
タにも,このような周波数,分解能に対応する品もあ
りますが,サンプリング周波数が 48kHz までしか対
応していない D-A コンバータもまだまだあります.
そのような D-A コンバータを利用する際には,デー
タを間引く処理が必要になります.
データ量を減らす「間引き」の方法には,ダウンサ
ンプリング処理があります.ダウンサンプリング処理
を適切に行わないと,波形ひずみや,思いもしない周
波数帯域への折り返しノイズなどの,思わぬ「ニセ信
号」が生じます.第 1 回(2017 年 2 月号)では,ニセの
ひずみ信号が発生するメカニズムを解説しました.
今回はラズベリー・パイ上で,なるべくひずみを発
生させずにダウンサンプリングを適切に行うためのプ
ログラムの作り方を解説します.図 1 に実験時のハー
ドウェア構成を,図 2 にソフトウェア構成を示します.
プログラム
ALSA
ドライバ
ALSAコア
図 1 ダウンサンプリング実験時のハードウェア構成
● 今回やること…ひずみを発生しないでダウン
サンプリングする
ユーザ
空間
USB
オーディオ・
クラス・
ドライバ
PWM
ドライバ
USBマス・
ストレージ・
クラス・
ドライバ
カーネル
空間
2
IS
ドライバ
USBドライバ
ソフトウェア
ハードウェア
BCM2835
ラズベリー・
パイ
LAN9512
PCMデータ
オシロ
スコープ
アナ
ログ
ファイル・データ
USB
USB-DAC
USBメモリ
音楽データの
流れ
図 2 ダウンサンプリング実験のソフトウェア構成
表 1 ダウンサンプリング…出力サンプリング周波数は入力サン
プリング周波数によってこのように変換される
入力 f[kHz]
s
48kHz 以下
48kHz 超
~ 96kHz 以下
96kHz 超
再生 fs
ダウンサンプリング
入力 fs と同じ
1/1(=フィルタ特性なし)
入力 fs の半分
1/2
入力 fs の 1/4
1/4
● 今回はステレオ 16 ビットにだけ対応
wave ファイルの再生に,ダウンサンプリング処理
を 加 え た プ ロ グ ラ ム alsa_test3 を リ ス ト 1 と
リスト 2 に示します.プログラムの複雑化を避けるた
め,実験に合わせてステレオ 16 ビットのケースだけ
をサポートするようにプログラムを作成します.ぜ
2017 年 3 月号
ひモノラルやマルチチャネル対応への改造を試みて
ください.
入力サンプリング周波数は wave ファイルで指定さ
れます.今回,出力サンプリング周波数は,入力サン
プリング周波数によって決めるようにプログラミング
第 1 回 ダウンサンプリング時に発生するひずみ信号(2017年1月号)
113