InformationTheory

InformationTheory.Shannon.AWGN.AchievabilityCodeExistence

source

AWGN achievability assembly #

The assembled achievability statement for the AWGN channel coding theorem (Cover–Thomas): combining the random Gaussian codebook, the joint-typicality decoder and union bound, the power-constraint witness, and worst-half expurgation into the existence of good (M, n) codes for any rate below the Gaussian capacity.

Main statements #

Achievability assembly #

theorem

InformationTheory.Shannon.AWGN.errorEvent_jointTypicalDecoder_comp_subset_of_strictMono

source
{n M M_target : } [NeZero M] [NeZero M_target] (A : Set ((Fin n) × (Fin n))) (c : Fin MFin n) (reindex : Fin M_targetFin M) (hreindex_strictMono : StrictMono reindex) (j : Fin M_target) :
{ encoder := fun (i : Fin M_target) => c (reindex i), decoder := jointTypicalDecoder A fun (i : Fin M_target) => c (reindex i) }.errorEvent j { encoder := c, decoder := jointTypicalDecoder A c }.errorEvent (reindex j)

The assembled AWGN achievability statement: for any rate R below the Gaussian capacity and any ε > 0, there is a threshold N₀ such that for every n ≥ N₀ there is an (M, n) code (with M ≥ ⌈exp(nR)⌉) whose maximal per-message error probability over the AWGN channel is below ε.

The assembly combines a strictly smaller slack variance P' from awgnPowerWitness_exists, a typicality slack δ := (C−R)/12 for the union-bound margin R'' + 3δ < C, the typical set and its two AEP bounds from continuousAepGaussian_holds P' N, the per-message error bound from awgn_random_coding_union_bound P' N h_meas, and the power constraint from the per-codeword expurgation bound awgnPowerConstraintPerCodeword_holds P' P N.

The strict witness hP'_pos : 0 < P' (from awgnPowerWitness_exists) + hN are supplied to awgn_random_coding_union_bound. @audit:ok

Used by
    theorem

    InformationTheory.Shannon.AWGN.awgn_errorEvent_aemeasurable

    source
    {n M : } [NeZero M] (P' : ) (N : NNReal) (h_meas : IsAwgnChannelMeasurable N) (A : Set ((Fin n) × (Fin n))) (hA_meas : MeasurableSet A) (m : Fin M) :
    AEMeasurable (fun (c : Fin MFin n) => (MeasureTheory.Measure.pi fun (i : Fin n) => (awgnChannel N h_meas) (c m i)) ({ encoder := c, decoder := jointTypicalDecoder A c }.errorEvent m)) (gaussianCodebook M n P'.toNNReal)
    Used by
      theorem

      InformationTheory.Shannon.AWGN.awgn_subcodebook_errorEvent_le

      source
      {n M M_target : } [NeZero M] [NeZero M_target] (N : NNReal) (h_meas : IsAwgnChannelMeasurable N) (A : Set ((Fin n) × (Fin n))) (c_full : Fin MFin n) (reindex : Fin M_targetFin M) (hreindex_strictMono : StrictMono reindex) {b : ENNReal} (hfull : ∀ (j : Fin M_target), (MeasureTheory.Measure.pi fun (i : Fin n) => (awgnChannel N h_meas) (c_full (reindex j) i)) ({ encoder := c_full, decoder := jointTypicalDecoder A c_full }.errorEvent (reindex j)) b) (j : Fin M_target) :
      (MeasureTheory.Measure.pi fun (i : Fin n) => (awgnChannel N h_meas) (c_full (reindex j) i)) ({ encoder := fun (i : Fin M_target) => c_full (reindex i), decoder := jointTypicalDecoder A fun (i : Fin M_target) => c_full (reindex i) }.errorEvent j) b
      Used by
        theorem

        InformationTheory.Shannon.AWGN.awgn_exists_codebook_combined_penalty

        source
        {n M : } [NeZero M] (P P' : ) (N : NNReal) (h_meas : IsAwgnChannelMeasurable N) (A : Set ((Fin n) × (Fin n))) (hA_meas : MeasurableSet A) (hM_ge_two : 2 M) {ε_rand ε_pow ε_d2 : } (hε_rand_nonneg : 0 ε_rand) (hε_pow_pos : 0 < ε_pow) (hε_d2_pos : 0 < ε_d2) (h_slack_eq : 2 * ε_rand + ε_pow = 2 * ε_d2) (h4_lt_one : 4 * ε_d2 < 1) (h_per_m : ∀ (m : Fin M), ∫⁻ (c : Fin MFin n), (MeasureTheory.Measure.pi fun (i : Fin n) => (awgnChannel N h_meas) (c m i)) ({ encoder := c, decoder := jointTypicalDecoder A c }.errorEvent m) gaussianCodebook M n P'.toNNReal ENNReal.ofReal (2 * ε_rand)) (h_viol_mass : ∀ (m : Fin M), (gaussianCodebook M n P'.toNNReal) {c : Fin MFin n | n * P < i : Fin n, c m i ^ 2} ENNReal.ofReal ε_pow) :
        ∃ (c_full : Fin MFin n) (S : Finset (Fin M)), M / 2 S.card (∀ sS, (MeasureTheory.Measure.pi fun (i : Fin n) => (awgnChannel N h_meas) (c_full s i)) ({ encoder := c_full, decoder := jointTypicalDecoder A c_full }.errorEvent s) ENNReal.ofReal (4 * ε_d2)) sS, i : Fin n, c_full s i ^ 2 n * P
        Used by
          theorem

          InformationTheory.Shannon.AWGN.awgn_capacity_inflatedRate_lt

          source
          {P P' R'' : } {N : NNReal} (hP'_pos : 0 < P') (hP'_lt_P : P' P) (hN_pos : 0 < N) (hR''_lt_C : R'' < 1 / 2 * Real.log (1 + P' / N)) :
          R'' < 1 / 2 * Real.log (1 + P / N)
          Used by
            theorem

            InformationTheory.Shannon.AWGN.isAwgnTypicalityHypothesis

            source
            (P : ) (hP : 0 < P) (N : NNReal) (hN : N 0) (h_meas : IsAwgnChannelMeasurable N) {R : } :
            0 < RR < 1 / 2 * Real.log (1 + P / N)∀ {ε : }, 0 < ε∃ (N₀ : ), ∀ (n : ), N₀ n∃ (M : ) (_ : Real.exp (n * R)⌉₊ M) (c : AwgnCode M n P), ∀ (m : Fin M), (c.toCode.errorProbAt (awgnChannel N h_meas) m).toReal < ε
            Used by