У меня есть вопрос относительно результата выполнения вейвлет-преобразования в MATLAB для аудиосигнала. У меня есть аудиосигнал, импортированный в MATLAB с помощью функции wavread
. Затем я выполняю одноуровневое вейвлет-преобразование сигнала с помощью функции wavdec
(обычно это преобразование Хаара или db4). Чтобы преобразовать сигнал обратно в исходный звуковой сигнал, я затем выполняю обратное вейвлет-преобразование сигнала, используя функцию wavrec
. Выход этой функции возвращает меня к исходному звуковому сигналу. Однако многие точки данных немного отличаются от исходного сигнала (всего примерно на величину 10 ^ -16, так что это очень незначительно). Однако теоретически обратное преобразование должно дать мне точный исходный сигнал. Я не уверен, что делаю что-то не так, но есть ли причина, по которой после выполнения вейвлет-преобразования, а затем выполнения обратного, я не получаю на выходе точно исходный сигнал? Большое спасибо за любую помощь!
Выход вейвлет-преобразования в MATLAB
comment
Это очень хороший вопрос! Я видел ту же ситуацию в MATLAB с изображениями. Разница настолько незначительна, что я не смотрел на объяснение. Я буду следить за вашим постом ближе, чтобы увидеть, что говорят опытные ребята.
- person Helder   schedule 21.12.2015
Ответы (1)
Числа в компьютере не так совершенны, как теоретические числа.
Чтобы хранить ваши данные в ограниченном объеме памяти, необходимо округлить его до ближайшего представимого значения. Это округление очень мало, как и "ошибка", которую вы видите.
Поищите статью «Что должен знать каждый компьютерщик об арифметике с плавающей запятой» или одно из резюме (статья отличная, но длинная, резюме короче, но различаются по качеству).
person
Ben Voigt
schedule
01.11.2013