Skip to content

Arondy/fourier_approximation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fourier Approximation

Описание проекта

FourierApprox – desktop-приложение для аппроксимации сигналов рядами Фурье. Оно генерирует различные типы сигналов, вычисляет их преобразование Фурье, строит аппроксимацию с помощью ряда Фурье и визуализирует результаты в виде графиков и таблиц.

Приложение разработано с использованием фреймворка Wails, который сочетает Go для backend и HTML, CSS, JavaScript для frontend.

Демо

image-20251104155910786

image-20251104155831243

image-20251104155848626

Основная функциональность

  • Генерация сигналов: Поддержка различных типов сигналов:

    • Гармонический сигнал
    • Полигармонический сигнал
    • Однополярные и разнополярные прямоугольные импульсы
    • Затухающая синусоида
    • Прямоугольные и экспоненциальные импульсы
    • Пилообразные и треугольные импульсы
  • Аппроксимация Фурье: Вычисление ряда Фурье с заданным количеством членов

  • Визуализация:

    • Графики оригинального сигнала и аппроксимации
    • График погрешности аппроксимации
    • Амплитудно-частотная характеристика (АЧХ)
    • Фазо-частотная характеристика (ФЧХ)
    • Таблицы с данными сигнала и спектра
  • Экспорт данных:

    • Сохранение графиков в формате 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

Использование

  1. Запустите приложение
  2. Выберите тип сигнала из выпадающего списка
  3. Настройте параметры сигнала:
    • Амплитуда (A)
    • Период (TS)
    • Частота дискретизации (Freq)
    • Количество членов ряда Фурье (L)
    • Другие параметры в зависимости от типа сигнала
  4. Нажмите "Сгенерировать сигнал"
  5. Просмотрите результаты на вкладках:
    • "Аппроксимация и погрешность"
    • "АЧХ и ФЧХ"
    • "Таблица сигнала и ряда Фурье"
  6. Экспортируйте графики или данные при необходимости

Структура проекта

  • main.go - точка входа приложения
  • app.go - основная логика приложения
  • signals/signals.go - функции генерации сигналов и вычисления Фурье
  • frontend/ - веб-интерфейс
    • index.html - главная страница
    • src/main.js - JavaScript логика
    • src/styles.css - стили
    • src/chart.js - функции построения графиков

Зависимости

  • Wails - фреймворк для создания desktop-приложений
  • go-dsp - библиотека для цифровой обработки сигналов
  • Plotly.js - библиотека для построения графиков

About

Desktop/WebView приложение для аппроксимации сигналов рядами Фурье

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors