2

我有一个关于在 MATLAB 中对音频信号执行小波变换的输出的问题。我使用该函数将音频信号导入 MATLAB wavread。然后,我使用该函数对信号执行一级小波变换wavdec(通常是 haar 或 db4 变换)。要将信号转换回原始音频信号,然后我使用函数对信号执行小波逆变换wavrec. 这个函数的输出让我回到了原始的音频信号。但是,许多数据点与原始信号略有偏差(仅相差 10^-16 左右,因此非常轻微)。然而,理论上逆变换应该给我准确的原始信号。我不确定我是否做错了什么,但是否有原因在执行小波变换然后执行逆运算后我没有得到完全原始信号的输出?非常感谢您的帮助!

4

1 回答 1

4

计算机中的数字并不像理论数字那么完美。

为了将数据存储在有限的内存中,有必要将其四舍五入到最接近的可表示值。这个舍入非常小,但您看到的“错误”也是如此。

去寻找文章“每个计算机科学家应该知道的关于浮点运算的知识”,或其中的一个摘要(文章很棒但很长,摘要较短但质量参差不齐)。

于 2013-11-01T19:06:12.117 回答