Computing with hybrid couplers and phase shifters #
A network made of hybrid couplers and phase shifters, interconnected through interconnections
and permutation networks, and connected in series and in parallel, is represented by its
transmission scattering matrix (Network n).
Main definitions #
interconnection,phaseShifter,hybridCoupler,permutationNetwork: the components.series,parallel: series and parallel connection of two networks.Implementable: the networks obtainable from the components by series and parallel connections.phaseDiagonal: the diagonal matrixdiag(exp(j φ₁), …, exp(j φₙ)).block: the 2 × 2 blockD(θ₁₁, θ₁₂, θ₂₁), implementable with one hybrid coupler and three phase shifters.blockDiagonal: the block diagonal matrix ofCblocksD(θ₁₁⁽ᶜ⁾, θ₁₂⁽ᶜ⁾, θ₂₁⁽ᶜ⁾)andSphasesexp(j φₛ).Layer: a layerP_ℓ D_ℓ, made of a block diagonal matrixD_ℓand a permutation matrixP_ℓ.layered: the productP_L D_L ⋯ P_1 D_1 P_0of layers and an initial permutation matrix.dft: theN × Ndiscrete Fourier transform (DFT) matrix.
Main results #
implementable_iff_layered: a network is implementable if and only if its transmission scattering matrix isP_L D_L ⋯ P_1 D_1 P_0, for some permutation matricesP_ℓand block diagonal matricesD_ℓ.implementable_dft: theN × NDFT, withN = 2^L, is implementable.
A hybrid coupler, with transmission scattering matrix (1/√2) [[j, 1], [1, j]].
Equations
Instances For
A network implementable with hybrid couplers, interconnections, phase shifters, and permutation networks.
- ic : Implementable interconnection
An interconnection is implementable.
- ps
(φ : ℝ)
: Implementable (phaseShifter φ)
A phase shifter is implementable.
- pn
{n : ℕ}
(σ : Equiv.Perm (Fin n))
: Implementable (permutationNetwork σ)
A permutation network is implementable.
- hc : Implementable hybridCoupler
A hybrid coupler is implementable.
- series
{n : ℕ}
{A B : Network n}
: Implementable A → Implementable B → Implementable (MiLAC.series A B)
The series of two implementable networks is implementable.
- parallel
{n m : ℕ}
{A : Network n}
{B : Network m}
: Implementable A → Implementable B → Implementable (MiLAC.parallel A B)
The parallel of two implementable networks is implementable.
Instances For
Preliminary lemmas #
Permutation matrices multiply anti-homomorphically: P_τ P_σ = P_(σ * τ).
Left-multiplying by a permutation matrix permutes the rows.
Right-multiplying by a permutation matrix permutes the columns.
The parallel of two permutation networks is a permutation network.
Two networks (possibly of syntactically different sizes) are equal up to a relabelling of their ports.
Equations
Instances For
The product of two implementable networks is implementable.
Permuting the rows and the columns of an implementable network keeps it implementable.
A matrix is implementable on its index type if a finite port relabelling gives an implementable network. The relabelling witness rules out infinite index types.
Equations
- MiLAC.HybridCouplersPhaseShifters.ImplementableOn M = ∃ (n : ℕ) (e : ι ≃ Fin n), MiLAC.HybridCouplersPhaseShifters.Implementable ((Matrix.reindex e e) M)
Instances For
An infinite collection of ports cannot be implemented by a finite network.
An implementation after one relabelling witnesses implementability.
An implementable matrix is implementable after any finite port relabelling.
For a network indexed by Fin n, ImplementableOn is Implementable.
Implementability is invariant under a relabelling of the ports.
The product of two implementable matrices is implementable.
A block diagonal matrix of two implementable matrices is implementable.
A matrix with no ports is implementable.
A block diagonal matrix with a single implementable block is implementable.
A block diagonal matrix of implementable blocks is implementable.
Relabelling the rows and the columns of an implementable matrix into Fin n independently
gives an implementable network.
Characterization of implementable networks #
The 2 × 2 block D(θ₁₁, θ₁₂, θ₂₁).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The block diagonal matrix
diag(D(θ₁₁⁽¹⁾, θ₁₂⁽¹⁾, θ₂₁⁽¹⁾), …, D(θ₁₁⁽ᶜ⁾, θ₁₂⁽ᶜ⁾, θ₂₁⁽ᶜ⁾), exp(j φ₁), …, exp(j φ_S)).
Equations
- One or more equations did not get rendered due to their size.
Instances For
A layer P_ℓ D_ℓ: a block diagonal matrix D_ℓ followed by a permutation matrix P_ℓ.
- C : ℕ
The number of blocks of
D_ℓ. - S : ℕ
The number of phases of
D_ℓ. The parameters
θ₁₁of the blocks ofD_ℓ.The parameters
θ₁₂of the blocks ofD_ℓ.The parameters
θ₂₁of the blocks ofD_ℓ.The phases of
D_ℓ.D_ℓhasnports.- σ : Equiv.Perm (Fin n)
The permutation of
P_ℓ.
Instances For
The product P_L D_L ⋯ P_1 D_1 P_0, with layers listed from L down to 1
(Matrix.reindex only renames the 2 C + S ports of D_ℓ as the n ports of the network).
Equations
- One or more equations did not get rendered due to their size.
- MiLAC.HybridCouplersPhaseShifters.layered σ₀ [] = MiLAC.permutationNetwork σ₀
Instances For
Sufficiency #
Every phase-only implementation is also an implementation with hybrid couplers available.
A diagonal matrix of phases is implementable.
A block D(θ₁₁, θ₁₂, θ₂₁) is implementable, with a phase shifter, a hybrid coupler, and
two phase shifters in series.
A block diagonal matrix is implementable.
A network admitting a layered decomposition is implementable (sufficient condition).
Necessity #
A network admits a layered decomposition.
Equations
- MiLAC.HybridCouplersPhaseShifters.IsLayered S = ∃ (σ₀ : Equiv.Perm (Fin n)) (layers : List (MiLAC.HybridCouplersPhaseShifters.Layer n)), S = MiLAC.HybridCouplersPhaseShifters.layered σ₀ layers
Instances For
A permutation network admits a layered decomposition, with no layers.
Left-multiplying a layered decomposition by a permutation matrix only changes its
outermost permutation: σ₀ (if there are no layers) or the permutation of the topmost layer
(if there are).
The series of two networks admitting a layered decomposition admits one.
A block diagonal matrix admits a layered decomposition, with one layer.
Placing an identity below a diagonal matrix of phases adds zero phases.
Placing an identity below the block diagonal matrix of a layer gives a network admitting a
layered decomposition.
Placing an identity below a network admitting a layered decomposition gives a network
admitting one.
Placing an identity above a network admitting a layered decomposition gives a network
admitting one.
The parallel of two networks admitting a layered decomposition admits one.
A phase shifter admits a layered decomposition, with one layer and a single phase.
A hybrid coupler admits a layered decomposition, with one layer and the single block
D(π/2, 0, 0).
An implementable network admits a layered decomposition (necessary condition).
Main theorem #
A network is implementable if and only if its transmission scattering matrix is
P_L D_L ⋯ P_1 D_1 P_0, for some permutation matrices P_ℓ and block diagonal matrices D_ℓ.
Discrete Fourier transform #
The N × N DFT matrix, [F_N]_{i,k} = ω^{ik} / √N with ω = exp(-j 2π / N) (indices
start from 0 here, from 1 in the paper).
Equations
Instances For
The 2 × 2 butterfly blocks of the radix-2 FFT, (1/√2) [[1, ω^i], [1, -ω^i]] with
ω = exp(-j 2π / 2^(L+1)).
Equations
Instances For
The exponential identity behind the radix-2 decomposition of the DFT.
The N × N DFT, with N = 2^L, is implementable with hybrid couplers and phase shifters
(Corollary 3 in the paper).