市販の汎用シミュレーションソフトの中には、前ページ図10のように同じサンプルを繰り返すのではなく、スプライン補間等を用いてデータの内挿を行う関数が含まれていることがあります。一見、これらの内挿関数を用いてサンプリング周波数変換ができるかのように思われるかもしれませんが、スペクトルのひずみが生じるために実用にはならないことに注意してください(実際には次にご紹介するような方法でサンプリング周波数変換を行います)。
(その3)値0のデータの挿入とLPFを用いたサンプリング周波数変換処理(周波数アップ)
エリアジングひずみを生じずにサンプリング周波数を上げるには図12のようなフローで処理を行います(入力サンプリング周波数Fs-in=11025Hz、出力サンプリング周波数Fs-out=22050Hzの場合)。
まず、入力データに値0のデータを挿入した後に、LPF(ローパスフィルター)に通してひずみ成分を除去します(図13を参照してください)。データの挿入処理は図14のようになります。
以下、サンプリング周波数前後の音声のスペクトログラム(いわゆる声紋表示)の例を示します。図の横軸は時間(秒)、縦軸は周波数(Hz)、色 は周波数成分の強さを表します(色が明るいほど強い)。
(1)サンプリング周波数変換前のファイルの一部のスペクトログラム(サンプリング周波数:11.025kHz)
(2)サンプリング周波数変換後のファイルの一部のスペクトログラム(サンプリング周波:22.05kHz) 入力のサンプルの値を2サンプル分繰り返して、サンプリング周波数を2倍にした場合(5.5〜11kHz)がひずみ成分
(3)サンプリング周波数変換後のファイルの一部のスペクトログラム(サンプリング周波数:22.05kHz) インターポレーションの後にLPFを通して、5.5〜11kHzにかけてのひずみ成分を除去している
値0のデータの挿入とLPFを用いたサンプリング周波数変換システム(周波数アップ)の一般化したブロック・ダイヤグラムは図15のようになります(入出力のサンプリング周波数比は1:L、入力サンプリング周波数F=11025Hz、出力サンプリング周波数Fs-out=22050Hzの例ではL=2)。
1:Lのインターポレーションは入力データの間にL-1個の値0のデータを挿入する処理になります。
Copyright © ITmedia, Inc. All Rights Reserved.