InformationTheory

InformationTheory.Shannon.ParallelGaussian.Basic

source

Parallel Gaussian channels and water-filling #

The capacity of n parallel AWGN channels Y_i = X_i + Z_i, Z_i ∼ 𝒩(0, N_i) (i : Fin n) under the total power constraint βˆ‘_i E[X_iΒ²] ≀ P, and its water-filling solution (Cover–Thomas).

Main definitions #

Main statements #

Implementation notes #

  • parallelGaussianChannel is defined directly as toFun x := Measure.pi (fun i ↦ gaussianReal (x i) (N i)), matching the conclusion form of Measure.pi_pi; its measurability is supplied as the hypothesis IsParallelGaussianKernelMeasurable N.
  • waterFillingPower uses max 0 (Ξ½ - N_i), matching max_eq_left / max_eq_right / le_max_left.
  • The power constraint uses the lower integral βˆ‘_i ∫⁻ ofReal ((x i)Β²) βˆ‚p ≀ ofReal P rather than the Bochner βˆ‘_i ∫ (x i)Β² βˆ‚p ≀ P. Bochner ∫ returns 0 on a non-integrable integrand, so the naive Bochner constraint would admit heavy-tailed inputs with infinite second moment; the lower integral forces genuine integrability of every (x i)Β².

References #

  • T. M. Cover and J. A. Thomas, Elements of Information Theory (2nd ed.), Wiley, 2006.

Parallel Gaussian channel kernel #

def

InformationTheory.Shannon.ParallelGaussian.IsParallelAwgnChannelMeasurable

source
{n : β„•} (N : Fin n β†’ NNReal) :

Per-coordinate AWGN measurability hypothesis, bundled over Fin n.

Equations
Instances For
    Used by
      def

      InformationTheory.Shannon.ParallelGaussian.IsParallelGaussianKernelMeasurable

      source
      {n : β„•} (N : Fin n β†’ NNReal) :

      Measurability of the parallel kernel map x : Fin n β†’ ℝ ↦ Measure.pi (fun i ↦ gaussianReal (x i) (N i)), supplied as a hypothesis.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        Used by
          noncomputable def

          InformationTheory.Shannon.ParallelGaussian.parallelGaussianChannel

          source
          {n : β„•} (N : Fin n β†’ NNReal) (h_meas : IsParallelAwgnChannelMeasurable N) (h_parallel_meas : IsParallelGaussianKernelMeasurable N) :
          ChannelCoding.Channel (Fin n β†’ ℝ) (Fin n β†’ ℝ)

          The parallel Gaussian channel kernel: on input x : Fin n β†’ ℝ the output y : Fin n β†’ ℝ has y i = x i + z i with z i ∼ 𝒩(0, N i) independent across coordinates. The output law is the product measure Measure.pi (fun i ↦ gaussianReal (x i) (N i)).

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            Used by
              theorem

              InformationTheory.Shannon.ParallelGaussian.parallelGaussianChannel_apply

              source
              @[simp]
              {n : β„•} (N : Fin n β†’ NNReal) (h_meas : IsParallelAwgnChannelMeasurable N) (h_parallel_meas : IsParallelGaussianKernelMeasurable N) (x : Fin n β†’ ℝ) :
              (parallelGaussianChannel N h_meas h_parallel_meas) x = MeasureTheory.Measure.pi fun (i : Fin n) => ProbabilityTheory.gaussianReal (x i) (N i)
              Used by
                instance

                InformationTheory.Shannon.ParallelGaussian.parallelGaussianChannel.instIsMarkovKernel

                source
                {n : β„•} (N : Fin n β†’ NNReal) (h_meas : IsParallelAwgnChannelMeasurable N) (h_parallel_meas : IsParallelGaussianKernelMeasurable N) :

                parallelGaussianChannel N is a Markov kernel (each fiber is a product of probability measures, hence itself a probability measure).

                Used by

                  Water-filling power allocation #

                  noncomputable def

                  InformationTheory.Shannon.ParallelGaussian.waterFillingPower

                  source
                  {n : β„•} (Ξ½ : ℝ) (N : Fin n β†’ NNReal) :
                  Fin n β†’ ℝ

                  The water-filling power allocation: for water level Ξ½ : ℝ and noise vector N : Fin n β†’ ℝβ‰₯0, coordinate i is allocated max(0, Ξ½ - N_i).

                  Equations
                  Instances For
                    Used by
                      theorem

                      InformationTheory.Shannon.ParallelGaussian.waterFillingPower_apply

                      source
                      @[simp]
                      {n : β„•} (Ξ½ : ℝ) (N : Fin n β†’ NNReal) (i : Fin n) :
                      waterFillingPower Ξ½ N i = max 0 (Ξ½ - ↑(N i))
                      Used by
                        theorem

                        InformationTheory.Shannon.ParallelGaussian.waterFillingPower_nonneg

                        source
                        {n : β„•} (Ξ½ : ℝ) (N : Fin n β†’ NNReal) (i : Fin n) :
                        Used by
                          theorem

                          InformationTheory.Shannon.ParallelGaussian.waterFillingPower_eq_zero_of_inactive

                          source
                          {n : β„•} (Ξ½ : ℝ) (N : Fin n β†’ NNReal) (i : Fin n) (h : Ξ½ ≀ ↑(N i)) :
                          waterFillingPower Ξ½ N i = 0

                          An inactive coordinate (Ξ½ ≀ N_i) is allocated zero power.

                          Used by

                            Parallel Gaussian capacity #

                            def

                            InformationTheory.Shannon.ParallelGaussian.parallelGaussianPowerConstraintSet

                            source
                            {n : β„•} (P : ℝ) :

                            The parallel power constraint set: probability measures with total per-coordinate second moment ≀ P, in lower-integral form βˆ‘_i ∫⁻ ofReal ((x i)Β²) βˆ‚p ≀ ofReal P. Multivariate analogue of AWGN.awgnPowerConstraintSet. The lower-integral form forces each ∫⁻ ofReal ((x i)Β²) < ∞, hence genuine integrability of every coordinate (x i)Β² (a Bochner ∫ constraint would spuriously admit heavy-tailed inputs with infinite second moment).

                            @audit:ok

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              Used by
                                theorem

                                InformationTheory.Shannon.ParallelGaussian.parallelGaussianPowerConstraintSet_mem_iff_integrable

                                source
                                {n : β„•} (P : ℝ) (hP : 0 ≀ P) (p : MeasureTheory.Measure (Fin n β†’ ℝ)) (hp : p ∈ parallelGaussianPowerConstraintSet P) :
                                (βˆ€ (i : Fin n), MeasureTheory.Integrable (fun (x : Fin n β†’ ℝ) => x i ^ 2) p) ∧ βˆ‘ i : Fin n, ∫ (x : Fin n β†’ ℝ), x i ^ 2 βˆ‚p ≀ P

                                Membership in parallelGaussianPowerConstraintSet P (lintegral form) yields both the genuine per-coordinate integrability of (x i)Β² and the Bochner total second-moment bound βˆ‘_i ∫ (x i)Β² βˆ‚p ≀ P. Multivariate analogue of AWGN.awgnPowerConstraintSet_mem_iff_integrable; the lintegral constraint carries the regularity (Integrable (fun x ↦ (x i)Β²) p) the Bochner form alone cannot supply. @audit:ok

                                Used by
                                  noncomputable def

                                  InformationTheory.Shannon.ParallelGaussian.parallelGaussianCapacity

                                  source
                                  {n : β„•} (P : ℝ) (N : Fin n β†’ NNReal) (h_meas : IsParallelAwgnChannelMeasurable N) (h_parallel_meas : IsParallelGaussianKernelMeasurable N) :

                                  The power-constrained parallel Gaussian capacity: the supremum of the mutual information I(p; parallelGaussianChannel N) over inputs p in parallelGaussianPowerConstraintSet P.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    Used by

                                      Water-filling KKT, optimality, and per-coordinate reduction predicates #

                                      def

                                      InformationTheory.Shannon.ParallelGaussian.IsWaterFillingKKT

                                      source
                                      {n : β„•} (P : ℝ) (N : Fin n β†’ NNReal) (Ξ½ : ℝ) :

                                      The water-filling KKT condition: the water level Ξ½ uses up the total budget, βˆ‘_i max(0, Ξ½ - N_i) = P. For the unconstrained water-filling problem this characterizes the KKT-optimal Lagrange multiplier (a unique such Ξ½ exists by the intermediate value theorem).

                                      Equations
                                      Instances For
                                        Used by
                                          def

                                          InformationTheory.Shannon.ParallelGaussian.IsWaterFillingOptimal

                                          source
                                          {n : β„•} (P : ℝ) (N : Fin n β†’ NNReal) (Ξ½ : ℝ) :

                                          Water-filling optimality: the water-filling allocation P_i^* = max(0, Ξ½ - N_i) maximizes the per-coordinate sum βˆ‘ (1/2) log(1 + P_i/N_i) subject to P_i β‰₯ 0, βˆ‘ P_i ≀ P.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            Used by
                                              def

                                              InformationTheory.Shannon.ParallelGaussian.IsParallelGaussianPerCoordReduction

                                              source
                                              {n : β„•} (P : ℝ) (N : Fin n β†’ NNReal) (h_meas : IsParallelAwgnChannelMeasurable N) (h_parallel_meas : IsParallelGaussianKernelMeasurable N) (Ξ½ : ℝ) :

                                              The per-coordinate water-filling reduction: the parallel Gaussian capacity equals the per-coordinate water-filling sum βˆ‘_i (1/2) log(1 + max(0, Ξ½ - N_i) / N_i).

                                              This predicate is the capacity equality itself, so it is intended to be derived (not taken as a hypothesis).

                                              See also isParallelGaussianPerCoordReduction_of_kkt.

                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                Used by

                                                  Active set #

                                                  noncomputable def

                                                  InformationTheory.Shannon.ParallelGaussian.waterFillingActiveSet

                                                  source
                                                  {n : β„•} (Ξ½ : ℝ) (N : Fin n β†’ NNReal) :

                                                  The active set of coordinates (those with N_i < Ξ½), allocated positive water-filling power.

                                                  Equations
                                                  Instances For
                                                    Used by
                                                      theorem

                                                      InformationTheory.Shannon.ParallelGaussian.mem_waterFillingActiveSet

                                                      source
                                                      @[simp]
                                                      {n : β„•} (Ξ½ : ℝ) (N : Fin n β†’ NNReal) (i : Fin n) :
                                                      i ∈ waterFillingActiveSet Ξ½ N ↔ ↑(N i) < Ξ½
                                                      Used by