Kaira Logo

Getting Started

  • Introduction
    • Key Features
    • Getting Started
  • The Evolution of Communications Research
    • A Journey Through Time and Technology
    • Classical Foundations (1940s-1980s)
    • The Optimization Era (1990s-2010s)
    • The Deep Learning Revolution (2010s-Present)
    • The Kaira Framework: Accelerating Research Innovation
      • Key Capabilities and Innovations
      • Supporting Cutting-Edge Research
    • The Future Horizon
    • Joining the Research Community
      • Getting Started
      • Contributing to Kaira
      • Research Collaboration
  • Installation
    • Overview
    • Prerequisites
    • Installation Methods
      • Quick Installation
      • From Source
      • Using Virtual Environment (Recommended)
    • System-Specific Notes
      • Windows
      • macOS
      • Linux
      • GPU Acceleration
    • Verifying Installation
    • Troubleshooting
    • Uninstallation
  • Getting Started with Kaira
    • Installation
    • Basic Usage
    • Deep Learning Example
    • Next Steps
  • Examples and Tutorials
    • Models
      • Deep Joint Source-Channel Coding (DeepJSCC) Model
        • Imports and Setup
        • Creating Synthetic Data
        • Visualizing Sample Images
        • Building the DeepJSCC Model
        • Simulating Transmission
        • Visualizing Results
        • Training a DeepJSCC Model
        • Conclusion
      • Multiple Access Channel Model for Joint Encoding
        • Model Setup
        • Single Transmission Example (Fixed SNR)
        • Training a Multiple Access Channel Model (Optional - Uncomment to run)
        • Conclusion
      • Sequential Model for Modular Neural Network Design
        • Imports and Setup
        • Creating Test Data
        • Building a Basic Sequential Model
        • Using the Sequential Model
        • Visualizing Performance
        • Advanced Sequential Model with Module Replacement
        • Inspecting Intermediate Outputs
        • Creating a Custom Process Flow
        • Training Sequential Models
        • Analyzing Model Performance Across Inputs
        • Conclusion
      • Original DeepJSCC Model (Bourtsoulatze 2019)
        • Imports and Setup
        • Loading Sample Images
        • Creating the Original DeepJSCC Model
        • Testing Over AWGN Channel
        • Visualizing Reconstruction Quality
        • Comparing with Separate Source-Channel Coding
        • Testing Over Fading Channel
        • Benefit of End-to-End Training
      • Discrete Task-Oriented Deep JSCC Model (Xie 2023)
        • Loading Sample Images
        • Creating the DT-DeepJSCC Model
        • Testing Classification Performance Over Different Channels
        • Visualizing Results with Different Channel Conditions
        • Understanding the Discrete Bottleneck
        • Comparing with Standard DeepJSCC Performance
        • Benefits of Discrete Task-Oriented DeepJSCC
        • Visualizing the Modulation, Channel, and Demodulation Pipeline
        • Channel Impact on Modulated Signal
        • Comparing Different Modulation Schemes
      • Complex Projections for Wireless Communications
        • Imports and Setup
        • Understanding Complex Projections in Communications
        • Visualizing Projection Matrices
        • Column Orthogonality Analysis
        • Application: Complex Signal Projection and Reconstruction
        • Visualize Signal Compression Performance
        • Visualizing Signal Reconstruction
        • Conclusion
      • Projections and Cover Tests for Communication Systems
        • Imports and Setup
        • Understanding Projections in Communications
        • Visualizing Projection Results
        • Projection Matrices Visualization
        • Cover Test: Column/Row Distribution Analysis
        • Column Orthogonality Analysis
        • Distance Preservation Test
        • Distance Preservation by Dimensionality
        • Practical Application: Image Projection and Reconstruction
        • Conclusion
      • Attention-Feature Module (AFModule)
        • Introduction to AFModule
        • Basic Usage with 2D Tensor Input
        • Visualizing the Effect of AFModule on 2D Data
        • Using AFModule with 4D Tensor Input (Image-like data)
        • Visualizing the Effect on Image-like Data
        • The Role of AFModule in a Real Channel Model
        • Visualizing the Impact of AFModule at Different SNR Levels
        • Advanced Feature: Dynamic Adaptation
        • Conclusion
    • Forward Error Correction (FEC) Models
      • Visualizing Error Correction in Action
        • Setting up
        • Repetition Code Visualization
        • Static Visualization of the Repetition Code Process
        • Animating the Error Correction Process
        • Error Correction Capability Visualization
        • Comparison with Other Error Correction Codes
        • Interactive Decoder Visualization
        • Conclusion
      • Basic Binary Operations for FEC
        • Setting up
        • Hamming Distance
        • Visualizing Hamming Distance
        • Hamming Weight
        • Visualizing Hamming Weight with Dynamic Animations
        • Binary-Integer Conversions
        • Visualizing Binary-Integer Conversions with Interactive Elements
        • 3D Visualization of Hamming Distance Relationships
        • Conclusion
      • Block-wise Processing for FEC
        • Setting up
        • Block-wise Processing Fundamentals
        • Visualizing Block-wise Operations
        • Complex Block Operations
        • Error Detection with Parity
        • Visualizing Error Detection
        • Using apply_blockwise for Multi-return Functions
        • Advanced Example: Systematic Encoding
        • Hamming Code Error Correction
        • Visualizing Hamming Code Error Correction
        • Conclusion
      • FEC Decoders Tutorial
        • Helper Functions
      • Introduction to FEC Decoding
      • Part 1: Basic FEC Decoding Concepts
        • Repetition Code with Majority Logic Decoding
        • Single Parity Check Decoding
      • Part 2: Hard-Decision vs. Soft-Decision Decoding
        • Soft-Decision Decoding with Wagner’s Algorithm
      • Part 3: Syndrome-Based Decoding
        • Hamming Code with Syndrome Lookup Decoding
      • Part 4: Advanced Algebraic Decoders
        • BCH Code with Berlekamp-Massey Algorithm
        • BCH Code with Berlekamp-Massey Algorithm (Extended Example)
      • Part 5: Maximum Likelihood Decoding
        • Brute Force Maximum Likelihood Decoder
      • Part 6: Performance Evaluation
        • Performance Comparison in AWGN Channel
        • Plot BER results
        • Plot FER results
        • Conclusion
      • Visualizing the FEC Decoding Process
        • Setting up
        • Syndrome Decoding for Hamming Codes
        • Creating a Step-by-Step Visualization of Syndrome Decoding
        • Visualizing Soft Decision Decoding
        • Visualizing LDPC Decoding with Belief Propagation
        • Visualizing Turbo Code Decoding
        • Visualizing the Tradeoff between Hard and Soft Decision Decoding
        • Conclusion
      • FEC Encoders Tutorial
        • Helper Functions
      • Part 1: Basic Block Codes
        • Repetition Code
        • Single Parity Check Code
      • Part 2: Linear Block Codes
        • Hamming Code
        • Custom Linear Block Code
      • Part 3: Cyclic Codes and BCH Codes
        • Cyclic Code
        • BCH Code
        • Golay Code
      • Part 4: Reed-Solomon Codes
        • Reed-Solomon Code
      • Part 5: Advanced Features
        • Systematic Encoding
        • Batch Processing
      • Part 6: Performance Evaluation
        • Comparing Code Rates
        • Conclusion
      • Finite Field Algebra for FEC Codes
        • Setting up
        • Binary Polynomials
        • Basic Operations
        • Polynomial Evaluation
        • Visualizing Polynomial Operations
        • Finite Fields (Galois Fields)
        • Field Arithmetic
        • Visualizing Finite Field Elements
        • Minimal Polynomials
        • Trace Function
        • Application: Reed-Solomon Code Construction
        • Encoding Process Visualization
        • Error Simulation and Syndrome Calculation
        • Conclusion
      • LDPC Coding and Belief Propagation Decoding
        • Setting up
        • LDPC Code Fundamentals
        • Visualizing the Parity-Check Matrix
        • Communication System Setup
        • Simulating Communication at Different SNR Levels
        • Performance Analysis
        • Single Message Example
        • Visualizing the Transmission Process
        • Conclusion
      • Interactive FEC Code Comparison for Real-World Applications
        • Setting up
        • Visualizing Real-World FEC Applications
        • Visualizing FEC Code Performance Across Channel Conditions
        • Visualizing FEC Overhead in Practical Applications
        • Visualizing FEC Performance with Different Error Patterns
        • Conclusion
      • Syndrome Decoding Visualization
        • Setting Up Visualization Environment
        • Introducing Syndrome Decoding
        • Visualizing the Hamming Code Matrix Structure
        • Encoding and Channel Simulation
        • Visualizing the Encoding and Channel Transmission
        • Visualizing the Channel Transmission and Errors
        • Syndrome Decoding Process
        • Visualizing the Syndrome Computation and Decoding Process
        • Testing Error Correction Capabilities
        • Visualizing Error Correction Performance
        • Conclusion
    • Channel Models
      • Simulating AWGN Channels with Kaira
        • Imports and Setup
        • Create Sample Signal
        • Create AWGN Channels with Different SNR Levels
        • Pass Signal Through AWGN Channels
        • Visualize the Results
        • Compare Theoretical and Measured SNR Values
        • Calculate Mean Squared Error (MSE)
        • Plot SNR vs MSE
        • Conclusion
      • Impulsive Noise with Laplacian Channel
        • Imports and Setup
        • Generate Sample Signal
        • Create Channels with Different Noise Distributions
        • Pass Signal Through Channels
        • Visualize Noise Distribution Differences
        • Analyze Noise Distribution
        • Impact on Error Metrics
        • Conclusion
      • Phase Noise Effects on Signal Constellations
        • Imports and Setup
        • Generate QAM Constellation
        • Create Transmission with Multiple Phase Noise Levels
        • Simulate Transmission with Phase Noise
        • Visualize Phase Noise Effects
        • Analyze Phase Error Statistics
        • Symbol Error Rate Analysis
        • Conclusion
      • Digital Binary Channels in Kaira
        • Imports and Setup
        • Generate Binary Data
        • Binary Symmetric Channel (BSC)
        • Binary Erasure Channel (BEC)
        • Binary Z-Channel
        • Visualizing Channel Effects
        • Comparing Error Rates Across Channels
        • Channel Transition Matrices
        • Conclusion
      • Fading Channels in Wireless Communications
        • Imports and Setup
        • Generate QPSK Signal
        • Define Channel Scenarios
        • Pass Signal Through Channels
        • Visualize Channel Effects on Constellation
        • Symbol Amplitude Distribution
        • Effect of SNR on Symbol Error Rate in Fading Channels
        • Plot SER vs. SNR
        • Visualizing Time-Varying Fading
        • Power Spectral Density of Fading Process
        • Conclusion
      • Nonlinear Channel Distortion Effects
        • Imports and Setup
        • Define Nonlinear Transfer Functions
        • Generate Test Signals
        • Apply Different Nonlinear Distortions
        • Visualize Time-Domain Distortion Effects
        • Frequency-Domain Analysis
        • AM/AM and AM/PM Characteristics
        • Effect of Nonlinearities on Digital Modulation
        • Predistortion to Compensate Nonlinearities
        • Conclusion
      • Composing Multiple Channel Effects
        • Imports and Setup
        • Channel Composition in Kaira
        • Generate a QAM Signal for Testing
        • Define Individual Channel Effects
        • Compose Channel Effects
        • Visualize Channel Effects on Constellation
        • Analyze Symbol Error Rate
        • Sweep Parameter Combinations
        • Create a heatmap of SER vs. parameters
        • Time-Varying Channel Example
        • Analyze Time-Varying Effects
        • Creating a Custom Composite Channel Class
        • Conclusion
      • Poisson Channel for Signal-Dependent Noise
        • Imports and Setup
        • Create Test Images
        • Define Channel Models
        • Process Test Image Through Channels
        • Visualize Noise Characteristics
        • Analyze Signal-Dependent Noise
        • Plot Signal Profiles and Noise
        • Signal-to-Noise Ratio Analysis
        • Application to Digital Transmission
        • Bit Error Rate Analysis
        • Conclusion
      • Channel Comparison
        • Imports and Setup
        • Creating Input Data
        • Channel Setup
        • Visualizing Channel Effects
        • Visualizing Continuous Data Results
        • Visualizing Binary Data Results
        • Creating a Heatmap Visualization of Channel Reliability
        • 3D Visualization of Channel Characteristics
        • Constellation Visualization
        • Conclusion
    • Constraints
      • Understanding Basic Power Constraints in Kaira
        • Imports and Setup
        • Create Sample Signals
        • Apply Total Power Constraint
        • Visualize Total Power Constraint Results
        • Apply PAPR Constraint
        • Visualize PAPR Constraint Results
        • Apply Average Power Constraint
        • Compare the Effects of Different Constraints
        • Conclusion
      • Composing Constraints for Complex Signal Requirements
        • Imports and Setup
        • Creating a Test Signal with Challenging Properties
        • Manual Constraint Composition
        • Using the combine_constraints Utility
        • Visualizing the Effect of Constraint Composition
        • Using apply_constraint_chain with Verbose Output
        • Using Factory Functions for Common Constraint Combinations
        • Creating and Visualizing a Spectral Mask Constraint
        • Combining All Constraints Together
        • Conclusion
      • Practical Applications of Constraints in Wireless Communication Systems
        • Imports and Setup
        • Part 1: OFDM System Constraints
        • OFDM Signal Analysis
        • Applying OFDM Constraints
        • Visualizing OFDM Constraint Effects
        • Verify OFDM Constraint Effectiveness
        • Part 2: MIMO System Constraints
        • Applying MIMO Constraints
        • Visualizing MIMO Constraint Effects
        • Adding Spectral Constraints to MIMO
        • Part 3: Real-world Application - Complete OFDM Transmitter Constraints
        • Applying Transmitter Constraints
        • Final Visualization and Analysis
        • Conclusion
    • Data Generation and Correlation Models
      • Data Generation Utilities
        • Imports and Setup
        • 1. Basic Tensor Generation
        • Visualizing the generated tensors
        • 2. Controlling the Probability in Binary Tensors
        • 3. Using Dataset Classes for Batch Processing
        • Visualizing dataset samples
        • 4. Creating a Mini-Batch Loader
        • 5. Practical Use Case: Channel Coding Simulation
        • Conclusion
      • Correlation Models for Data Generation
        • Imports and Setup
        • 1. Introduction to Wyner-Ziv Correlation Models
        • 2. Gaussian Correlation Model
        • Visualizing Gaussian Correlation
        • Visualizing the Statistical Dependence
        • 3. Binary Symmetric Channel Correlation
        • Visualizing Binary Correlation
        • 4. Custom Correlation Models
        • Visualizing Custom Correlation
        • 5. Using the WynerZivCorrelationDataset
        • Visualizing Dataset Samples
        • 6. Application: Distributed Source Coding Simulation
        • Visualizing Joint Distribution
        • Conclusion
    • Modulation
      • Phase-Shift Keying (PSK) Modulation
        • Imports and Setup
        • Generate Random Binary Data
        • Create Modulators and Demodulators
        • Plot Constellation Diagrams
        • Simulate Transmission over AWGN Channel
        • Plot BER vs SNR
        • Visualize Effect of Noise
        • Conclusion
      • Higher-Order PSK Modulation
        • Imports and Setup
        • Create PSK Modulators with Different Orders
        • Generate Test Data and Modulate
        • Visualize Constellation Diagrams
        • Compare Symbol Distance
        • Performance in AWGN Channel
        • Effect of Noise on Constellations
        • Soft Demodulation
        • Efficiency vs. Performance Trade-off
        • Conclusion
      • Quadrature Amplitude Modulation (QAM)
        • Imports and Setup
        • Create QAM Modulators with Different Orders
        • Plot Constellation Diagrams
        • Simulate Transmission over AWGN Channel
        • Plot BER vs SNR Performance
        • Visualize Effect of Noise on 16-QAM
        • Spectral Efficiency Comparison
        • Conclusion
      • Higher-Order QAM Modulation
        • Imports and Setup
        • Create QAM Modulators with Different Orders
        • Generate Test Data and Modulate
        • Visualize Constellation Diagrams
        • Understanding Symbol Mapping
        • Performance in AWGN Channel
        • Effect of Noise on Constellations
        • Hard vs. Soft Demodulation
        • Efficiency vs. Performance Trade-off
        • QAM Applications in Real-world Systems
        • Conclusion
      • Pulse Amplitude Modulation (PAM)
        • Imports and Setup
        • Create PAM Modulators with Different Orders
        • Visualize PAM Constellations
        • Simulate Transmission over AWGN Channel
        • Plot BER vs SNR Performance
        • Visualize Effect of Noise on PAM-8
        • Compare Spectral Efficiency vs Power Efficiency
        • Conclusion
      • Ï€/4-QPSK Modulation
        • Imports and Setup
        • Generate Random Binary Data
        • Create Ï€/4-QPSK Modulator and Demodulator
        • Visualize Ï€/4-QPSK Constellation
        • Visualize Phase Transitions
        • Performance in AWGN Channel
        • Performance in Fading Channels
        • Envelope Characteristics
        • Conclusion
      • Offset QPSK Modulation
        • Imports and Setup
        • Generate Random Binary Data
        • Create Modulators and Demodulators
        • Visualize Constellations
        • Visualize Symbol Transitions
        • Visualize Phase and Amplitude Properties
        • Performance in AWGN Channel
        • Effect of Noise on Constellation
        • Conclusion
      • Differential Phase-Shift Keying (DPSK)
        • Imports and Setup
        • Generate Test Data and Create Modulators
        • Visualize Phase Transitions
        • Compare Performance in AWGN and Fading Channels
        • Plot BER Performance Comparison
        • Visualize Phase Recovery
        • Conclusion
      • Modulation Schemes Comparison
        • Imports and Setup
        • Create Different Modulators and Demodulators
        • Plot Constellation Diagrams
        • Compare Symbol Energy Distribution
        • Compare BER Performance
        • Compare Spectral Efficiency and Power Requirements
        • Conclusion
      • Modulation Schemes for Digital Communication Systems
        • Introduction to Digital Modulation
        • Calculating Bit Error Rate (BER) for Different Schemes
        • BER Performance Visualization
        • Visualizing the Effects of Noise on Modulation Schemes
        • 3D Visualization of Soft Decision Boundaries
        • Spectral Efficiency Comparison
        • SNR Requirements for Target BER
        • Spectral Efficiency vs. Power Efficiency Tradeoff
        • Dynamic Modulation Selection Based on Channel Conditions
        • Simulating a Time-Varying Channel with Adaptive Modulation
        • Conclusion and Key Takeaways
      • Detailed Topics
        • PSK Modulation
        • QAM Modulation
        • PAM Modulation
        • Specialized PSK Variants
        • Differential Modulation
        • Modulation Comparison
    • Performance Metrics
      • Signal and Error Rate Metrics
        • Initialize Metrics
        • 1. Basic Metric Usage
        • 2. Block Error Rate (BLER) and Frame Error Rate (FER)
        • 3. Symbol Error Rate (SER) with QAM Modulation
        • 4. Evaluating Communication System Performance
        • 5. Block Error Rate vs SNR
        • 6. Comparing Multiple Metrics on the Same System
        • Conclusion
      • Image Quality Metrics
        • Create different types of distortions
        • Initialize metrics
        • Evaluate metrics on different distortions
        • Visualize results
        • Interpreting the Results
      • Creating Custom Metrics
        • Imports and Setup
        • 1. Creating a Simple Custom Metric
        • 2. Creating a Parameterized Custom Metric
        • 3. Creating a More Complex Custom Metric
        • 4. Application-Specific Custom Metric
        • 5. Metric that Implements a Communication Standard
        • Conclusion
      • Composite Metrics
        • Imports and Setup
        • 1. Creating a Composite Metric
        • 2. Weighted Composite Metrics
        • 3. Visualizing Metric Trade-offs
        • 4. Creating a Custom Composite Metric for Image Quality
        • 5. Evaluating Multiple Distortions
        • Conclusion
      • Metrics Registry
        • 1. Basic Registry Usage
        • 2. Using Registered Metrics
        • 3. Creating and Registering Custom Metrics
        • 4. Parameterized Metrics
        • 5. Evaluating Multiple Metrics
        • 6. Dynamic Metric Creation
        • Conclusion
      • Signal and Error Rate Metrics
      • Image Quality Metrics
      • Custom Metrics
      • Composite Metrics
      • Metrics Registry
    • Loss Functions
      • Text Losses for NLP Tasks
      • Image Losses for Image Quality Assessment
      • Audio Losses for Speech and Music Quality
      • Multimodal Losses for Cross-Modal Learning
      • Adversarial Losses for GANs
    • Utility Functions
      • Channel Capacity Analysis with Kaira
        • Import necessary libraries
        • Initialize the Capacity Analyzer
        • Define SNR range and create channel models
        • Conclusions: Key Insights from Capacity Analysis
        • Performance Optimization Techniques
        • Summary of Runtime Performance
        • Further Reading
      • Detailed Topics
        • Capacity Analysis

API Documentation

  • Kaira API Reference
    • Overview
    • Base Components
      • kaira.channels.BaseChannel
        • BaseChannel
      • kaira.constraints.BaseConstraint
        • BaseConstraint
      • kaira.metrics.BaseMetric
        • BaseMetric
      • kaira.models.BaseModel
        • BaseModel
      • kaira.modulations.BaseModulator
        • BaseModulator
      • kaira.modulations.BaseDemodulator
        • BaseDemodulator
      • kaira.losses.BaseLoss
        • BaseLoss
    • Channels
      • kaira.channels.AWGNChannel
        • AWGNChannel
      • kaira.channels.BaseChannel
        • BaseChannel
      • kaira.channels.BinaryErasureChannel
        • BinaryErasureChannel
      • kaira.channels.BinarySymmetricChannel
        • BinarySymmetricChannel
      • kaira.channels.BinaryZChannel
        • BinaryZChannel
      • kaira.channels.ChannelRegistry
        • ChannelRegistry
      • kaira.channels.FlatFadingChannel
        • FlatFadingChannel
      • kaira.channels.GaussianChannel
        • GaussianChannel
      • kaira.channels.IdealChannel
        • IdealChannel
      • kaira.channels.IdentityChannel
        • IdentityChannel
      • kaira.channels.LambdaChannel
        • LambdaChannel
      • kaira.channels.LaplacianChannel
        • LaplacianChannel
      • kaira.channels.LogNormalFadingChannel
        • LogNormalFadingChannel
      • kaira.channels.NonlinearChannel
        • NonlinearChannel
      • kaira.channels.PerfectChannel
        • PerfectChannel
      • kaira.channels.PhaseNoiseChannel
        • PhaseNoiseChannel
      • kaira.channels.PoissonChannel
        • PoissonChannel
      • kaira.channels.RayleighFadingChannel
        • RayleighFadingChannel
      • kaira.channels.RicianFadingChannel
        • RicianFadingChannel
    • Constraints
      • kaira.constraints.AveragePowerConstraint
        • AveragePowerConstraint
      • kaira.constraints.BaseConstraint
        • BaseConstraint
      • kaira.constraints.CompositeConstraint
        • CompositeConstraint
      • kaira.constraints.ConstraintRegistry
        • ConstraintRegistry
      • kaira.constraints.IdentityConstraint
        • IdentityConstraint
      • kaira.constraints.LambdaConstraint
        • LambdaConstraint
      • kaira.constraints.PAPRConstraint
        • PAPRConstraint
      • kaira.constraints.PeakAmplitudeConstraint
        • PeakAmplitudeConstraint
      • kaira.constraints.PerAntennaPowerConstraint
        • PerAntennaPowerConstraint
      • kaira.constraints.SpectralMaskConstraint
        • SpectralMaskConstraint
      • kaira.constraints.TotalPowerConstraint
        • TotalPowerConstraint
      • Utils
        • kaira.constraints.utils.apply_constraint_chain
        • kaira.constraints.utils.combine_constraints
        • kaira.constraints.utils.create_mimo_constraints
        • kaira.constraints.utils.create_ofdm_constraints
        • kaira.constraints.utils.measure_signal_properties
        • kaira.constraints.utils.verify_constraint
    • Metrics
      • kaira.metrics.BaseMetric
        • BaseMetric
      • kaira.metrics.CompositeMetric
        • CompositeMetric
      • kaira.metrics.MetricRegistry
        • MetricRegistry
      • Image
        • kaira.metrics.image.LPIPS
        • kaira.metrics.image.LearnedPerceptualImagePatchSimilarity
        • kaira.metrics.image.MultiScaleSSIM
        • kaira.metrics.image.PSNR
        • kaira.metrics.image.PeakSignalNoiseRatio
        • kaira.metrics.image.SSIM
        • kaira.metrics.image.StructuralSimilarityIndexMeasure
      • Signal
        • kaira.metrics.signal.BER
        • kaira.metrics.signal.BLER
        • kaira.metrics.signal.BitErrorRate
        • kaira.metrics.signal.BlockErrorRate
        • kaira.metrics.signal.FER
        • kaira.metrics.signal.FrameErrorRate
        • kaira.metrics.signal.SER
        • kaira.metrics.signal.SNR
        • kaira.metrics.signal.SignalToNoiseRatio
        • kaira.metrics.signal.SymbolErrorRate
    • Models
      • kaira.models.BaseModel
        • BaseModel
      • kaira.models.ChannelCodeModel
        • ChannelCodeModel
      • kaira.models.ConfigurableModel
        • ConfigurableModel
      • kaira.models.DeepJSCCModel
        • DeepJSCCModel
      • kaira.models.FeedbackChannelModel
        • FeedbackChannelModel
      • kaira.models.ModelRegistry
        • ModelRegistry
      • kaira.models.MultipleAccessChannelModel
        • MultipleAccessChannelModel
      • kaira.models.WynerZivModel
        • WynerZivModel
      • Soft Bit Thresholding
        • kaira.models.binary.soft_bit_thresholding.AdaptiveThresholder
        • kaira.models.binary.soft_bit_thresholding.DynamicThresholder
        • kaira.models.binary.soft_bit_thresholding.FixedThresholder
        • kaira.models.binary.soft_bit_thresholding.HysteresisThresholder
        • kaira.models.binary.soft_bit_thresholding.InputType
        • kaira.models.binary.soft_bit_thresholding.LLRThresholder
        • kaira.models.binary.soft_bit_thresholding.MinDistanceThresholder
        • kaira.models.binary.soft_bit_thresholding.OutputType
        • kaira.models.binary.soft_bit_thresholding.RepetitionSoftBitDecoder
        • kaira.models.binary.soft_bit_thresholding.SoftBitEnsembleThresholder
        • kaira.models.binary.soft_bit_thresholding.SoftBitThresholder
        • kaira.models.binary.soft_bit_thresholding.WeightedThresholder
      • Components
        • kaira.models.components.AFModule
        • kaira.models.components.ConvDecoder
        • kaira.models.components.ConvEncoder
        • kaira.models.components.MLPDecoder
        • kaira.models.components.MLPEncoder
        • kaira.models.components.Projection
        • kaira.models.components.ProjectionType
      • Decoders
    • Decoders
    • Examples
      • kaira.models.fec.decoders.BaseBlockDecoder
        • BaseBlockDecoder
      • kaira.models.fec.decoders.BeliefPropagationDecoder
        • BeliefPropagationDecoder
      • kaira.models.fec.decoders.BerlekampMasseyDecoder
        • BerlekampMasseyDecoder
      • kaira.models.fec.decoders.BruteForceMLDecoder
        • BruteForceMLDecoder
      • kaira.models.fec.decoders.ReedMullerDecoder
        • ReedMullerDecoder
      • kaira.models.fec.decoders.SyndromeLookupDecoder
        • SyndromeLookupDecoder
      • kaira.models.fec.decoders.WagnerSoftDecisionDecoder
        • WagnerSoftDecisionDecoder
      • Encoders
        • kaira.models.fec.encoders.BCHCodeEncoder
        • kaira.models.fec.encoders.BaseBlockCodeEncoder
        • kaira.models.fec.encoders.CyclicCodeEncoder
        • kaira.models.fec.encoders.GolayCodeEncoder
        • kaira.models.fec.encoders.HammingCodeEncoder
        • kaira.models.fec.encoders.LDPCCodeEncoder
        • kaira.models.fec.encoders.LinearBlockCodeEncoder
        • kaira.models.fec.encoders.ReedSolomonCodeEncoder
        • kaira.models.fec.encoders.RepetitionCodeEncoder
        • kaira.models.fec.encoders.SingleParityCheckCodeEncoder
        • kaira.models.fec.encoders.SystematicLinearBlockCodeEncoder
      • Generic
        • kaira.models.generic.BranchingModel
        • kaira.models.generic.IdentityModel
        • kaira.models.generic.LambdaModel
        • kaira.models.generic.ParallelModel
        • kaira.models.generic.SequentialModel
      • Image
        • kaira.models.image.Bourtsoulatze2019DeepJSCCDecoder
        • kaira.models.image.Bourtsoulatze2019DeepJSCCEncoder
        • kaira.models.image.DeepJSCCFeedbackDecoder
        • kaira.models.image.DeepJSCCFeedbackEncoder
        • kaira.models.image.DeepJSCCFeedbackModel
        • kaira.models.image.Tung2022DeepJSCCQ2Decoder
        • kaira.models.image.Tung2022DeepJSCCQ2Encoder
        • kaira.models.image.Tung2022DeepJSCCQDecoder
        • kaira.models.image.Tung2022DeepJSCCQEncoder
        • kaira.models.image.Xie2023DTDeepJSCCDecoder
        • kaira.models.image.Xie2023DTDeepJSCCEncoder
        • kaira.models.image.Yilmaz2023DeepJSCCNOMADecoder
        • kaira.models.image.Yilmaz2023DeepJSCCNOMAEncoder
        • kaira.models.image.Yilmaz2023DeepJSCCNOMAModel
        • kaira.models.image.Yilmaz2024DeepJSCCWZConditionalDecoder
        • kaira.models.image.Yilmaz2024DeepJSCCWZConditionalEncoder
        • kaira.models.image.Yilmaz2024DeepJSCCWZDecoder
        • kaira.models.image.Yilmaz2024DeepJSCCWZEncoder
        • kaira.models.image.Yilmaz2024DeepJSCCWZModel
        • kaira.models.image.Yilmaz2024DeepJSCCWZSmallDecoder
        • kaira.models.image.Yilmaz2024DeepJSCCWZSmallEncoder
      • Compressors
        • kaira.models.image.compressors.BPGCompressor
        • kaira.models.image.compressors.NeuralCompressor
    • Modulations
      • kaira.modulations.BPSKDemodulator
        • BPSKDemodulator
      • kaira.modulations.BPSKModulator
        • BPSKModulator
      • kaira.modulations.BaseDemodulator
        • BaseDemodulator
      • kaira.modulations.BaseModulator
        • BaseModulator
      • kaira.modulations.DBPSKDemodulator
        • DBPSKDemodulator
      • kaira.modulations.DBPSKModulator
        • DBPSKModulator
      • kaira.modulations.DPSKDemodulator
        • DPSKDemodulator
      • kaira.modulations.DPSKModulator
        • DPSKModulator
      • kaira.modulations.DQPSKDemodulator
        • DQPSKDemodulator
      • kaira.modulations.DQPSKModulator
        • DQPSKModulator
      • kaira.modulations.IdentityDemodulator
        • IdentityDemodulator
      • kaira.modulations.IdentityModulator
        • IdentityModulator
      • kaira.modulations.ModulationRegistry
        • ModulationRegistry
      • kaira.modulations.OQPSKDemodulator
        • OQPSKDemodulator
      • kaira.modulations.OQPSKModulator
        • OQPSKModulator
      • kaira.modulations.PAMDemodulator
        • PAMDemodulator
      • kaira.modulations.PAMModulator
        • PAMModulator
      • kaira.modulations.PSKDemodulator
        • PSKDemodulator
      • kaira.modulations.PSKModulator
        • PSKModulator
      • kaira.modulations.Pi4QPSKDemodulator
        • Pi4QPSKDemodulator
      • kaira.modulations.Pi4QPSKModulator
        • Pi4QPSKModulator
      • kaira.modulations.QAMDemodulator
        • QAMDemodulator
      • kaira.modulations.QAMModulator
        • QAMModulator
      • kaira.modulations.QPSKDemodulator
        • QPSKDemodulator
      • kaira.modulations.QPSKModulator
        • QPSKModulator
      • Utils
        • kaira.modulations.utils.binary_array_to_gray
        • kaira.modulations.utils.binary_to_gray
        • kaira.modulations.utils.calculate_spectral_efficiency
        • kaira.modulations.utils.calculate_theoretical_ber
        • kaira.modulations.utils.gray_array_to_binary
        • kaira.modulations.utils.gray_to_binary
        • kaira.modulations.utils.plot_constellation
    • Losses
      • kaira.losses.BaseLoss
        • BaseLoss
      • kaira.losses.CompositeLoss
        • CompositeLoss
      • kaira.losses.LossRegistry
        • LossRegistry
      • Adversarial
        • kaira.losses.adversarial.FeatureMatchingLoss
        • kaira.losses.adversarial.HingeLoss
        • kaira.losses.adversarial.LSGANLoss
        • kaira.losses.adversarial.R1GradientPenalty
        • kaira.losses.adversarial.VanillaGANLoss
        • kaira.losses.adversarial.WassersteinGANLoss
      • Audio
        • kaira.losses.audio.AudioContrastiveLoss
        • kaira.losses.audio.FeatureMatchingLoss
        • kaira.losses.audio.L1AudioLoss
        • kaira.losses.audio.LogSTFTMagnitudeLoss
        • kaira.losses.audio.MelSpectrogramLoss
        • kaira.losses.audio.MultiResolutionSTFTLoss
        • kaira.losses.audio.STFTLoss
        • kaira.losses.audio.SpectralConvergenceLoss
      • Image
        • kaira.losses.image.CombinedLoss
        • kaira.losses.image.FocalLoss
        • kaira.losses.image.GradientLoss
        • kaira.losses.image.L1Loss
        • kaira.losses.image.LPIPSLoss
        • kaira.losses.image.MSELPIPSLoss
        • kaira.losses.image.MSELoss
        • kaira.losses.image.MSSSIMLoss
        • kaira.losses.image.PSNRLoss
        • kaira.losses.image.SSIMLoss
        • kaira.losses.image.StyleLoss
        • kaira.losses.image.TotalVariationLoss
        • kaira.losses.image.VGGLoss
      • Multimodal
        • kaira.losses.multimodal.AlignmentLoss
        • kaira.losses.multimodal.CMCLoss
        • kaira.losses.multimodal.ContrastiveLoss
        • kaira.losses.multimodal.InfoNCELoss
        • kaira.losses.multimodal.TripletLoss
      • Text
        • kaira.losses.text.CosineSimilarityLoss
        • kaira.losses.text.CrossEntropyLoss
        • kaira.losses.text.LabelSmoothingLoss
        • kaira.losses.text.Word2VecLoss
    • Data
      • kaira.data.BinaryTensorDataset
        • BinaryTensorDataset
      • kaira.data.UniformTensorDataset
        • UniformTensorDataset
      • kaira.data.WynerZivCorrelationDataset
        • WynerZivCorrelationDataset
      • kaira.data.create_binary_tensor
        • create_binary_tensor()
        • Examples using kaira.data.create_binary_tensor
      • kaira.data.create_uniform_tensor
        • create_uniform_tensor()
        • Examples using kaira.data.create_uniform_tensor
      • kaira.data.load_sample_images
        • load_sample_images()
        • Examples using kaira.data.load_sample_images
    • Utils
      • kaira.utils.CapacityAnalyzer
        • CapacityAnalyzer
      • kaira.utils.add_noise_for_snr
        • add_noise_for_snr()
      • kaira.utils.calculate_num_filters_factor_image
        • calculate_num_filters_factor_image()
      • kaira.utils.calculate_snr
        • calculate_snr()
      • kaira.utils.estimate_signal_power
        • estimate_signal_power()
      • kaira.utils.noise_power_to_snr
        • noise_power_to_snr()
      • kaira.utils.snr_db_to_linear
        • snr_db_to_linear()
      • kaira.utils.snr_linear_to_db
        • snr_linear_to_db()
      • kaira.utils.snr_to_noise_power
        • snr_to_noise_power()
        • Examples using kaira.utils.snr_to_noise_power
      • kaira.utils.to_tensor
        • to_tensor()
      • Snr
        • kaira.utils.snr.add_noise_for_snr
        • kaira.utils.snr.calculate_snr
        • kaira.utils.snr.estimate_signal_power
        • kaira.utils.snr.noise_power_to_snr
        • kaira.utils.snr.snr_db_to_linear
        • kaira.utils.snr.snr_linear_to_db
        • kaira.utils.snr.snr_to_noise_power

Additional Information

  • Quick Links
    • Support
  • Frequently Asked Questions
    • How can I contribute to this project?
    • I found a bug. What should I do?
    • How do I request a new feature?
    • What versions of Python are supported?
    • Where can I find the documentation?
    • I need help with installing or using Kaira. Where should I ask?
    • Can I use Kaira for commercial purposes?
    • Have more questions?
  • Best Practices
    • General Guidelines
    • Performance Optimization
    • Common Pitfalls
  • References
  • License
  • Changelog
    • Version 0.1.0 (01/03/2025)
  • Citing Kaira

Build & Maintenance

  • Contributing
    • Types of Contributions
    • Getting Started with Development
    • Development Workflow
    • Pull Request Checklist
    • Versioning
    • Next Steps
  • Contributor Covenant Code of Conduct
    • Our Pledge
    • Our Standards
    • Enforcement Responsibilities
    • Scope
    • Enforcement
    • Enforcement Guidelines
    • Attribution
  • Makefile Documentation
    • Introduction
    • File Location
    • Usage
    • Overview
    • Targets in Detail
      • help
      • clean
      • clean-logs
      • format
      • sync
      • test
      • test-full
      • lint
      • coverage
      • deploy
      • build-docs
      • build-readme
    • Common Use Cases
    • Development Workflow Example
  • Building Documentation
    • Additional Tips
Kaira
  • Search


© Copyright 2025, Kaira Team.

Built with Sphinx using a theme provided by Read the Docs.