# MIMOAndOFDMWirelessCommunicationSimulatedByPython **Repository Path**: zhou-rongfei7723/mimoand-ofdmwireless-communication-simulated-by-python ## Basic Information - **Project Name**: MIMOAndOFDMWirelessCommunicationSimulatedByPython - **Description**: No description available - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-26 - **Last Updated**: 2025-12-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: OFDM, Python, MIMO ## README # MIMO与OFDM无线通信Python仿真 #### 介绍 本项目是基于《MIMO-OFDM无线通信技术及MATLAB实现》一书的 Python 实现版本。提供了完整的 MIMO(多输入多输出)和 OFDM(正交频分复用)无线通信系统仿真框架,按照书籍章节结构组织代码,便于学习和研究现代无线通信技术。 #### 项目特点 - 📚 完全按照《MIMO-OFDM无线通信技术及MATLAB实现》章节编排 - 🐍 将书中 MATLAB 代码转换为 Python 实现 - 📊 提供丰富的可视化分析工具 - 🔬 适合科研学习和教学实践 - 📝 详细的注释和文档说明 #### 软件架构 项目按照书籍章节组织,主要包含以下模块: ``` mimoand-ofdmwireless-communication-simulated-by-python/ ├── chapter01_introduction/ # 第1章:绪论 │ └── wireless_evolution.py # 无线通信演进 ├── chapter02_awgn_channel/ # 第2章:AWGN信道 │ ├── awgn_channel.py # AWGN信道模型 │ └── performance_analysis.py # 性能分析 ├── chapter03_fading_channel/ # 第3章:衰落信道 │ ├── rayleigh_fading.py # 瑞利衰落 │ ├── rician_fading.py # 莱斯衰落 │ └── channel_modeling.py # 信道建模 ├── chapter04_modulation/ # 第4章:调制与编码 │ ├── digital_modulation.py # 数字调制(BPSK, QPSK, QAM) │ ├── channel_coding.py # 信道编码 │ └── interleaving.py # 交织技术 ├── chapter05_ofdm_basic/ # 第5章:OFDM基础 │ ├── ofdm_system.py # OFDM系统基本原理 │ ├── fft_ifft.py # FFT/IFFT实现 │ └── cyclic_prefix.py # 循环前缀 ├── chapter06_ofdm_synchronization/ # 第6章:OFDM同步 │ ├── time_sync.py # 时间同步 │ ├── frequency_sync.py # 频率同步 │ └── symbol_timing.py # 符号定时 ├── chapter07_ofdm_channel_estimation/ # 第7章:OFDM信道估计 │ ├── ls_estimation.py # LS信道估计 │ ├── mmse_estimation.py # MMSE信道估计 │ └── pilot_design.py # 导频设计 ├── chapter08_papr_reduction/ # 第8章:PAPR抑制 │ ├── clipping.py # 限幅法 │ ├── slm.py # 选择映射法 │ └── pts.py # 部分传输序列法 ├── chapter09_mimo_basic/ # 第9章:MIMO基础 │ ├── mimo_capacity.py # MIMO信道容量 │ ├── spatial_multiplexing.py # 空间复用 │ └── diversity_techniques.py # 分集技术 ├── chapter10_space_time_coding/ # 第10章:空时编码 │ ├── alamouti_code.py # Alamouti码 │ ├── stbc.py # 空时分组码 │ └── sttc.py # 空时格码 ├── chapter11_mimo_detection/ # 第11章:MIMO检测 │ ├── ml_detection.py # 最大似然检测 │ ├── zf_detection.py # 迫零检测 │ └── mmse_detection.py # MMSE检测 ├── chapter12_mimo_ofdm/ # 第12章:MIMO-OFDM系统 │ ├── mimo_ofdm_system.py # MIMO-OFDM系统 │ ├── precoding.py # 预编码 │ └── beamforming.py # 波束成形 ├── utils/ # 工具函数 │ ├── visualization.py # 可视化工具 │ ├── performance_metrics.py # 性能指标计算 │ └── signal_processing.py # 信号处理工具 ├── examples/ # 综合示例 │ ├── complete_ofdm_demo.py # 完整OFDM演示 │ ├── complete_mimo_demo.py # 完整MIMO演示 │ └── mimo_ofdm_demo.py # MIMO-OFDM演示 ├── tests/ # 单元测试 ├── docs/ # 详细文档 ├── results/ # 仿真结果 ├── requirements.txt # 依赖包 └── README.md # 项目说明 ``` #### 章节内容概览 | 章节 | 主要内容 | 对应模块 | |------|---------|---------| | 第1章 | 无线通信系统概述 | `chapter01_introduction/` | | 第2章 | AWGN信道模型与性能分析 | `chapter02_awgn_channel/` | | 第3章 | 衰落信道特性与建模 | `chapter03_fading_channel/` | | 第4章 | 数字调制与信道编码 | `chapter04_modulation/` | | 第5章 | OFDM基本原理 | `chapter05_ofdm_basic/` | | 第6章 | OFDM同步技术 | `chapter06_ofdm_synchronization/` | | 第7章 | OFDM信道估计 | `chapter07_ofdm_channel_estimation/` | | 第8章 | PAPR问题及抑制方法 | `chapter08_papr_reduction/` | | 第9章 | MIMO系统基础 | `chapter09_mimo_basic/` | | 第10章 | 空时编码技术 | `chapter10_space_time_coding/` | | 第11章 | MIMO信号检测 | `chapter11_mimo_detection/` | | 第12章 | MIMO-OFDM系统 | `chapter12_mimo_ofdm/` | #### 安装教程 0 1. 克隆仓库 ```bash git clone https://gitee.com/your-username/mimoand-ofdmwireless-communication-simulated-by-python.git cd mimoand-ofdmwireless-communication-simulated-by-python ``` 2. 安装 Python 依赖 ```bash pip install -r requirements.txt ``` 3. (可选)安装 Jupyter 用于交互式学习 ```bash pip install jupyter ``` #### 依赖环境 - Python >= 3.7 - NumPy >= 1.19.0 (矩阵运算) - SciPy >= 1.5.0 (科学计算) - Matplotlib >= 3.3.0 (绘图) - CommPy >= 0.7.0 (通信算法库,可选) #### 使用说明 **按章节学习和运行示例:** 1. **第2章 - AWGN信道仿真** ```bash python chapter02_awgn_channel/awgn_channel.py python chapter02_awgn_channel/performance_analysis.py ``` 2. **第5章 - 基本OFDM系统仿真** ```bash python chapter05_ofdm_basic/ofdm_system.py ``` 3. **第7章 - OFDM信道估计** ```bash python chapter07_ofdm_channel_estimation/ls_estimation.py python chapter07_ofdm_channel_estimation/mmse_estimation.py ``` 4. **第9章 - MIMO容量分析** ```bash python chapter09_mimo_basic/mimo_capacity.py ``` 5. **第10章 - Alamouti空时编码** ```bash python chapter10_space_time_coding/alamouti_code.py ``` 6. **第12章 - 完整MIMO-OFDM系统** ```bash python chapter12_mimo_ofdm/mimo_ofdm_system.py ``` **运行综合示例:** ```bash # 完整的OFDM系统演示 python examples/complete_ofdm_demo.py # 完整的MIMO系统演示 python examples/complete_mimo_demo.py # MIMO-OFDM联合系统演示 python examples/mimo_ofdm_demo.py ``` #### 快速开始示例 **示例1:OFDM系统仿真(第5章)** ```python from chapter05_ofdm_basic.ofdm_system import OFDMSystem from chapter02_awgn_channel.awgn_channel import AWGNChannel # 初始化OFDM系统参数 ofdm = OFDMSystem( n_fft=64, # FFT点数 n_subcarriers=52, # 子载波数 cp_length=16, # 循环前缀长度 modulation='QPSK' # 调制方式 ) # 生成随机比特流 data_bits = np.random.randint(0, 2, 1000) # OFDM调制 tx_signal = ofdm.modulate(data_bits) # 通过AWGN信道 channel = AWGNChannel(snr_db=15) rx_signal = channel.transmit(tx_signal) # OFDM解调 rx_bits = ofdm.demodulate(rx_signal) # 计算误码率 ber = np.sum(data_bits != rx_bits) / len(data_bits) print(f"误码率: {ber}") ``` **示例2:MIMO空时编码(第10章)** ```python from chapter10_space_time_coding.alamouti_code import AlamoutiEncoder, AlamoutiDecoder from chapter03_fading_channel.rayleigh_fading import RayleighChannel # 初始化Alamouti编码器(2发1收) encoder = AlamoutiEncoder() decoder = AlamoutiDecoder() # 生成调制符号 symbols = np.random.randn(100) + 1j*np.random.randn(100) # Alamouti编码 coded_symbols = encoder.encode(symbols) # 通过瑞利衰落信道 channel = RayleighChannel(n_tx=2, n_rx=1) rx_symbols, channel_matrix = channel.transmit(coded_symbols) # Alamouti解码 decoded_symbols = decoder.decode(rx_symbols, channel_matrix) ``` #### 文档说明 - 📖 每个章节文件夹内都有详细的 README 说明 - 📊 `docs/` 目录包含理论推导和公式说明 - 💻 代码中包含详细的中文注释 - 📈 `results/` 目录保存仿真图表结果 #### 学习路径建议 1. **基础阶段**(第1-4章) - 了解无线通信基本概念 - 掌握信道模型 - 学习调制解调技术 2. **OFDM阶段**(第5-8章) - OFDM基本原理 - 同步与信道估计 - PAPR抑制技术 3. **MIMO阶段**(第9-11章) - MIMO信道容量 - 空时编码 - 信号检测算法 4. **综合应用**(第12章) - MIMO-OFDM联合系统 - 实际系统设计 #### 参与贡献 1. Fork 本仓库 2. 新建分支 (`git checkout -b feature/ChapterXX`) 3. 提交代码 (`git commit -m 'Add ChapterXX implementation'`) 4. 推送到分支 (`git push origin feature/ChapterXX`) 5. 新建 Pull Request 欢迎贡献: - 📝 完善代码注释和文档 - 🐛 修复bug - ✨ 添加新的仿真场景 - 📚 补充理论说明 #### 开源协议 本项目采用 MIT 协议 - 详见 LICENSE 文件 #### 参考资料 - 📘 主要参考:《MIMO-OFDM无线通信技术及MATLAB实现》 - 📗 其他参考书籍和论文见 `docs/references.md` #### 联系方式 - 项目地址: [https://gitee.com/your-username/mimoand-ofdmwireless-communication-simulated-by-python](https://gitee.com/your-username/mimoand-ofdmwireless-communication-simulated-by-python) - 问题反馈: 请提交 Issue - 讨论交流: 欢迎在 Issue 中提问和讨论 #### 致谢 - 感谢《MIMO-OFDM无线通信技术及MATLAB实现》一书作者提供的理论基础 - 感谢所有为本项目做出贡献的开发者 - 参考了无线通信领域的研究论文和开源项目 --- ⭐ 如果这个项目对您有帮助,请给个 Star 支持一下!