LibreVNA/Software/PC_Application/LibreVNA-GUI
Roger Henderson 0b571688a9 add Correlated Double Sampling (CDS) support
Implements CDS to reduce noise by taking multiple measurements at
different source PLL phase offsets and combining with cosine weighting.

Firmware changes (VNA.cpp, Protocol.hpp):
- Add cdsPhases field to SweepSettings (0=disabled, 2-7=phase count)
- Configure N internal sweep points per user point with phase offsets
- Accumulate weighted samples: result = Σ(sample[k] × cos(2π×k/N))
- Per-stage accumulators for multi-stage measurements

PC application changes:
- Add "CDS" checkbox to VNA acquisition toolbar
- When enabled, sets cdsPhases=2 for 180° differential measurement
- Tooltip explains the feature

With 180° CDS (2 samples):
- Sample at 0°: weight = cos(0°) = 1
- Sample at 180°: weight = cos(180°) = -1
- Combined result = Sample₀ - Sample₁₈₀

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 23:47:02 +13:00
..
Calibration bugfix: capture by reference 2025-12-09 13:43:21 +01:00
CustomWidgets accept enter key along with return key when setting values 2025-11-05 10:41:56 +01:00
Device add Correlated Double Sampling (CDS) support 2026-01-31 23:47:02 +13:00
Generator decouple RST settings from startup settings 2024-05-01 13:33:18 +02:00
icons keep original trace data when de-embedding, toggle de-embedding view for individual traces 2022-12-11 20:37:29 +01:00
resources add icon for macOS (#298) 2025-03-05 07:58:10 +01:00
SpectrumAnalyzer only set idle when mode is active 2025-12-09 12:26:45 +01:00
Tools general Y parameters 2025-02-21 15:17:04 +01:00
Traces Improve marker handling when at the edge of a graph 2025-11-15 19:03:41 +01:00
Util Interpolate calibration with magnitude/phase instead of real/imag 2025-02-26 08:54:45 +01:00
VNA add Correlated Double Sampling (CDS) support 2026-01-31 23:47:02 +13:00
about.cpp Move project, add simple test 2022-10-01 17:10:44 +02:00
about.h Move project, add simple test 2022-10-01 17:10:44 +02:00
aboutdialog.ui Move project, add simple test 2022-10-01 17:10:44 +02:00
appwindow.cpp remember last used load/save paths in preferences 2025-06-23 16:39:18 +02:00
appwindow.h improve GUI synchronization for compound device 2025-05-04 13:01:00 +02:00
averaging.cpp implementation of OPC/WAI 2024-04-07 14:11:04 +02:00
averaging.h implementation of OPC/WAI 2024-04-07 14:11:04 +02:00
csv.cpp Move project, add simple test 2022-10-01 17:10:44 +02:00
csv.h Move project, add simple test 2022-10-01 17:10:44 +02:00
fixMacDylibs.sh Fix deployment 2023-12-17 19:07:46 -08:00
icons.qrc keep original trace data when de-embedding, toggle de-embedding view for individual traces 2022-12-11 20:37:29 +01:00
json.hpp removed warning, updated lohmann::json, fix qt6 static assertion error 2023-03-27 00:13:01 +02:00
LibreVNA-GUI.pro move to dedicated driver 2025-11-17 16:38:02 +01:00
main.cpp moved USB/packet log into LibreVNA driver, cleanup old device class 2023-02-12 21:43:51 +01:00
main.ui Import/export options in file menu 2024-09-16 20:56:02 +02:00
mode.cpp only set idle when mode is active 2025-12-09 12:26:45 +01:00
mode.h Import/export options in file menu 2024-09-16 20:56:02 +02:00
modehandler.cpp new feature: changing the name of modes 2025-05-12 17:04:23 +02:00
modehandler.h new feature: changing the name of modes 2025-05-12 17:04:23 +02:00
modewindow.cpp new feature: changing the name of modes 2025-05-12 17:04:23 +02:00
modewindow.h new feature: changing the name of modes 2025-05-12 17:04:23 +02:00
preferences.cpp move to dedicated driver 2025-11-17 16:38:02 +01:00
preferences.h Add image saving to SVG format 2025-11-12 15:14:37 +02:00
preferencesdialog.ui option to prevent electronic calibrations while LibreCAL temperature unstable 2025-06-24 08:50:43 +02:00
resources.qrc Move project, add simple test 2022-10-01 17:10:44 +02:00
savable.cpp use native OS dialogs by default for load/save 2024-11-03 12:54:16 +01:00
savable.h removed warning, updated lohmann::json, fix qt6 static assertion error 2023-03-27 00:13:01 +02:00
scpi.cpp bugfix: capture by reference 2025-12-09 13:43:21 +01:00
scpi.h prevent copying/moving of SCPINode objects 2025-12-09 11:50:56 +01:00
screenshot.cpp Add image saving to SVG format 2025-11-12 15:14:37 +02:00
screenshot.h Add image saving to SVG format 2025-11-12 15:14:37 +02:00
streamingserver.cpp fix streaming server output for zero span sweeps 2025-04-16 19:55:21 +02:00
streamingserver.h fix streaming server output for zero span sweeps 2025-04-16 19:55:21 +02:00
tcpserver.cpp Add SCPI command to read/write the preferences 2024-06-20 14:40:06 +02:00
tcpserver.h Add SCPI command to read/write the preferences 2024-06-20 14:40:06 +02:00
touchstone.cpp improve touchstone parsing robustness 2023-02-10 11:41:53 +01:00
touchstone.h Move project, add simple test 2022-10-01 17:10:44 +02:00
unit.cpp Minor UI improvememts 2025-11-05 09:19:02 +01:00
unit.h Fixing variable initializations part 1 2022-10-23 20:34:20 +02:00