feat: add psd simulator - #92
Conversation
✅
|
| 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 |
| markdownlint | 23 | 2 | 57 | 0 | 2.3s | |
| ✅ MARKDOWN | markdown-table-formatter | 23 | 2 | 0 | 0 | 0.28s |
| 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: "[
- 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

Show us your support by starring ⭐ the repository
There was a problem hiding this comment.
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/utilslibrary (sharedSignalGenerator+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.
|



No description provided.