Skip to content

feat: add psd simulator - #92

Merged
gabrielfrasantos merged 3 commits into
mainfrom
feature/add-psd-simulator
Mar 19, 2026
Merged

feat: add psd simulator#92
gabrielfrasantos merged 3 commits into
mainfrom
feature/add-psd-simulator

Conversation

@gabrielfrasantos

Copy link
Copy Markdown
Contributor

No description provided.

@github-actions

github-actions Bot commented Mar 19, 2026

Copy link
Copy Markdown
Contributor

⚠️MegaLinter analysis: Success with warnings

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ ACTION actionlint 5 0 0 0.08s
✅ CPP clang-format 140 1 0 0 0.66s
✅ CPP cppcheck 140 0 0 5.03s
✅ DOCKERFILE hadolint 1 0 0 0.08s
✅ JSON jsonlint 8 0 0 0.41s
✅ JSON prettier 8 8 0 0 0.64s
⚠️ MARKDOWN markdownlint 23 2 57 0 2.3s
✅ MARKDOWN markdown-table-formatter 23 2 0 0 0.28s
⚠️ SPELL lychee 103 21 0 1.39s
✅ YAML prettier 12 6 0 0 0.81s
✅ YAML yamllint 12 0 0 0.75s

Detailed Issues

⚠️ SPELL / lychee - 21 errors
[ERROR] file://doc/analysis/doc/analysis/DctFlow.svg | Cannot find file
[ERROR] file://doc/analysis/doc/analysis/DctBasis.svg | Cannot find file
[IGNORED] url.https://github.com/.insteadOf | Unsupported: Error creating request client: builder error for url (url.https://github.com/.insteadOf)
[ERROR] https://gitlab-ci-token/ | Network error: error sending request for url (https://gitlab-ci-token/) Maybe a certificate error?
[403] https://gitlab.com/embedded-library/infrastructure/embedded-infra-lib.git | Network error: Forbidden
[403] https://gitlab.com/embedded-library/infrastructure/hal-st.git | Network error: Forbidden
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/15 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/9 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/12 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/26 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/7 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/13 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/2 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/4 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/24 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/27 | Network error: Not Found
[403] https://developer.arm.com/documentation/100166/latest/ | Network error: Forbidden
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/18 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/1 | Network error: Not Found
[403] https://developer.arm.com/documentation/dui0473/latest | Network error: Forbidden
[403] https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$ | Network error: Forbidden
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/6 | Network error: Not Found
📝 Summary
---------------------
🔍 Total...........93
✅ Successful......63
⏳ Timeouts.........0
🔀 Redirected.......0
👻 Excluded.........8
❓ Unknown..........0
🚫 Errors..........21

Errors in doc/analysis/DiscreteCosineTransform.md
[ERROR] file://doc/analysis/doc/analysis/DctBasis.svg | Cannot find file
[ERROR] file://doc/analysis/doc/analysis/DctFlow.svg | Cannot find file

Errors in doc/performance-optimization/README.md
[403] https://developer.arm.com/documentation/100166/latest/ | Network error: Forbidden
[403] https://developer.arm.com/documentation/dui0473/latest | Network error: Forbidden

Errors in .github/workflows/static-analysis.yml
[403] https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$ | Network error: Forbidden

Errors in CHANGELOG.md
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/7 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/2 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/26 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/13 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/24 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/27 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/15 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/18 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/9 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/4 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/1 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/6 | Network error: Not Found
[404] https://github.com/embedded-pro/embedded-numerical-toolbox/issues/12 | Network error: Not Found

Errors in .gitlab-ci.yml
[ERROR] https://gitlab-ci-token/ | Network error: error sending request for url (https://gitlab-ci-token/) Maybe a certificate error?
[403] https://gitlab.com/embedded-library/infrastructure/embedded-infra-lib.git | Network error: Forbidden
[403] https://gitlab.com/embedded-library/infrastructure/hal-st.git | Network error: Forbidden
⚠️ MARKDOWN / markdownlint - 57 errors
doc/analysis/DiscreteCosineTransform.md:34 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/analysis/DiscreteCosineTransform.md:53 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/analysis/FastFourierTransform.md:9 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/analysis/FastFourierTransform.md:15 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/analysis/FastFourierTransform.md:42 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/analysis/FastFourierTransform.md:125 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/analysis/PowerDensitySpectrum.md:22 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/analysis/PowerDensitySpectrum.md:37 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/controllers/Lqr.md:25 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/controllers/Lqr.md:37 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/controllers/Lqr.md:49 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/controllers/Lqr.md:55 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/controllers/Lqr.md:61 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/controllers/Lqr.md:130 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/controllers/Pid.md:11 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/controllers/Pid.md:32 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/estimators/LinearRegression.md:24 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/estimators/LinearRegression.md:39 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/estimators/LinearRegression.md:247 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/estimators/LinearRegression.md:256 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/estimators/YuleWalker.md:26 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/estimators/YuleWalker.md:41 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/estimators/YuleWalker.md:47 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/estimators/YuleWalker.md:242 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/estimators/YuleWalker.md:250 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/estimators/YuleWalker.md:260 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/filters/active/KalmanFilter.md:9 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/filters/active/KalmanFilter.md:27 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/filters/active/KalmanFilter.md:35 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/filters/active/KalmanFilter.md:41 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/neural_network/losses/Loss.md:364:93 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
doc/neural_network/losses/Loss.md:364:125 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
doc/neural_network/losses/Loss.md:365:97 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
doc/neural_network/losses/Loss.md:365:128 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
doc/neural_network/losses/Loss.md:366:96 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
doc/neural_network/losses/Loss.md:366:127 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
doc/neural_network/losses/Loss.md:367:96 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
doc/neural_network/losses/Loss.md:367:132 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
doc/neural_network/losses/Loss.md:368:96 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
doc/neural_network/losses/Loss.md:368:128 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
doc/neural_network/NeuralNetwork.md:32 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/neural_network/NeuralNetwork.md:49 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/solvers/DiscreteAlgebraicRiccatiEquation.md:9 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/solvers/DiscreteAlgebraicRiccatiEquation.md:24 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/solvers/DiscreteAlgebraicRiccatiEquation.md:38 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/solvers/DiscreteAlgebraicRiccatiEquation.md:44 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/solvers/GaussianElimination.md:9 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/solvers/GaussianElimination.md:28 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/solvers/GaussianElimination.md:34 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/solvers/GaussianElimination.md:42 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/solvers/GaussianElimination.md:52 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/solvers/LevinsonDurbin.md:25 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/solvers/LevinsonDurbin.md:43 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/solvers/LevinsonDurbin.md:220 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
doc/solvers/LevinsonDurbin.md:233 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
README.md:1 error MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "[![Quality Gate Status](https:..."]
README.md:9:401 error MD013/line-length Line length [Expected: 400; Actual: 442]

See detailed reports in MegaLinter artifacts

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@9.4.0 --custom-flavor-setup --custom-flavor-linters ACTION_ACTIONLINT,CPP_CPPCHECK,CPP_CLANG_FORMAT,DOCKERFILE_HADOLINT,JSON_JSONLINT,JSON_PRETTIER,MARKDOWN_MARKDOWNLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER,SPELL_LYCHEE,YAML_PRETTIER,YAML_YAMLLINT

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

Comment thread .vscode/launch.json

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Qt-based Power Spectral Density (PSD) simulator application to the simulator/analysis suite, while factoring out shared simulator utilities and enhancing the existing FFT simulator UI/feature set.

Changes:

  • Introduce a new PSD simulator (application + Qt view) wired into the simulator build.
  • Add simulator/utils library (shared SignalGenerator + TwiddleFactorsTable) and migrate FFT simulator to use it.
  • Enhance FFT simulator with selectable windowing and updated chart rendering/layout.

Reviewed changes

Copilot reviewed 29 out of 29 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
simulator/utils/TwiddleFactorsTable.hpp Move twiddle-factor helper into simulator::utils namespace for reuse.
simulator/utils/SignalGenerator.hpp Add shared signal/noise generation API for simulator apps.
simulator/utils/SignalGenerator.cpp Implement deterministic signal + optional white Gaussian noise generation.
simulator/utils/CMakeLists.txt Add numerical.simulator.utils library target.
simulator/analysis/PowerDensitySpectrum/view/PsdMainWindow.hpp Add PSD simulator main window definition.
simulator/analysis/PowerDensitySpectrum/view/PsdMainWindow.cpp Implement main window layout and compute workflow/error handling.
simulator/analysis/PowerDensitySpectrum/view/PsdConfigurationPanel.hpp Add UI panel interface for PSD configuration input.
simulator/analysis/PowerDensitySpectrum/view/PsdConfigurationPanel.cpp Implement PSD configuration UI (segment/window/overlap/noise/components).
simulator/analysis/PowerDensitySpectrum/view/PsdChartWidget.hpp Add PSD chart widget interface for time-domain + PSD plots.
simulator/analysis/PowerDensitySpectrum/view/PsdChartWidget.cpp Implement custom painting for signal + PSD visualization.
simulator/analysis/PowerDensitySpectrum/view/CMakeLists.txt Add Qt view library target for PSD simulator.
simulator/analysis/PowerDensitySpectrum/application/PsdSimulator.hpp Add PSD simulator application API (config/result/types).
simulator/analysis/PowerDensitySpectrum/application/PsdSimulator.cpp Implement PSD computation via numerical PSD + FFT + windowing.
simulator/analysis/PowerDensitySpectrum/application/CMakeLists.txt Add PSD application library target and link required deps.
simulator/analysis/PowerDensitySpectrum/Main.cpp Add PSD simulator executable entry point.
simulator/analysis/PowerDensitySpectrum/CMakeLists.txt Add PSD simulator executable + Qt dependency wiring.
simulator/analysis/FastFourierTransform/view/FftMainWindow.cpp Adjust FFT simulator default window size.
simulator/analysis/FastFourierTransform/view/FftConfigurationPanel.hpp Add window selection UI control member.
simulator/analysis/FastFourierTransform/view/FftConfigurationPanel.cpp Add window selection UI and propagate window choice to config.
simulator/analysis/FastFourierTransform/view/FftChartWidget.hpp Extend FFT chart widget state for time-domain + windowed signal display.
simulator/analysis/FastFourierTransform/view/FftChartWidget.cpp Redesign FFT visualization (time + frequency charts, grid, legend).
simulator/analysis/FastFourierTransform/application/SignalGenerator.hpp Remove FFT-local signal generator (replaced by simulator/utils).
simulator/analysis/FastFourierTransform/application/SignalGenerator.cpp Remove FFT-local signal generator implementation.
simulator/analysis/FastFourierTransform/application/FftSimulator.hpp Use shared SignalGenerator; add WindowType + richer FftResult.
simulator/analysis/FastFourierTransform/application/FftSimulator.cpp Apply windowing before FFT; switch to shared twiddle factors.
simulator/analysis/FastFourierTransform/application/CMakeLists.txt Link windowing + utils; stop compiling removed local generator/twiddle files.
simulator/analysis/CMakeLists.txt Add PSD simulator subdirectory.
simulator/CMakeLists.txt Add simulator utils subdirectory.
.vscode/launch.json Split launch configs into FFT + PSD; adjust program paths.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread simulator/utils/SignalGenerator.cpp
Comment thread .vscode/launch.json
Comment thread .vscode/launch.json
@sonarqubecloud

Copy link
Copy Markdown

@gabrielfrasantos
gabrielfrasantos merged commit 3399820 into main Mar 19, 2026
8 checks passed
This was referenced Mar 18, 2026
@gabrielfrasantos
gabrielfrasantos deleted the feature/add-psd-simulator branch March 24, 2026 21:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants