基于MATLAB的ASK、FSK、PSK数字调制解调系统仿真项目说明
项目介绍
本项目是一个用于学习和研究基础数字通信技术的MATLAB仿真系统。它通过数学公式显式建模,完整演示了二进制幅移键控(ASK)、二进制频移键控(FSK)和二进制相移键控(PSK)从信源产生、调制、加噪、解调到最终判决的全过程。系统不依赖高度封装的通信工具箱函数(如内置的modulator对象),而是通过离散时间信号处理的底层逻辑实现,能够直观展示信号在时域的变化规律。
功能特性
- 多方案覆盖:集成ASK、FSK、PSK三种最基础的数字调制解调算法。
- 数学公式驱动:调制过程完全依据通信原理基础公式实现,包括乘法器操作、频率切换逻辑和相位偏移控制。
- 真实环境模拟:系统在传输过程中引入了高斯白噪声(AWGN),模拟实际信道中的干扰情况,并允许自定义信噪比(SNR)。
- 完整解调链路:实现了包括相干乘法、四阶巴特沃斯低通滤波、以及基于特定阈值的抽样判决逻辑。
- 可视化分析:通过多维度的波形图对比展示原始基带、调制信号、滤波后信号以及最终还原序列。
系统要求
- 软件版本:MATLAB 2016b 及以上版本(推荐)。
- 工具箱需求:
- Signal Processing Toolbox(用于执行 butter 滤波器设计和 filter 滤波操作)。
- Communication Toolbox(用于执行 awgn 加噪函数)。
使用方法
- 配置参数:在代码最开始的参数设置区域,可以修改比特数(NumBits)、码元速率(Rb)、采样频率(Fs)以及载波频率(f_c1, f_c2)。
- 设置环境:调整SNR参数以测试系统在不同噪声水平下的抗干扰能力。
- 运行程序:在MATLAB编辑器中点击运行,程序将自动完成三种调制方案的计算。
- 结果查看:程序将弹出三个独立的图形窗口,分别展示ASK、FSK和PSK的仿真细节;同时,MATLAB命令行窗口将输出原始比特序列与各方案解调后的比特序列。
详细功能实现逻辑
1. 信号源与基带生成
系统首先利用随机数生成函数产生指定的二进制比特序列。随后,通过循环扩展的方式,按采样频率将比特序列转换为随时间变化的矩形脉冲基带信号,为后续调制提供物理波形。
2. ASK(幅移键控)模块
- 调制逻辑:将基带矩形脉冲信号直接与高频正弦载波执行点乘运算。当比特为1时,输出载波波形;当比特为0时,输出电平为0。
- 解调逻辑:采用相干解调法。将带噪信号再次与同频同相的正弦载波相乘,通过四阶巴特沃斯低通滤波器滤除倍频分量。
- 判决策略:在码元周期的中间位置进行抽样,判决阈值设定为0.25(理想信号能量的一半)。
3. FSK(频移键控)模块
- 调制逻辑:基于电平切换频率。当比特为1时,系统选择频率为f_c1的载波;当比特为0时,选择频率为f_c2的载波。
- 解调逻辑:采用双路相干并行处理。信号分别进入与两个载波对应的相干解调链路,经过低通滤波后,通过比较两路信号在抽样时刻的能量大小来决定最终输出比特。
4. PSK(相移键控)模块
- 调制逻辑:实现二进制BPSK调制。通过公式 (1 - 2 * BaseBand) 将 0/1 映射为 1/-1,再与载波相乘,从而实现 0 度和 180 度的相位翻转。
- 解调逻辑:相干解调。带噪信号与载波相乘并滤波。
- 判决策略:由于BPSK解调后的信号以0为基准上下对称,系统采用0作为判决门限。
5. 滤波器与判决算法细节
- 滤波技术:统一采用四阶巴特沃斯低通滤波器,截止频率根据码元速率(Rb)动态设定,确保能够滤除载波频率,保留解调后的基带包络。
- 抽样逻辑:采用中点抽样法,即计算每个码元持续时间内的中间采样点索引,以避开信号跳变沿的过冲或震荡,提高判决准确度。
关键函数与算法说明
- awgn:用于在已调信号中添加高斯白噪声,通过 'measured' 参数自动测量信号功率以保持设定的信噪比。
- butter & filter:设计并执行巴特沃斯数字滤波器,这是解调过程中还原基带信息的关键,用于提取相干运算后的低频分量。
- randi:生成均匀分布的随机整数序列,作为系统的原始数字信息源。
- 点乘运算 (.*):在调制过程中模拟乘法器的功能,实现模拟载波与数字电平的混合。
- 抽样判决逻辑:通过 round(SamplesPerBit/2) 精确定位抽样点,并结合 logical 比较运算完成从模拟波形到数字比特的映射还原。