仕上げ: 48kHz I2Sオーディオ出力

第2部
第
サンプリング・レート合わせ&ノイズ軽減のための
高域強調
8章
仕上げ:
48kHz I2S オーディオ出力
高橋 知宏
有利数比のダウンサンプリングを行える
ポリフェーズFIRフィルタ
FIFOが空になりそうになったら
読みにいく
マトリクス
L +R
リング・バッファ
L
FIR
ディエンファシス
128タップ
τ=50μs
fC =15kHz
出力
I2S
R
L −R
312kHz⇒2/13⇒48kHz
図 1 仕上げ…48kHz の I2S ステレオ・オーディオ出力
FM 復調とステレオ・デコードを終えたら,最後の
仕上げとしてサンプリング・レートの変換とディエン
ファシス(高域強調)を行い,I2S で出力します(図 1).
ステップ 1:
FIR フィルタによる 2/13 間引き
● LPF と 48kHz への間引きを同時に行う
ステレオ・デコードした信号は,サンプリング・レー
トが 312kHz です.最終的なオーディオ出力の 48kHz
に間引き(デシメーション)する必要があります.
またこのままだと,パイロット信号など不要な成分
を多く含んでいます.これを取り除くために,FIR
ローパス・フィルタと同時に間引きを行い,音声信号
として有効な 15kHz 以下のみを取り出します.
● N /M の整数比をもつ周波数変換のために必要
な FIR フィルタの工夫
312kHz から 48kHz へのサンプリング・レート変換
は,2/13 の変換比としています.FIR フィルタによる
デシメーションは整数分の一比の変換であれば,単純
な間引きで大丈夫なのですが,整数分の一以外の比の
変換は少し工夫が必要です.
例えば 2/13 の変換比であれば,仕組みとしては,2
倍にアップサンプリングしたあとに,1/13 のデシメー
ションをします.アップサンプリングは,サンプル数
を倍に増やすのですが,元のサンプル値の間を 0 で補
うようにします.0 で補うと波形はギザギザになって
しまいますが,元の信号のスペクトラムはそのまま保
存されています(図 2)
.
● アップサンプリングしても計算量そのものは
増えない!
これに FIRフィルタの係数を適用すると,補間した 0
の部分は,結果も当然 0 になりますから,計算する必要
はありません.つまり,2 倍アップサンプリングであれ
ば,FIRフィルタ係数の半分は計算不要です.ただし,
アップサンプリング前
アップサンプリング後
元と同じ形 鏡像対称
間に0を挿入する
(a)元の波形
(b)2倍にアップサンプリング
1
f
2 S
= 2fS
fS ′
1
f ′
2 S
(c)スペクトラムは変わらない
図 2 間のデータを 0 で補完すると元の信号スペクトラムはそのままでサンプリング周波数を 2 倍にしたと考えられる
2015 年 7 月号
83