Skip to content

Repository files navigation

MathCore.DSP

Библиотека методов и средств цифровой обработки сигналов (Digital Signal Processing) для .NET

Назначение

MathCore.DSP предоставляет набор алгоритмов и утилит для анализа, синтеза, фильтрации и преобразований дискретных сигналов в научных, инженерных и прикладных задачах.

Поддерживаемые платформы

  • .NET Standard 2.0 (широкая совместимость)
  • .NET 8, .NET 9, .NET 10 (современные возможности и оптимизации)

Установка

Через NuGet:

dotnet add package MathCore.DSP

Или в PackageReference:

<PackageReferenceInclude="MathCore.DSP"Version="*" />

Основные возможности

  • Генерация сигналов (синус, прямоугольный, пилы, шумы)
  • Оконные функции (Hann, Hamming, Blackman, Bartlett и др.)
  • Спектральный анализ (DFT/FFT, мощность спектра, периодограммы)
  • Фильтры:
    • FIR (окно, частотный метод, обработка свёрткой)
    • IIR (би-квадратные секции, стандартные прототипы)
  • Свёртка и корреляция
  • Ресемплинг и интерполяция
  • Преобразования (быстрое Фурье, дискретное, Гильберта, Z-преобразование вспомогательные функции)
  • Работа с комплексными сигналами и огибающей
  • Статистические характеристики сигналов (среднее, RMS, выбросы)
  • Нормализация, окно скользящего среднего, сглаживание
  • Агрегирующие и вспомогательные математические утилиты

Быстрый пример

usingMathCore.DSP;usingMathCore.DSP.Filters;usingMathCore.DSP.FFT;// Генерация тестового сигнала: сумма двух синусоид + шумvarsample_rate=1024;// Гцvarn=1024;vart=Enumerable.Range(0,n).Select(i =>(double)i/sample_rate).ToArray();varsignal=t.Select(x =>0.7*Math.Sin(2*Math.PI*50*x)+0.3*Math.Sin(2*Math.PI*120*x)+0.05*(2*Random.Shared.NextDouble()-1)).ToArray();// Применение окна для снижения утечек спектраvarwindow=Windows.Hann(n);for(vari=0;i<n;i++)signal[i]*=window[i];// Быстрое преобразование Фурьеvarfft=FFT.Calculate(signal);// Комплексный спектрvaramplitude=fft.GetAmplitudes();// Амплитудный спектр// Проектирование простого низкочастотного FIR фильтраvarcutoff=80.0/sample_rate;// Относительная частотаvarfir=FIR.LowPass(order:64,wc:cutoff,WindowType.Hamming);varfiltered=fir.Process(signal);// Фильтрация// Теперь filtered содержит сигнал с подавленными компонентами выше 80 Гц

Документация

Расширенная документация и дополнительные примеры будут публиковаться постепенно. Предложения по улучшению приветствуются через Issues.

Обратная связь

Сборка и тесты

В репозитории присутствуют проекты тестов, бенчмарков и примеров (Console/WPF) для проверки корректности и производительности алгоритмов.

Лицензия

См. файл LICENSE (при наличии) в корне репозитория.

Состояние

Проект активно развивается. Обновления Readmeвключают расширение набора фильтров, оптимизацию FFT и добавление новых преобразований.


Если библиотека полезна — можно поставить звезду репозиторию. Благодарность мотивирует на дальнейшее развитие.

About

Библиотека методов и средств цифровой обработки сигналов

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages