FourierApprox – desktop-приложение для аппроксимации сигналов рядами Фурье. Оно генерирует различные типы сигналов, вычисляет их преобразование Фурье, строит аппроксимацию с помощью ряда Фурье и визуализирует результаты в виде графиков и таблиц.
Приложение разработано с использованием фреймворка Wails, который сочетает Go для backend и HTML, CSS, JavaScript для frontend.
-
Генерация сигналов: Поддержка различных типов сигналов:
- Гармонический сигнал
- Полигармонический сигнал
- Однополярные и разнополярные прямоугольные импульсы
- Затухающая синусоида
- Прямоугольные и экспоненциальные импульсы
- Пилообразные и треугольные импульсы
-
Аппроксимация Фурье: Вычисление ряда Фурье с заданным количеством членов
-
Визуализация:
- Графики оригинального сигнала и аппроксимации
- График погрешности аппроксимации
- Амплитудно-частотная характеристика (АЧХ)
- Фазо-частотная характеристика (ФЧХ)
- Таблицы с данными сигнала и спектра
-
Экспорт данных:
- Сохранение графиков в формате PNG
- Экспорт таблиц в CSV-файлы
- Go 1.21+ (macOS 15+ требует Go 1.23.3+)
- Node.js для сборки frontend
- Операционная система: Windows, Linux, macOS
git clone https://github.com/Arondy/fourier_approximation.git
cd fourier_approximationУстановите зависимости Go:
go mod downloadУстановите зависимости frontend:
cd frontend
npm install
cd ..Скомпилируйте приложение:
wails buildИли запустите в режиме разработки:
wails dev- Запустите приложение
- Выберите тип сигнала из выпадающего списка
- Настройте параметры сигнала:
- Амплитуда (A)
- Период (TS)
- Частота дискретизации (Freq)
- Количество членов ряда Фурье (L)
- Другие параметры в зависимости от типа сигнала
- Нажмите "Сгенерировать сигнал"
- Просмотрите результаты на вкладках:
- "Аппроксимация и погрешность"
- "АЧХ и ФЧХ"
- "Таблица сигнала и ряда Фурье"
- Экспортируйте графики или данные при необходимости
main.go- точка входа приложенияapp.go- основная логика приложенияsignals/signals.go- функции генерации сигналов и вычисления Фурьеfrontend/- веб-интерфейсindex.html- главная страницаsrc/main.js- JavaScript логикаsrc/styles.css- стилиsrc/chart.js- функции построения графиков


