跳频扩频(FHSS)通信系统仿真项目
项目介绍
本项目通过MATLAB实现了一个完整的跳频扩频通信系统。该系统模拟了从基带信号产生、2-FSK调制、扩频、通过包含干扰的信道,到最后解扩与解调的全过程。系统旨在展示跳频技术在对抗干扰(特别是窄带干扰与部分频带干扰)方面的优势,并提供多维度的性能分析工具。
功能特性
- 多进制频移键控调制:支持基于M-FSK的相干/非相干调制框架,程序中默认实现为高性能的2-FSK。
- 动态跳频控制:利用伪随机序列控制载频在8个离散频带内快速跳变。
- 复杂信道模拟:集成了加性高斯白噪声(AWGN)、单音干扰(Single-tone)以及部分频带干扰(Partial-band)三种信道环境。
- 同步解跳接收:模拟理想同步接收机,利用本地生成的同步跳频图案对接收信号进行混频降频。
- 能量检测判决:接收端采用非相干能量检测算法,具有较强的鲁棒性。
- 可视化分析:包含时域波形图、时频瀑布图(Spectrogram)、功率谱密度(PSD)分析、解调位对比图及误码率(BER)性能曲线。
系统要求
- MATLAB R2016b 或更高版本
- 信号处理工具箱(Signal Processing Toolbox)
程序实现逻辑分析
#### 1. 基带信号生成与调制
- 数据源产生:生成100个随机比特流。
- 2-FSK调制:将比特0映射为100Hz的正弦波,比特1映射为200Hz的正弦波。每个符号根据采样频率被分割为特定数量的样本点,确保信号在时域的连续性。
#### 2. 跳频图案与扩频调制
- 序列生成:基于固定的随机数种子生成1到8之间的伪随机整数序列,代表8个不同的跳频点(频率间隔为500Hz,起始频率为1000Hz)。
- 载波合成:按照跳频速率(20 Hops/s)在时域上拼接不同频率的余弦波,形成跳频载波。
- 混频处理:将FSK调制后的基带信号与跳频载波进行元素级乘法,完成从基带到跳变射频端的频谱搬移,实现频谱扩频。
#### 3. 信道干扰抑制机制
- AWGN添加:通过计算信号功率,根据设定的信噪比注入高斯白噪声。
- 干扰模拟:
*
单音干扰:在特定的跳频频点上叠加高功率的单频率正弦波。
*
部分频带干扰:根据跳预期频序列,在特定的跳频时隙内注入宽带随机噪声。这种方式能够模拟实际战场或工业环境中不连续的频带阻塞干扰。
#### 4. 接收端处理逻辑
- 同步解跳:利用与发送端一致的载波频率进行二次混频,将接收信号搬回基带。
- 低通滤波:使用6阶巴特沃斯(Butterworth)低通滤波器滤除混频产生的和频分量以及带外噪声,恢复FSK基带信号。
- 非相干判决:在每个符号周期内,分别计算信号与两个已知频率(f0, f1)的正交分量(cos/sin)的相关能量。比较两个频率路径的能量大小,判定原始比特。
关键函数与算法说明
- awgn_process(自定义函数):根据信号样本求取平均功率,并依据输入的SNR_dB值转换成线性噪声功率,生成对应的加性高斯噪声序列。
- biterr(自定义函数):对比原始比特向量与解调比特向量,计算统计不等项的数量并得出误码率。
- spectrogram 算法:利用短时傅里叶变换(STFT)生成信号的能量分布强度图,清晰展示频率随时间跳变的轨迹。
- periodogram 算法:计算信号的功率谱密度,用于直观展示扩展频谱后的能量分布状况。
- 非相干判决算法:通过平方求和($I^2 + Q^2$)的方式提取特定频点的能量包络,消除了对基带载波相位同步的高度依赖。
使用方法
- 启动MATLAB,将工作路径设置为本程序所在文件夹。
- 在命令行窗口输入命令运行。
- 程序将自动生成包含6个子图的分析界面,展示跳频过程的所有技术指标。
- 若需测试不同类型的干扰,可修改代码参数设置区中的干扰类型变量。