2

オーディオ信号に対して MATLAB でウェーブレット変換を実行した場合の出力について質問があります。wavread関数を使用して MATLAB にオーディオ信号をインポートしました。wavdec次に、関数 (通常は haar または db4 変換)を使用して、信号に対して 1 レベルのウェーブレット変換を実行します。信号を元のオーディオ信号に戻すために、関数を使用して信号に対して逆ウェーブレット変換を実行します。wavrec. この関数の出力により、元のオーディオ信号に戻ります。ただし、多くのデータ ポイントは元の信号からわずかにずれています (約 10^-16 の大きさだけなので、非常にわずかです)。ただし、理論的には、逆変換によって正確な元の信号が得られるはずです。何か間違ったことをしているのかどうかはわかりませんが、ウェーブレット変換を実行してから逆変換を実行した後、元の信号とまったく同じ出力が得られない理由はありますか? 助けてくれてありがとう!

4

1 に答える 1

4

コンピューター内の数値は、理論上の数値ほど完全ではありません。

データを有限量のメモリに格納するには、最も近い表現可能な値に丸める必要があります。この丸めは非常に小さいですが、表示されている「エラー」も同様です。

記事「すべてのコンピューター科学者が浮動小数点演算について知っておくべきこと」、または要約の 1 つを探してください (記事は素晴らしいですが長いです。要約は短いですが、質はさまざまです)。

于 2013-11-01T19:06:12.117 に答える