Skip to content

Releases: ilvoron/SignalProcessorCpp

v2.1.0

29 Sep 14:29
Compare
Choose a tag to compare

Key Updates:

  1. C++ Standard Upgrade & Core Enhancements:

    • Updated to C++20: Leveraged the latest features, improving performance and maintainability across the codebase.
    • Code Refactoring:
      • Simplified logic in core modules for better readability and execution speed.
      • Enhanced Doxygen comments for clearer documentation and improved codebase understanding.
    • Integrated clang-tidy Linter:
      • Added static analysis to ensure code quality, consistency, and best practices.
  2. New Functional Modules:

    • TSummator: Added a new module that allows the summation of signal lines.
      • Introduced equals method in TSignalLine to compare signals.
      • Further optimizations for performance and memory usage.
    • TMultiplier: Introduced a multiplier module similar to TSummator for multiplying signal lines.
    • TDifferentiator: Added signal differentiation capabilities using central and one-sided differences.
      • Option for scaling via a normalization factor, enhancing flexibility in signal representation.
    • TIntegrator: New class for numerical integration.
      • Supports three methods: Trapezoidal (default), Simpson, and Boole, making the framework more robust for signal analysis.
    • TNoiseGenerator: Introduced white noise generation with customizable amplitude.
      • Can be applied to signals to generate noisy data, facilitating better testing and analysis of signal handling methods.
  3. Module Improvements:

    • TSignalLine Enhancements:
      • Public and static methods for easier access.
      • Added normalization factors for improved control over signal scaling (e.g., sine wave normalization with ).
    • TGnuPlotViewer: Updated for better visualization capabilities.
  4. General Improvements:

    • Bug Fixes:
      • Addressed minor issues, such as loop variable type corrections when writing signals to files.
    • Code Cleanup:
      • Removed unnecessary files (main.cpp), ensuring a cleaner codebase.
      • Improved .gitignore to streamline development processes.
    • Documentation Updates:
      • Refined README, LICENSE, and Markdown files for better readability and consistency.

Full Changelog: v2.0.0...v2.1.0

v2.0.0

26 Sep 10:40
Compare
Choose a tag to compare

Code refactoring:

  • The core modules have been rewritten (other modules will also be rewritten and new ones added);
  • Added doxygen comments;
  • Updated cmake lists;
  • Updated readme.

There are modules now (see readme for description):

  • TCore - Contains SignalProcesserException class.
  • TSignalLine - Represents a signal line composed of points with various configurable parameters. TSignalLine is responsible for managing a signal line by allocating memory for points and adjusting signal parameters. It provides methods to set and retrieve points and to validate the correctness of the signal's parameters.
  • TGenerator - Generating a signal line with specified parameters. Allows for the generation of a signal line based on configurable parameters. It provides methods to retrieve the generated signal and its parameters.
  • TFileWriter - Responsible for writing a signal line to a file. Allows saving a signal line to a file at a specified location. It uses the signal line and file path provided either directly or through parameters.
  • TGnuPlotViewer - Responsible for visualizing a signal using GnuPlot. Allows plotting a signal stored in a file using the GnuPlot tool. It is configurable through a set of parameters including the file path, GnuPlot path, and axis labels.

Full Changelog: v1.2.1...v2.0.0

v1.2.1

22 Apr 19:50
Compare
Choose a tag to compare

Added to core:

  • Added TMultiplier - multiply tow "similar" waves (using only points of the original waves)
  • Added TDerivative - returns a derivative wave (has points count less by 1 from original wave) (using only points of the original wave)
  • Added TIntegral - returns an integral wave (has points count less by 1 from original wave) (using only points of the original wave)
  • Added TAmplitudeDetector - detects amplitude of a sinus wave with noizes (using only time, samping frequency and points themselfes of a signal)
  • Added TCorrelator - detects if two waves are similar in sine frequency and returns amplitude of this as a factor of similarity (using only time, samping frequency and points themselfes of a signal)
  • Added TFourierTransform - returns fourier wave (graph where axis x is frequency; y - amplitude) (using only time, samping frequency and points themselfes of a signal)

Other

  • Fixes in TSignalWave

Full Changelog: v1.1.0...v1.2.1

v1.1.0

22 Apr 13:07
Compare
Choose a tag to compare

Added new element.

Added to core:

  • TSummator - signal summator
  • TSignalLine - added new method equals(TSignalLine*): basic comparing two signal if they are approximately equal (using inaccury const); used in TSummator

Other

  • Some fixes

Full Changelog: v1.0.0...v1.1.0

v1.0.0

22 Apr 03:04
Compare
Choose a tag to compare

Added basic functionality.

Added to "core":

  • TGenerator - generates a sine wave
  • TGenerator: added addNoise - adds noise to a wave (not a "true" noise right now)
  • TSignalLine - a sine wave class with methods and struct to base work with (set(...), add(...), etc.)

Added to "io":

  • TFileWriter - writes a sine wave x and y coordinates to a file