Артефакты в БПФ


10

Недавно я понял, что БПФ не идеальны. Это означает, что если я возьму сигнал, а затем возьму его БПФ, а затем сделаю обратное БПФ, результирующий выходной сигнал не будет совпадать с входным. Вот изображение, чтобы показать вам, что я имею в виду:БПФ не всегда работает

Я думаю, что изображение довольно очевидно. Сигнал IFFT представляет собой просто обратное преобразование «спектра БПФ», а график «Разница» представляет собой разницу между сигналом IFFT и исходным сигналом ( ).IFFT - Оригинал

Очевидно, есть некоторые артефакты, хотя они действительно маленькие. Я хотел бы знать, почему они происходят в первую очередь. Это из-за конечного окна преобразования Фурье? Или из-за чего-то в алгоритме FFT?

10-1610-15


4
Все математики с ограниченной точностью имеют эти ошибки, а не только БПФ.
эндолит

Ответы:


16

Различия, которые вы видите, связаны с числовыми ошибками в формате с плавающей запятой. Все операции, необходимые для выполнения БПФ и обратного БПФ, могут выполняться только с конечной точностью, и вы продемонстрировали результат этой конечной точности на нижнем правом графике.


Была бы ситуация, когда эта ошибка могла взорваться сверх точности с плавающей запятой?
Китчи

6
10-162-53

@Kitchi: да, во многих ситуациях числовые ошибки могут быть серьезной проблемой, даже в формате с плавающей запятой. Матричная инверсия была бы одним из многих примеров. Все это связано с номером условия .
Мэтт Л.

1
@MattL. - Чудесно! Спасибо за ссылку.
Китчи

7

В целом число не может быть представлено точно в цифровом виде. Введена ошибка. Если вы находитесь в Matlab, вы можете написать eps по команде, она даст вам номер.

EPS без аргументов - это расстояние от 1,0 до следующего большего числа двойной точности, то есть EPS = 2 ^ (- 52).

Ошибка, которую вы видите на графике, находится в диапазоне, возвращаемом eps (то есть 2 ^ (- 52)).

Даже если вы ожидаете реальных значений в вашем выводе от вашего IFFT, вы можете увидеть, что ваша мнимая часть не совсем равна нулю. То же самое.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.