Hands-on Wireless System (Summer 2025)

无线通信系统实践 (2024-2025学年小学期)

Course Description

The goal of this course is to give students hands-on experience in the design, implementation and evaluation of an OFDM wireless communication system on the ADI Pluto software defined radio. Students will learn the principles through lab-driven experiments on software defined radios, and build a real-time system supporting real applications.

本课程为高年级通信专业本科生开设的专业类实践课程,旨在通过指导同学们在软件无线电平台上完成一个实时无线通信系统(包括物理层、链路层与应用层),提升同学们对通信系统的理解,同时也提升同学们的动手实践能力。

本课程内容主要参考Princeton大学Kyle Jamieson教授的《COS463: Wireless Networks》课程、UIUC大学Haitham Hassanieh教授的《ECE463: IoT and Software Defined Radio Lab》课程。结合厦大实际情况,确定了如下的课程内容与方式:

(1)基于ADI Pluto的软件无线电与Python编程语言设计课程内容。同学们在大三上的《通信原理》课程上已熟悉ADI Pluto软件无线电平台,在大三下《智能信号处理与实践》课程上已熟悉Python语言,因此我们沿用这两个工具。从性能的角度上看,虽然Python的信号处理的效率远不及C或者FPGA(Verilog/VHDL),但是上手容易,而我们的系统对性能要求不高。此外与通信专业常用的Matlab比起来,Python更容易搭建实时系统。

(2)基于OFDM技术组织课程内容。与传统的单载波数字调制方式(ASK/PSK/FSK)比起来,多载波的OFDM调制更复杂。但是考虑到OFDM技术已被主流的通信系统(比如4G/5G/WiFi)所采纳,是前沿技术,也是很多新波形设计的基础。此外,如何处理通信系统的实际因素,比如多径信道、时间同步误差、Carrier Frequency Offset,都能通过OFDM系统很好的展示出来。因此本课程以基于OFDM的WiFi 802.11a系统为例,通过讲解OFDM的原理与实现细节,贯穿无线通信基本知识(比如信道、同步、调制、编码)。

(3)采取通信与网络相结合的方式。传统的通信类实践课程往往关注物理层设计,较少涉及MAC层、链路层、网络层、传输层,不能全面体现一个完整的通信系统。基于软件无线电平台提供的全栈开发能力,本课程介绍MAC协议、链路层可靠传输协议(自动请求重传协议)、虚拟网卡(TUN/TAP)的技术,使学生能够对通信系统有全面的理解。

(4)采用阶梯式开发方式。本课程设计了两个实验,一个大项目,贯穿整个学期。各个环节相互依赖,比如第二个实验依赖第一个实验的结果,大项目依赖前两个实验的结果,将难度分解到平时的各个环节,确保学生能够在期末实现一个有完整度的实时通信系统。

Course Info

Course Time & Location: TBD

Instructor: Lizhao You (lizhaoyou [AT] xmu.edu.cn)

Office Hours & Location: TBD (西部片区6号楼103-7)

Lab TA: TBD

Prerequisties: (optional)

Contents

Expected Outcomes

Grading

Reference Books

市面上目前没有完全契合本课程的教科书,采用自编讲义形式。

主要有以下参考书:

相关材料将在内部课程群发布。

Schedule

TBD

Collaboration Policy

The labs and project may be on individuals or a team of three members. The following policy applies to an individual for an individual lab or a team for a team lab/project.

Programming, like composition, is an individual creative process. Individuals must reach their own understanding of the problem and discover a path to its solution. During this time, discussions with friends are encouraged. However, when the time comes to write the code that solves the problem, such discussions are no longer appropriate; the program must be your own work.

Do not, under any circumstances, copy another person's program, comments, README description, or any part of the submitted assignment. This includes character-by-character transliteration of another works (whether inspected visually or copied digitally), but it also includes derivative works (i.e., by renaming variable names or subtly shifting around statements in order to try to hide that copying has occurrred). You are also not allowed to use other people's code, comments, or results, even when “citing” them – all work must be your own. This includes work done by other XMU students this or past semesters, as well as any other code you find online.

Writing code for use by another or using another's code in any form is academic fraud and will be dealt with firmly according to XMU's disciplinary policies. You are also responsible for ensuring that the code you write for the assignments is not readable by others, which includes sharing with students in future years or posting publicly on websites like github.

简化版: