https://habr.com/ru/post/253447/?ysclid=l8obvi7fz8444876271
Рис.6 наглядная демонстрация.
Да и идея в общем то простая.
Как по мне это всё ещё детские игры, до практической реализации ещё очень далеко. Да, идея (домножить на комплексную экспоненту, чтобы сдвинуть спектр) простая и в чём-то гениальная, но на одной идее далеко не уедешь.
Первое, что автор статьи не понимает — это то, что нельзя Фурье применять без какой-либо оконной маски. Причём это касается не только реальных сигналов, но и большинства тестовых. Причина этого — граничные эффекты. Дискретный Фурье действует не просто на отрезке, он действует на
зацикленном отрезке, фактически на кольце. Поэтому частоты сигнала, не попадающие на "зубцы гребёнки" базиса Фурье (как пишет ув.
Евгений Машеров) будут иметь изломы и разрывы на концах отрезка при замыкании его в кольцо. А такие особенности в сигнале имеют широченный спектр (разрыв: затухание
, излом: затухание
), что и приводит ко всем этим гадостям, с которыми автор статьи пытается бороться с помощью "гетеродинирования". Вот наглядный пример, демонстрирующий этот факт:
Первый и второй сигналы отличаются лишь циклическим сдвигом вдоль кольца разложения Фурье. В цетре графика второго сигнала явно виден скачок, возникающий на сшивке границ отрезка с первым сигналом. Амплитуды спектров обоих сигналов наложены один на другой на третьем графике. Видно, что они совпадают один в один. И это не удивительно. Циклический сдвиг во временной области меняет только фазу в спектральной области. Демонстрационный код:
clc
clearvars
format compact
num = 58;
xx = ((1 : num)' - 0.5) / num;
yy1 = cos (2 * pi * xx * 4.5);
yy2 = [yy1(num / 2 + 1 : end); yy1(1 : num / 2)];
subplot (311)
bar (yy1)
subplot (312)
bar (yy2, 'g')
subplot (313)
bar (abs (fft (yy1)))
hold on
bar (abs (fft (yy2)), 'g')
hold off
Второй факт, который не понимает автор статьи, заключается в том, что реальные сигналы (как я уже неоднократно писал выше) всегда имеют плавающую частоту/фазу и изменяющуюся амплитуду. На практике это сводит на ноль всё, что автор в статье делает. Ну просто потому, что любой реальный сигнал будет иметь широкий спектр в несколько линий. Именно в этих нескольких соседних линиях зашифрованы те плавающие амплитуды и частоты, которые в сигнале наблюдаются (смотрите мой первый пост на этой странице, например). Чем быстрее (со временем) эти изменения происходят, тем больше информации хранится в одной гармонике, тем шире её спектр (очень логично, не находите?). По этой причине вырезание одной гармоники из спектра реального сигнала — это всегда вырезание
нескольких спектральных линий.
Оконные функции решают как первую проблему, так и помогают с решением второй. В гетеродинировании отпадает надобность. Да, умножение сигнала на оконную функцию уширяет спектр
на две линии (всего!!!), но, поскольку реальный сигнал уже широкий, это оказывается не страшно. А "лепестки" оконных функций как правило безвозвратно тонут в фоновом шуме, который естественным образом присутствует в реальном сигнале.
-- 30.09.2022, 15:27 --А что такого сложного с обратными вейвлетами?
Конкретно с теми, что вы привели — неудовлетворительное спектральное разрешение. Вообще, если вы хотите мне помочь понять, какие именно вейвлеты мне нужны,
добро пожаловать в отдельную тему. Если действительно получится достичь хоть какого-то практического результата, буду несказанно благодарен!