MATLAB中的小波变换输出

时间:2013-11-01 17:45:18

标签: matlab audio transform signal-processing wavelet

我对在MATLAB中对音频信号执行小波变换的输出有疑问。我使用wavread函数将音频信号导入MATLAB。然后,我使用wavdec函数(通常是haar或db4变换)对信号执行单级小波变换。为了将信号转换回原始音频信号,我然后使用函数wavrec对信号执行逆小波变换。此功能的输出使我回到原始音频信号。然而,许多数据点与原始信号略有偏差(仅大约10 ^ -16的幅度,因此非常轻微)。然而,理论上,逆变换应该给我精确的原始信号。我不确定我是否做错了什么,但有没有理由在执行小波变换然后执行逆操作后我没有得到完全原始信号的输出?非常感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

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

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

去寻找文章“每个计算机科学家应该知道浮点算术的内容”,或其中一个摘要(文章很棒但很长,摘要较短但质量不同)。