3

線形予測コーディング (FLAC などのオーディオ ファイル形式で使用されるものなど) を実行するときに使用する最適なフィルター次数を選択するための確立された方法があるかどうか疑問に思っています。

私の現在のアプローチは次のとおりです。

  1. 信号の塊を取る
  2. 0.5 tukey ウィンドウで信号をウィンドウ化する
  3. 自己相関係数を取得する
  4. 自己相関係数を使用して LPC 係数を計算する
  5. LPC 係数を持つ標準 FIR フィルターを使用して予測信号を生成します。
  6. 元の信号と予測された信号の間の誤差を測定する
  7. ステップ 1 に移動し、さまざまなフィルター次数で繰り返しを続けます ...
  8. 最小のエラーに基づいて最適な順序を選択する

プロセスのステップ 4 で作成されたエラーを見て、最適なフィルター次数を推定することは可能ですか? できればステップ4からステップ8にショートカットしたいです。

4

1 に答える 1

1

あなたがFLACについて言及したので、私は彼らがそれをどのように行うかを見てきました. LPC係数を計算する過程で、最大までのすべてのオーダーのエラーを推定しているようです。全体的な計算はここから始まり、 FLAC__lpc_compute_lp_coefficientsを使用して係数を計算し、誤差も推定します。次に、これをFLAC__lpc_compute_best_orderで使用して、使用する係数を決定します (網羅的でない場合)。

注目すべき別の実装はlibflakeで、 n-1の反射係数 > .10で最高次数のnを選択しています。これは、 n+1およびn+2の反射係数が < .15 の場合に最低次数nを選択する、こちら (PDF)で説明されているアプローチに関連しているようです。どちらも反射係数が爆発するポイントを探していますが、前述の PDF の図 1 を見ると、Flake のように上から検索しているように見えます。単なる別のヒューリスティックですが、興味深いかもしれません。

于 2014-10-31T03:54:02.653 に答える