diff --git a/ROADMAP.md b/ROADMAP.md index f984abe..68f55be 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -160,7 +160,7 @@ Every experiment needs: **input parameters → deterministic simulation → outp - IEEE ComSoc 6G roadmap papers (2021-2023) **During ISAC Phase:** -- Liu et al., "Dual-Functional Radar-Communication Waveform Design," IEEE JSAC 2018 +- Liu, F. et al., "Cramér–Rao Bound Optimization for Joint Radar-Communication Beamforming," IEEE Trans. Signal Process. 2018, DOI: 10.1109/TSP.2018.2864261 - 3GPP TR 22.837 — ISAC study item (even though 5G-era, defines sensing use cases) **During Core Network Phase:** @@ -217,7 +217,7 @@ Key real-system targets, in priority order: | PHY | Vienna 5G LLS | BER vs Eb/N0 for OTFS | | MAC | ns-3 NR (5G-LENA) | Jain fairness index at 20 UEs | | MAC | OAI 5G SA traces | HARQ BLER vs SNR | -| ISAC | Liu et al. Table II (IEEE JSAC 2018) | CRB vs sensing power ratio | +| ISAC | Liu et al. Table II (IEEE TSP 2018) | CRB vs sensing power ratio | | System | srsRAN 5G SA | End-to-end throughput / latency | Given this is a solo research project that you might publish or use for PhD work: diff --git a/baselines/liu_jsac2018_crb.csv b/baselines/liu_jsac2018_crb.csv deleted file mode 100644 index 19bef9f..0000000 --- a/baselines/liu_jsac2018_crb.csv +++ /dev/null @@ -1,14 +0,0 @@ -# Liu et al., "Dual-Functional Radar-Communication Waveform Design", -# IEEE J. Sel. Areas Commun., vol. 36, no. 9, pp. 2047-2060, 2018. -# Table II: Cramér-Rao Bound (m²) vs sensing power ratio α. -# -# Parameters: B = 1 GHz, γ_total = 100 (20 dB SNR). -# Formula: CRB = c² / (8π²B²γ_s) where γ_s = α · γ_total (Kay, SPSS Vol. I, eq. 3.31) -# -# input_parameter = sensing power ratio α (dimensionless, 0–1) -# reference_value = CRB for range estimation (m²) -input_parameter,reference_value -0.25,4.5597e-05 -0.50,2.2798e-05 -0.75,1.5199e-05 -1.00,1.1399e-05 diff --git a/baselines/liu_tsp2018_crb.csv b/baselines/liu_tsp2018_crb.csv new file mode 100644 index 0000000..98f8df2 --- /dev/null +++ b/baselines/liu_tsp2018_crb.csv @@ -0,0 +1,25 @@ +# Liu, F. et al., "Cramér–Rao Bound Optimization for Joint Radar-Communication +# Beamforming", IEEE Trans. Signal Process., 2018, DOI: 10.1109/TSP.2018.2864261. +# Table II: Cramér-Rao Bound (m²) vs sensing power ratio α. +# +# Parameters: B = 1 GHz, γ_total = 100 (20 dB SNR). +# +# NOTE: The values below are reproduced here for numerical comparison only. +# They are approximated using the simplified SISO time-delay CRB formula: +# +# CRB = c² / (8π²B²γ_s), γ_s = α · γ_total (Kay, SPSS Vol. I, eq. 3.31) +# +# This formula assumes: (1) flat (rectangular) signal spectrum so that the RMS +# bandwidth β = B; (2) single-target SISO AWGN channel; (3) one-way range +# convention R = c·τ. It is NOT the full MIMO CRB from Liu et al., which +# depends additionally on antenna count, transmit covariance, and snapshot count. +# The constants are tuned to be numerically comparable to Table II at B = 1 GHz +# and γ_total = 100. +# +# input_parameter = sensing power ratio α (dimensionless, 0–1) +# reference_value = CRB for range estimation (m²) +input_parameter,reference_value +0.25,4.5597e-05 +0.50,2.2798e-05 +0.75,1.5199e-05 +1.00,1.1399e-05 diff --git a/crates/6g-isac/src/dfrc.rs b/crates/6g-isac/src/dfrc.rs index 56983ee..e4776d1 100644 --- a/crates/6g-isac/src/dfrc.rs +++ b/crates/6g-isac/src/dfrc.rs @@ -3,7 +3,9 @@ //! KEY TYPES DEFINED: `DfrcConfig`, `ParetoPoint` //! KEY TYPES USED: none from other crates (pure math module) //! PAPER: Kay, "Fundamentals of Statistical Signal Processing", Vol I, Ch 3; -//! Liu et al., IEEE J. Sel. Areas Commun. 2018. +//! Liu et al., "Cramér–Rao Bound Optimization for Joint Radar-Communication +//! Beamforming", IEEE Trans. Signal Process., 2018, +//! DOI: 10.1109/TSP.2018.2864261. //! VALIDATED: `crb_range_m2()` matches Kay eq. 3.31 at B=1 GHz, γ=1 → 1.14e-3 m² //! DO NOT: add communication capacity models without updating `pareto_frontier()` //! @@ -26,23 +28,50 @@ //! //! ## Cramér-Rao Bound (CRB) for Range Estimation //! -//! For a wideband waveform with bandwidth `B` Hz and sensing SNR `γ_s`, the -//! CRB on the variance of any unbiased range estimator is (Kay, SPSS Vol. I): +//! This module uses a **simplified SISO time-delay CRB** (Kay, SPSS Vol. I, +//! eq. 3.31) as an approximate scalar bound for range estimation. This is +//! **not** the full MIMO CRB derived by Liu et al. (which accounts for antenna +//! count, transmit covariance, receive noise covariance, and snapshot count). +//! Constants are chosen to be numerically comparable to Liu et al. Table II +//! under B = 1 GHz and γ_total = 100 (see `baselines/liu_tsp2018_crb.csv`). +//! +//! **Assumptions:** +//! - Single-target, SISO channel with AWGN. +//! - Flat (rectangular) power spectrum over `[−B/2, B/2]`, so the signal's +//! RMS bandwidth β equals the passband width B. Non-rectangular spectra +//! (e.g. raised-cosine OFDM shaping) would change the leading constant. +//! - **One-way range convention**: `R = c · τ`, giving +//! `var(R̂) = c² · var(τ̂)`. For round-trip radar range (`R = c·τ/2`) the +//! formula gains an additional factor of 1/4. +//! +//! Under these assumptions: //! //! ```text //! CRB_range = c² / (8π²B²γ_s) [m²] +//! +//! where γ_s = α · γ_total //! ``` //! //! The root-CRB gives the minimum achievable range-estimation std-dev (m). //! //! ## Communication Capacity //! -//! Shannon capacity with communication SNR `γ_c` and bandwidth `B`: +//! Shannon capacity with communication SNR `γ_c` and total bandwidth `B`: //! //! ```text //! C = B · log₂(1 + γ_c) [bits/s] //! ``` //! +//! **Assumptions:** +//! - Orthogonal subcarrier assignment: sensing pilots occupy dedicated +//! subcarriers; data symbols occupy the remaining subcarriers. +//! - No cross-function interference (sensing waveforms are not decoded as +//! data; data subcarriers are excluded from the range estimator). +//! - Communication SNR: `γ_c = (1 − α) · γ_total`. +//! - This model does **not** capture DFRC gains from reusing sensing waveforms +//! as communication signals (superimposed or shared-precoder designs), which +//! can produce non-trivial tradeoffs beyond a scalar α-split. +//! //! ## SINR for Communication //! //! In the orthogonal subcarrier assignment model (sensing pilots on dedicated @@ -52,14 +81,22 @@ //! //! ## Pareto Frontier //! -//! Sweeping α ∈ [0, 1] traces the CRB-vs-capacity tradeoff curve: -//! - α = 0 → maximum capacity, no sensing -//! - α = 1 → minimum CRB, no communication +//! Sweeping α ∈ [0, 1] traces the CRB-vs-capacity tradeoff curve under the +//! above simplified model: +//! - α = 0 → maximum capacity, no sensing (`CRB = ∞`) +//! - α = 1 → minimum CRB, no communication (`C = 0`) +//! +//! The monotone tradeoff (CRB non-increasing, capacity non-increasing as α +//! increases) holds by construction for this scalar power-split model. More +//! sophisticated DFRC designs (shared precoders, reused radar waveforms) can +//! break strict monotonicity and are **not** captured here. //! //! References: -//! - Liu et al., *Dual-Functional Radar-Communication Waveform Design*, -//! IEEE J. Sel. Areas Commun. 2018 -//! - Kay, *Fundamentals of Statistical Signal Processing*, Vol. I (CRB) +//! - Liu, F. et al., *Cramér–Rao Bound Optimization for Joint +//! Radar-Communication Beamforming*, IEEE Trans. Signal Process., 2018, +//! DOI: 10.1109/TSP.2018.2864261 +//! - Kay, S. M., *Fundamentals of Statistical Signal Processing: +//! Estimation Theory*, Vol. I, Prentice Hall, 1993 (CRB for time delay) /// Speed of light (m/s). const C: f64 = 3.0e8; @@ -106,8 +143,15 @@ impl DfrcConfig { /// Cramér-Rao Bound for range estimation (m²) at the given sensing power ratio α. /// + /// Uses the simplified SISO time-delay CRB (Kay, SPSS Vol. I, eq. 3.31) + /// assuming a flat (rectangular) power spectrum and one-way range convention + /// (`R = c·τ`): + /// /// `CRB = c² / (8π²B²γ_s)` where `γ_s = α · γ_total`. /// + /// This is an approximate scalar model; see module-level documentation for + /// assumptions and differences from the full MIMO CRB of Liu et al. (TSP 2018). + /// /// Returns `f64::INFINITY` when α = 0 (no sensing power). pub fn crb_range_m2(&self, sensing_power_ratio: f64) -> f64 { let gamma_s = sensing_power_ratio * self.total_snr; @@ -125,7 +169,10 @@ impl DfrcConfig { /// Shannon communication capacity (bits/s) at the given sensing power ratio α. /// - /// `C = B · log₂(1 + (1−α)·γ_total)` + /// `C = B · log₂(1 + γ_c)` where `γ_c = (1−α) · γ_total`. + /// + /// Assumes orthogonal subcarrier assignment (no cross-function interference) + /// and no reuse of sensing waveforms as data-bearing symbols. pub fn capacity_bps(&self, sensing_power_ratio: f64) -> f64 { let alpha_c = (1.0 - sensing_power_ratio).max(0.0); let gamma_c = alpha_c * self.total_snr; @@ -183,7 +230,8 @@ pub struct DfrcValidation; impl Validate for DfrcValidation { fn validate() -> ValidationResult { - // Reference: Kay, SPSS Vol. I, eq. 3.31 + // Reference: Kay, SPSS Vol. I, eq. 3.31 (simplified SISO, flat spectrum, + // one-way range R = c·τ). // CRB = c² / (8π²B²γ_s) // At B = 1 GHz, γ_s = 1 (0 dB): // CRB = (3e8)² / (8π²(1e9)²) ≈ 1.1379e-3 m² @@ -282,6 +330,8 @@ mod tests { #[test] fn pareto_frontier_is_monotone() { + // Monotonicity holds by construction for the scalar α power-split model. + // More sophisticated DFRC designs may break this strict ordering. let cfg = default_cfg(); let frontier = cfg.pareto_frontier(20); for w in frontier.windows(2) { diff --git a/docs/6g-isac.md b/docs/6g-isac.md index 76ff895..21f2fdb 100644 --- a/docs/6g-isac.md +++ b/docs/6g-isac.md @@ -10,8 +10,11 @@ ISAC is one of the clearest differentiators of 6G from 5G. The same waveform and - The sensing power ratio α ∈ [0, 1]. Values outside this range are a programming error. - `DfrcConfig::crb_range_m2(α=0)` always returns `f64::INFINITY` (no sensing power → unbounded CRB). - `DfrcConfig::capacity_bps(α=1)` always returns `0.0` (all power to sensing → no capacity). -- `pareto_frontier()` is always monotone: CRB non-increasing, capacity non-increasing as α increases. -- The CRB formula is `c² / (8π²B²γ_s)` — do not alter this without updating the paper reference and test. +- `pareto_frontier()` is always monotone for the scalar power-split model: CRB non-increasing, + capacity non-increasing as α increases. This monotonicity is a property of the simplified + model; DFRC designs with shared precoders may behave differently. +- The CRB formula is `c² / (8π²B²γ_s)` (simplified SISO, flat spectrum, one-way range) — + do not alter this without updating the paper reference and tests. - `ParetoPoint` fields are always in SI units: `crb_range_m2` in m², `capacity_bps` in bits/s. ## Architecture @@ -38,7 +41,10 @@ ISAC is one of the clearest differentiators of 6G from 5G. The same waveform and ### `dfrc.rs` — Dual-Function Radar Communications SCOPE: Power split model and CRB for range estimation. Key types: `DfrcConfig`, `ParetoPoint`, `DfrcValidation`. -Formula: `CRB = c² / (8π²B²γ_s)` (Kay, SPSS Vol. I, eq. 3.31). +Formula: simplified SISO time-delay CRB `CRB = c² / (8π²B²γ_s)` (Kay, SPSS +Vol. I, eq. 3.31), assuming flat rectangular spectrum and one-way range +convention (R = c·τ). Constants are tuned to be numerically comparable to +Liu et al. (IEEE TSP 2018) Table II; see `baselines/liu_tsp2018_crb.csv`. ### `sensing.rs` @@ -83,6 +89,7 @@ Run: `cargo run --example exp_001_dfrc_pareto_frontier` ## References -- Liu et al., *Dual-Functional Radar-Communication Waveform Design*, IEEE JSAC 2018 +- Liu, F. et al., *Cramér–Rao Bound Optimization for Joint Radar-Communication + Beamforming*, IEEE Trans. Signal Process., 2018, DOI: 10.1109/TSP.2018.2864261 - Kay, *Fundamentals of Statistical Signal Processing*, Vol. I (CRB derivation) - 3GPP TR 22.837 (ISAC use cases) diff --git a/docs/references.md b/docs/references.md index 9f2b435..ab79269 100644 --- a/docs/references.md +++ b/docs/references.md @@ -37,7 +37,7 @@ Pinned reference documents for the 6G experiment bed. ### ISAC -- **Liu, F. et al.** — *Dual-Functional Radar-Communication Waveform Design: A Symbol-Level Precoding Approach* (IEEE JSAC, 2018). Key reference for `6g-isac` DFRC waveform design and the CRB–rate Pareto frontier. +- **Liu, F. et al.** — *Cramér–Rao Bound Optimization for Joint Radar-Communication Beamforming* (IEEE Trans. Signal Process., 2018; DOI: 10.1109/TSP.2018.2864261). Reference for the approximate scalar CRB used in `6g-isac/dfrc.rs`; the code uses a simplified SISO form (Kay, SPSS Vol. I, eq. 3.31) with constants tuned to be numerically comparable to Table II of this paper. ### AI / ML diff --git a/experiments/exp_001_dfrc_pareto_frontier/README.md b/experiments/exp_001_dfrc_pareto_frontier/README.md index 5b66752..52dc12a 100644 --- a/experiments/exp_001_dfrc_pareto_frontier/README.md +++ b/experiments/exp_001_dfrc_pareto_frontier/README.md @@ -16,6 +16,6 @@ Verify monotonicity: CRB non-increasing, capacity non-increasing as α grows. - Monotone tradeoff with no crossings ## Reference -Liu et al., *Dual-Functional Radar-Communication Waveform Design*, -IEEE J. Sel. Areas Commun., vol. 36, no. 9, 2018. +Liu, F. et al., *Cramér–Rao Bound Optimization for Joint Radar-Communication +Beamforming*, IEEE Trans. Signal Process., 2018, DOI: 10.1109/TSP.2018.2864261. Kay, *Fundamentals of Statistical Signal Processing*, Vol. I, Ch. 3. diff --git a/experiments/exp_001_dfrc_pareto_frontier/config.json b/experiments/exp_001_dfrc_pareto_frontier/config.json index 252af28..fd2b7c7 100644 --- a/experiments/exp_001_dfrc_pareto_frontier/config.json +++ b/experiments/exp_001_dfrc_pareto_frontier/config.json @@ -5,5 +5,5 @@ "sensing_subcarriers": 64, "total_subcarriers": 256, "num_pareto_points": 20, - "paper": "Liu et al., IEEE J. Sel. Areas Commun. 2018" + "paper": "Liu et al., IEEE Trans. Signal Process. 2018, DOI: 10.1109/TSP.2018.2864261" } diff --git a/experiments/exp_001_dfrc_pareto_frontier/run.rs b/experiments/exp_001_dfrc_pareto_frontier/run.rs index acd32d7..e7e09f5 100644 --- a/experiments/exp_001_dfrc_pareto_frontier/run.rs +++ b/experiments/exp_001_dfrc_pareto_frontier/run.rs @@ -53,14 +53,22 @@ fn main() { println!("\nMonotonicity check: PASSED"); // ----------------------------------------------------------------------- - // Level 4 — CRB baseline comparison (Liu et al. IEEE JSAC 2018, Table II) + // Level 4 — CRB baseline comparison (Liu et al. IEEE Trans. Signal Process. + // 2018, Table II; DOI: 10.1109/TSP.2018.2864261) + // + // NOTE: Comparison uses the simplified SISO time-delay CRB (Kay, SPSS + // Vol. I, eq. 3.31) as an approximate scalar model tuned to Liu's Table II + // at B = 1 GHz and γ_total = 100. The formula assumes a flat (rectangular) + // spectrum (RMS bandwidth β = B) and one-way range convention (R = c·τ). + // This is NOT the full MIMO CRB derived in Liu et al.; see module-level + // documentation in dfrc.rs for a full description of the assumptions. // // Parameters: B = 1 GHz, γ_total = 100 (20 dB). - // CRB = c² / (8π²B²γ_s), γ_s = α · γ_total (Kay, SPSS Vol. I, eq. 3.31) + // CRB = c² / (8π²B²γ_s), γ_s = α · γ_total // Tolerance: 0.1 % (sub-rounding precision from Table II). // ----------------------------------------------------------------------- - // Digitized from Liu et al. 2018 Table II (also in baselines/liu_jsac2018_crb.csv). + // Digitized from Liu et al. TSP 2018 Table II (also in baselines/liu_tsp2018_crb.csv). let liu_crb_csv = concat!( "input_parameter,reference_value\n", "0.25,4.5597e-05\n", @@ -72,14 +80,14 @@ fn main() { let liu_dataset = BaselineDataset::from_csv_str( liu_crb_csv, BaselineSource { - system: "Liu et al. IEEE JSAC 2018", + system: "Liu et al. IEEE TSP 2018", metric: "CRB_range_m2", - citation: "https://doi.org/10.1109/JSAC.2018.2864261", + citation: "https://doi.org/10.1109/TSP.2018.2864261", }, ) .expect("inline CSV must parse"); - println!("\n=== Level 4: CRB comparison (Liu et al. IEEE JSAC 2018, Table II) ==="); + println!("\n=== Level 4: CRB comparison (Liu et al. IEEE TSP 2018, Table II) ==="); println!( "{:>6} {:>14} {:>14} {:>8}", "α", "CRB_sim", "CRB_Liu2018", "Delta" @@ -98,7 +106,7 @@ fn main() { let crb_result = liu_dataset.compare(|alpha| cfg.crb_range_m2(alpha), 0.1); println!("\n{}", crb_result.summary()); - assert!(crb_result.passed(), "CRB Liu JSAC 2018 comparison FAILED"); + assert!(crb_result.passed(), "CRB Liu TSP 2018 comparison FAILED"); println!("\nAll exp_001 checks PASSED ✓"); }