話速変換や音域拡張,バーチャル・サラウンド,自動音場補正など(後編) ―― DSPによる音声信号処理の動向と実現法
tag: 組み込み ディジタル・デザイン
技術解説 2009年9月 4日
前編では,音声信号処理の歴史,話速変換の基礎技術,圧縮オーディオを高音質化する技術などについて解説した.今回は,小型スピーカの低音再生やバーチャル・サラウンド,自動音場補正の技術と,それらの実装方法について解説する. (編集部)
>>> 前編の記事はこちら
4. 小型スピーカでも低音再生を可能にする低音域拡張
ここ数年,テレビの薄型化が急速に進んできました.見た目にもデザイン性の高い薄型テレビですが,内蔵スピーカに関していえば,その形状やサイズに対する制約がますます大きくなっています.薄型テレビでは,従来のブラウン管テレビのように側面に大きなスピーカを配置できないため,より小型のスピーカがパネルの横側や下側に沿うように配置されているのが一般的です.また,携帯プレーヤのヘッドホンや携帯電話,ノート・パソコンなどでは,さらに小さなスピーカが用いられます.
しかし,このような口径の小さなスピーカでは物理的に波長の長い低音を再現することが困難です.例えば,デスクトップ・パソコンで用いられるような典型的な小型スピーカでは,再生可能帯域の下限が200Hz前後にあります(図10).実際に,これより下の帯域に入るようなドラムや太鼓,ベースなどの低音が再生できず,物足りなさを感じることが多いと思います.そこで,こうした小型スピーカでも低域を再現する手段として,人間の錯覚を利用した方法(7)が知られています.
● 錯覚を用いた低域拡張の原理
錯覚というと目の錯覚が一般的で,同じ長さの線に長短を感じたり,存在しない模様が見えたりする効果がよく知られています.人間の脳は耳に関しても錯覚を起こします.
低域拡張アルゴリズムで用いられる耳の錯覚とは,「ある基音の整数倍の周波数の音を同時に聴くと,その基音が実際には鳴っていなくても聴こえるように知覚する」というものです(図11).
例えば図10の特性を持つスピーカで100Hzの音を出そうとしても,小さな音しか出ません.また,イコライザなどで周波数特性を持ち上げられるのも,たかだか200Hz近辺まででしょう.そこで,代わりに100Hzの整数倍の高調波である200Hz,300Hz,400Hzなどの音を発生すると,耳の錯覚によってあたかも100Hzの基音が鳴っているように感じられるのです.
ここでのポイントは,100Hzの代わりに発生された高調波は図10のスピーカでも十分に再現可能な点です.このように耳の錯覚を利用することで,スピーカの見かけ上の帯域を拡張できます.実際に錯覚の効果を検証してみると,2次,3次,4次の高調波が最も影響が大きく,このうちのどれが欠けても効果が弱まることが分かります.
● 低域拡張のための高調波の生成法
低域拡張のアルゴリズムは,薄型テレビや携帯機器で用いられるような固定小数点DSPを対象に開発されました.こうした固定小数点DSPでの開発で常に気を遣うのは,各計算におけるオーバフローです.オーバフローを避けるには,ある範囲の入力信号を与えたときに,計算途中および出力信号がどの範囲に収まるかをあらかじめ知っておく必要があります.FIRやIIRなどのフィルタ処理においては,インパルス応答の1ノルム(FIRではフィルタ係数の絶対値和)を考えることによってこの範囲を知ることができます.
さて,低域拡張に用いられる高調波生成法の一つに,入力信号の絶対値とクリッピングを用いた方法があります.この方法はフーリエ変換の文脈では広く知られた事実に基づいています.単一周波数の正弦波を入力した場合,その絶対値をとることで偶数倍の高調波が発生し,また,ある任意のレベルでクリッピングを行うことで奇数次の高調波が発生することを利用しています(図12).
ただし,絶対値処理は非常に単純ですが,クリッピングについてはそれを行うレベルによって発生する各高調波のレベルが変動します.そのためクリッピング・レベルを入力信号に合わせて適切に設定し,所望の高調波レベルを得る必要があります.この点さえ工夫すれば,これらの絶対値とクリッピングは処理が単純であるだけでなく,その出力範囲が入力範囲を超えることはありません.あらかじめ出力信号の範囲を知ることができるという点で,固定小数点DSPに適した方法といえます.
● 低音域拡張をDSPに実装するためのヒント
図13に今回の低域拡張アルゴリズムのブロック図を示します.このアルゴリズムは音声信号処理用の高精度固定小数点DSPであるTI社製「TAS3108」(図14)に実装されています.図13のブロック図で最初の二つのフィルタ(HPFおよびLPF1)は,高調波生成の対象となる低域信号成分を抽出するためのものです.しかし,これらフィルタのカットオフ周波数は,対象となるスピーカによっては50Hzなどとかなり低域になり,フィルタ係数やフィルタ計算自体に高い精度が求められます.
一方,TAS3108はアキュムレータ型のDSPで,アキュムレータに76ビット,データに48ビット,係数に28ビットの幅を持っています.このビット幅によって超低域にカットオフ周波数を持つフィルタであっても,精度を損なうことなく演算が可能です.また,このDSPは135MHz動作で,48kHz/2チャネルの場合,1入力サンプルに対して1400クロックの処理を行えます.これに対し今回の低域拡張アルゴリズムは74サイクルの演算量で動作します.図15に100Hz正弦波入力時の出力例を示します.