Визуализация преобразования Фурье

Визуальное представление физического смысла преобразования Фурье

Расположение

SimInTech\Demo\Визуализация и анимация\Графики\Визуализация преобразования Фурье\Визуализация преобразования Фурье.prt

Описание

Данный проект (Рис. 1) демонстрирует визуальное представление физического смысла преобразования Фурье на примере рисования кривой с помощью ломаной линии из конечного числа отрезков, вращающихся на комплексной плоскости с кратными частотами.


Рис. 1. Окно проекта демо-примера.
В скрипте проекта производится считывание координат точек исходной траектории из текстового файла, расположенного в директории "data\image.txt". Считанные координаты отображаются на графике Y от X с подписью "Исходная траектория" (Рис. 2).


Рис. 2. График исходной траектории.
Движение кисти вдоль кривой (рисование кривой) представляется в виде изменения координат кисти во времени. В скрипте проекта рассчитывается длина всей кривой (длина пути кисти) и для каждой точки траектории рассчитывается время, в которое кисть должна пройти через данную точку, исходя из предположения, что кисть движется с постоянной скоростью и проходит всю траекторию за заданное время. Значения координат и времен отображаются на графике Y от X с подписью "Параметризованные координаты" в виде зависимостей координат от времени (Рис. 3).


Рис. 3. Графики параметризованных координат.
Блоки Константа передают массивы координат и времен в блок Спектроанализатор в виде массивов отсчетов действительной и мнимой составляющей комплексного сигнала (осуществляется переход из координат X-Y в координаты Re-Im). Спектроанализатор определяет амплитудный и фазовый спектры сигнала и формирует массивы частот, амплитуд и фаз гармоник. Амплитудный спектр отображается на графике Y от X с подписью "Амплитудный спектр" (Рис. 4).


Рис. 4. Амплитудный спектр.
Рассчитанные массивы являются коэффициентами разложения исходного сигнала в ряд Фурье. Преобразование Фурье позволяет представить исходный сигнал в виде суммы гармонических функций заданных амплитуд с частотами, кратными шагу частот в спектре (первой ненулевой частоте). Блок Источник сигнала с заданным спектром формирует комплексный сигнал, состоящий из суммы этих гармонических функций. Действительная часть сигнала представляется в виде суммы косинусоидальных функций, мнимая - в виде суммы синусоидальных функций. На графике с подписью "Изменение координат во времени" (Рис. 5) отображаются действительная и мнимая части сформированного сигнала (координаты X и Y траектории).


Рис. 5. Графики изменения координат во времени.

На комплексной плоскости каждая гармоника представляется в виде вращающегося отрезка: амплитуда гармоники задает длину отрезка, частота определяет скорость вращения, а фаза - начальный угол поворота. Таким образом, комплексный сигнал, состоящий из суммы гармонических функций, представляется в виде траектории движения конца ломаной линии, состоящей из множества отрезков, каждый из которых вращается относительно конца предыдущего отрезка.

В блоке Язык программирования значения координат накапливаются в буфер для отображения "нарисованной" части траектории, а также рассчитываются координаты всех точек ломаной линии и точек окружностей, по которыми движутся концы ее отрезков. Блок Генератор единичных импульсов формирует сигналы управления накоплением значений в буфер таким образом, чтобы равномерно распределить всю длину траектории на весь объем буфера, задаваемый в скрипте проекта.

Координаты всех точек записываются в сигналы проекта и с помощью менеджера данных отображаются на графиках Y от X:
  • На графике с подписью в шапке окна "Траектория" (Рис. 6) отображаются значения координат точек из сигналов "GraphX" и "GraphY"


    Рис. 6. Отображение траектории с ломаной и окружностями, по которым движутся концы ее отрезков.
  • На графике с подписью в шапке окна "Траектория с зумом" (Рис. 7) отображаются значения координат точек из сигналов "GraphX_Zoom" и "GraphY_Zoom"


    Рис. 7. Отображение траектории с ломаной с окружностями в увеличенном виде.

Для наглядности нарисованная часть траектории отображается в виде 10 линий (оттенков) с разными толщинами, создавая видимость затухания траектории со временем.

Используемые блоки