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
© Copyright 2024 ExpyDoc