LibreVNA/Software/VNA_embedded/Application/Communication
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
..
Communication.cpp interrupt safe USB send function 2022-08-21 22:20:59 +02:00
Communication.h WIP: device synchronization 2022-08-07 03:01:22 +02:00
PacketConstants.h replace USB protocol literals with named constants 2022-11-29 00:44:27 -08:00
Protocol.cpp option to restore default values of device configuration 2025-11-15 19:22:15 +01:00
Protocol.hpp add Correlated Double Sampling (CDS) support 2026-01-31 23:47:02 +13:00