基于m序列直接扩频与QPSK调制的端到端通信系统仿真
项目简介
本项目是一个基于MATLAB开发的数字通信系统仿真平台,完整实现了从信源产生到数据恢复的端到端通信流程。系统核心采用了
直接序列扩频(DSSS)技术以提高抗干扰能力,结合
QPSK(正交相移键控)调制技术以实现高效的频谱利用与射频传输。
该仿真程序模拟了真实的物理层过程,包括m序列生成、扩频、载波调制、AWGN信道传输、相干解调、匹配滤波、同步解扩以及误码率分析。通过详细的波形、频谱和星座图可视化,用户可以直观地观察扩频增益对低信噪比环境下通信质量的提升。
功能特性
- 完整的通信链路:涵盖信源编码、扩频、调制、信道、解调、解扩、信宿解码的全过程。
- 直接序列扩频 (DSSS):使用6级m序列作为扩频码,提供显著的处理增益,支持在负信噪比(如 -5dB)下正常通信。
- QPSK 调制与解调:实现I/Q两路正交信号的并行处理、载波调制与相干解调。
- 信道模拟:内置加性高斯白噪声(AWGN)信道模型,支持自定义信噪比(SNR)。
- 信号处理算法:包含双极性映射、矩形脉冲成型、巴特沃斯低通滤波、抽样判决等算法。
- 多维可视化:提供时域波形对比、频谱分析、解扩前后星座图对比以及误码率(BER)计算。
系统要求
- MATLAB R2016b 或更高版本
- Signal Processing Toolbox(信号处理工具箱)
- Communications Toolbox(通信工具箱)
详细功能与实现逻辑
本仿真程序主要包含以下核心处理步骤,逻辑严格对应代码实现流程:
1. 系统参数初始化
程序首先定义了系统的关键指标,包括信源比特数、采样率(1 MHz)、载波频率(100 kHz)、原始比特率(1 kbps)以及信道信噪比(默认为 -5dB)。同时配置了m序列生成器的级数(6级)和反馈抽头位置。
2. 扩频码(m序列)生成
利用线性移位寄存器(LFSR)原理,根据本原多项式 $x^6 + x + 1$ 生成长度为 63 ($2^6-1$) 的m序列。程序自动计算码片速率(Chip Rate)以及每个码片和比特对应的采样点数,确保系统时序对齐。
3. 信源产生与预处理
- 随机信源:生成指定长度的随机二进制序列(0/1)。
- 串并转换:将二进制序列分为奇数位和偶数位,分别对应QPSK的同相分量(I路)和正交分量(Q路)。
- 双极性映射:将逻辑0映射为-1,逻辑1映射为+1,便于后续的算术运算和调制。
4. 直接序列扩频 (DSSS)
对I路和Q路的每一个双极性符号,分别乘以完整的m序列。这一步骤将原始信号的频谱极大地扩展,实现了“扩频”,使信号能量分散在更宽的频带上。
5. 脉冲成型
采用矩形脉冲成型(Rectangular Pulse Shaping),通过过采样(Upsampling)将扩频后的离散序列转换为具有实际时间宽度的基带波形。
6. QPSK 射频调制
将基带I路信号乘以余弦载波,Q路信号乘以正弦载波,利用三角函数的正交性合成最终的射频发射信号 ($Tx = I cdot cos - Q cdot sin$)。
7. AWGN 信道传输
使用
awgn 函数向发射信号中添加指定信噪比的高斯白噪声,模拟真实无线环境中的噪声干扰。
8. 射频接收与解调
- 相干解调:接收端分别乘以本地恢复的同相和正交载波。
- 低通滤波:设计6阶巴特沃斯低通滤波器,截止频率设定为码片速率,滤除解调过程中产生的高频分量(2倍载频项)和部分带外噪声。
- 抽取(Downsampling):在每个码片的中间时刻进行采样,将连续波形恢复为离散的码片序列。
9. 同步解扩 (Despreading)
程序对I/Q两路数据按符号周期进行分段,将接收到的码片片段与本地m序列进行互相关运算(点积求和)。利用m序列良好的自相关特性:
- 若信号匹配,相关值会呈现较大的正峰值或负峰值(扩频增益)。
- 噪声部分由于与m序列不相关,会被抑制。
10. 判决与数据恢复
根据解扩后的相关值进行门限判决(阈值为0):大于0判为1,否则判为0。最后将I/Q两路数据进行并串转换,恢复出原始的一维二进制比特流。
11. 性能评价
通过对比发送的原始比特与接收恢复的比特,计算并输出误码数和误码率(BER),量化评估系统性能。
可视化分析
程序运行结束时会自动生成四组图表,用于辅助分析:
* 展示了基带扩频信号、射频调制信号以及经过噪声污染后的接收信号波形。
* 特别绘制了接收端解扩后的相关峰值,直观展示了在噪底淹没下如何提取出符号信息。
* 利用FFT分析射频扩频信号的功率谱密度。
* 对比展示了原始窄带信号与扩频后宽带信号的带宽差异,验证扩频效果。
*
解扩前(Chip级):展示解调后但在解扩之前的信号分布,通常是一团杂乱的噪声云,表明信号完全淹没在噪声中。
*
解扩后(Symbol级):展示经扩频增益处理后的判决变量,呈现清晰的4点QPSK星座,验证了处理增益对信噪比的改善。
* 通过茎叶图直观对比发送比特序列的前50位与接收恢复比特序列,便于检查是否存在误码。
使用方法
- 确保MATLAB安装路径中包含所需的工具箱。
- 直接运行
main.m 文件。 - 控制台将输出系统参数摘要、误码数及误码率。
- 观察弹出的四个图形窗口以进行性能分析。
- 如需调整参数(如 SNR、扩频码长度等),可直接修改代码头部的“系统参数设置”区域。