直扩系统(DSSS)在AWGN信道下的误码率仿真分析项目说明
项目介绍
本项目是一个基于MATLAB开发的通信系统仿真平台,专注于研究直接序列扩频(DSSS)技术在加性高斯白噪声(AWGN)信道环境下的性能表现。通过构建完整的二元相移键控(BPSK)调制与扩频通信链路,系统模拟了信号从信源产生、扩频调制、信道加噪、相关解扩到接收判决的全过程。该仿真通过蒙特卡洛方法,直观地展示了扩频增益对抗环境噪声的有效性,并提供了理论与实际仿真结果的量化对比。
功能特性
- 伪随机序列生成:内置基于线性反馈移位寄存器(LFSR)的m序列产生逻辑,支持自定义本原多项式。
- 基带扩频处理:实现信息比特与高芯片速率伪码的逐位乘积运算,将窄带信号扩展为宽带信号。
- 自适应噪声模拟:根据设定的信噪比范围(Eb/No),动态计算并叠加高斯随机噪声。
- 相关解扩与判决:通过本地同步序列执行相关运算,提取解扩后的信号能量并进行硬判决逻辑。
- 多维度性能可视化:自动生成误码率对比曲线、扩频前后功率谱密度(PSD)分析图以及解扩后的星座图。
- 兼容性逻辑:代码包含了误比特计算的替代实现,确保在不同版本的MATLAB环境下均能稳定运行。
使用方法
- 在MATLAB软件中打开仿真脚本。
- 根据具体需求调整参数初始化部分的变量,如仿真比特数(numBits)、扩频因子(sf)或信噪比范围(EbNo_dB)。
- 运行脚本,系统将依次执行信号处理流程并在命令行窗口实时打印统计表格。
- 仿真结束后,会自动弹出三个图形窗口,分别展示性能曲线、频谱特性和星座散点图。
系统逻辑实现
1. 序列生成逻辑
系统采用 5 级移位寄存器结构,应用本原多项式 x^5 + x^2 + 1 产生长度为 31 的最大长度序列(m序列)。生成的二进制序列(0, 1)被映射为单极性双向电平(+1, -1),作为扩频码片使用。
2. 发送端调制与扩频
信源产生随机的二进制比特流。首先执行 BPSK 调制,将 0 和 1 分别转换为 -1 和 1。随后,每一个调制后的符号都会与完整的 31 位 m 序列进行逐位乘积,实现信号在频率空间上的扩展。
3. 信道建模
仿真在 Eb/No 范围内进行循环迭代。系统通过扩频因子计算每个比特的能量,进而根据当前的信噪比计算噪声的方差(标准差)。将生成的零均值高斯白噪声序列叠加到扩频信号上,模拟真实的无线链路环境。
4. 接收端解扩与解调
接收端接收到含噪信号后,按扩频因子长度进行分段处理。每一段信号与本地存储的、完全同步的 m 序列执行点积并求和,最后进行归一化处理。该过程通过相关运算有效地抑制了非相关的宽带噪声,恢复出窄带信号能量。
5. 判决与统计
对相关器输出的数值进行阈值判决(以 0 为界),恢复出原始比特。系统对比发送比特与接收比特的区别,统计误码数量并计算误码率(BER)。
算法细节分析
扩频增益与信噪比计算:在代码实现中,每个比特包含 sf 个码片。为了确保对比的准确性,噪声标准差的计算充分考虑了扩频因子对比特能量(Eb)的影响,体现了处理增益在提升输出信噪比中的核心作用。
功率谱密度评估:为了对比频谱展宽效果,系统对原始 BPSK 信号进行了过采样处理,使其采样率与扩频后的信号一致。使用 Welch 方法计算功率谱,能够清晰地观察到主瓣宽度的显著增加和功率谱密度的降低。
蒙特卡洛仿真精度:通过大规模(如 10000 比特)的重复实验统计,系统得出的仿真误码率能够高度贴合 BPSK 在 AWGN 条件下的理论公式:0.5 * erfc(sqrt(Eb/No))。
系统要求
软件环境:MATLAB R2016b 及以上版本均可。
核心函数依赖:pwelch(用于频谱分析)、erfc(用于理论计算)、randn(用于噪声生成)。
硬件要求:标准桌面运行内存及处理性能即可支持万级比特量的亚秒级快速仿真。