Releases: ilvoron/SignalProcessorCpp
Releases · ilvoron/SignalProcessorCpp
v2.1.0
Key Updates:
-
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.
-
New Functional Modules:
TSummator
: Added a new module that allows the summation of signal lines.- Introduced
equals
method inTSignalLine
to compare signals. - Further optimizations for performance and memory usage.
- Introduced
TMultiplier
: Introduced a multiplier module similar toTSummator
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.
-
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
2π
).
TGnuPlotViewer
: Updated for better visualization capabilities.
-
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.
- Removed unnecessary files (
- Documentation Updates:
- Refined README, LICENSE, and Markdown files for better readability and consistency.
- Bug Fixes:
Full Changelog: v2.0.0...v2.1.0
v2.0.0
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
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
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
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