質問

メル周波数ケプストラムアルゴリズムを作成したいのですが、理解できないことがいくつかあります。

FTTが完了したら、「三角形の重複ウィンドウを使用して、上記で取得したスペクトルのパワーをメルスケールにマッピングする」必要があります。

三角形の計算方法を知っています。メルスケールに渡す方法も知っています。 どうすればいいのかわかりません。

三角形が定義されている場合、上記で取得したスペクトルのパワーをメルスケールにマッピングするにはどうすればよいですか

これは次のようなものですか? 三角形の内側の周波数を合計し、それをメルスケールに渡しますか? または 重み値(その時点での三角形の高さで定義)に従って三角形内の周波数を合計し、それをメルスケールに渡しますか? または 三角形内のすべての周波数を、weith値に従ってメルスケールに渡しますか? もう一つ?

誰でも私にこれを明確にすることができます

役に立ちましたか?

解決

このプロセスのステップは少し奇妙で、完全に意味をなさないと思います(とにかく私には)。フィルターバンドの中心は、メルスケールに沿って等間隔に配置されていますが、線形スケールでは三角形です。つまり、図こちら

次に、これらの三角形を使用して線形x軸に沿って加重和を計算します。 (この前のステップでは、いくつかのアプローチはフィルター三角形の領域によって正規化され、いくつかのアプローチはそうではないと思います。また、ここでの最終的な結果については正直にわかりませんが、とにかくすべての相対的な比較である最終解釈。1つは総エネルギーを維持し、もう1つは帯域ごとに均等に重み付けされた寄与を提供します。)これのログを取ります(全体の体積係数をオフセットに変換します)。

編集: フィルタの適用をより明確にするために...各三角形は個別のフィルタを表し、個別の加重合計を生成します。フィルターバンクに20個のフィルターがある場合、20個の三角形と20個の加重合計が計算されます。各フィルターを適用するには、各x軸の値に対して、そのx位置のフィルター値をそのx位置の関数値で乗算し、これをその特定のフィルターの合計に追加します。を持つほとんどのx軸の値には2つのフィルターが存在するため、各x位置で2つのフィルターに寄与します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top