MATLAB实现FSK数字调制与解调

4星 · 超过85%的资源 需积分: 9 17 下载量 42 浏览量 更新于2024-11-22 1 收藏 242KB DOC 举报
"该资源是关于使用MATLAB实现FSK(频移键控)数字调制技术的一个实验案例。实验中,通过MATLAB代码生成二进制随机序列,进行调制,然后添加高斯白噪声模拟信道环境,最后进行相干解调并观察解调后的眼图。" 在无线通信领域,FSK是一种常见的数字调制技术,它通过改变载波频率来表示二进制数据。在本实验中,MATLAB被用作仿真工具来演示FSK调制和解调的过程。 1. **FSK调制**: FSK(Frequency Shift Keying)是根据二进制信息“0”或“1”改变载波频率的一种方式。在MATLAB代码中,`dmod`函数用于执行FSK调制。参数包括: - `Fc`: 载频,即未调制时的中心频率。 - `Fs`: 采样频率,决定了信号处理的分辨率和时间精度。 - `Fd`: 码速率,即每秒传输的位数。 - `N`: 一个码元的样本数,由`Fs/Fd`计算得出。 - `M`: 进制数,这里为2,表示二进制FSK。 - `df`: 频率间隔,即“0”和“1”之间的频率差。 - `x`: 输入的二进制序列。 2. **二进制随机序列生成**: 使用`randsrc`函数生成长度为`numSymb`的二进制随机序列,其中`[0:M-1]`定义了可能的符号值。 3. **调制后的信号**: 调用`dmod`函数后,生成的`y`是调制后的模拟信号。在MATLAB中,使用`plot`函数绘制了调制信号的幅度随时间变化的波形。 4. **信道模型与噪声**: 为了模拟现实世界中的信道环境,向调制后的信号中加入了高斯白噪声。`awgn`函数用于这一过程,其参数包括: - `SNR`: 信号噪声比,基于`SNRpBit`计算得出。 - `'measured'`参数表明SNR是测量得到的。 - `'dB'`表示SNR以分贝(dB)为单位。 5. **相干解调**: 在接收端,使用`ddemod`函数进行相干解调,恢复原始二进制序列。`'fsk/eye'`参数表明使用的是眼图分析,这是一种观察信号质量的方法。 6. **眼图分析**: 解调后的眼图显示在figure(4),它可以直观地反映信号的质量和定时误差,帮助分析解调效果。 7. **输出波形**: 最后,将原始二进制序列和解调后的序列以茎图形式对比显示,以评估解调的准确性。 这个实验案例提供了FSK调制解调的完整流程,对于理解数字通信系统的工作原理和MATLAB在通信系统仿真中的应用非常有帮助。通过调整参数,可以进一步研究不同信噪比、频率间隔和进制数对系统性能的影响。
1033 浏览量
本文对数字调制中的2FSK采用matlab进行了仿真实验,代码中没有加入噪声,采用相干解调的解调方式。 (一)、代码的流程如下: (1)、设置载波频率,码元频率(本文中即比特率)和采样率; (2)、产生2FSK信号; (3)、信号分别经过两个带通滤波器后得到band_passed_sig1和band_passed_sig2; (4)、对band_passed_sig1和band_passed_sig2分别进行相干解调,再分别进行低通滤波得到lower_sig1和lower_sig2; (5)、对lower_sig1和lower_sig2进行抽样判决得到输出信号; (6)、统计无码率; (二)、2FSK进行matlab仿真的疑难点: (1)、相干解调采用的“同频同相的载波”的获取。 由于信号经过带通滤波器之后(本文采用的是FIR线性相位数字滤波器)会出现相移,所以不能直接用调制时候的载波信号与此时的band_passed_sig1信号相乘来相干解调,此时用来相干解调的载波应该与经过滤波器之后出现相移的“载波”信号同频同相,本文代码中直接采用band_passed_sig1.*band_passed_sig1的方式进行相干解调,这点需要读者细心斟酌一下(其实不难理解的)。 (2)、抽样判决的判决时刻选择。 据笔者观察,经过低通滤波器之后得到的信号会出现时移(延时)的情况,建议读者可以先设置10个码元个数,观察一下低通滤波器的输出波形,然后再选择波形峰值时刻作为抽样判决时刻。本文的代码中是采用每一个码元的结束时刻作为抽样判决时刻,这是笔者通过观察低通滤波器的输出波形后得到的,不具有通用性。 时移的原因,笔者觉得是因为FIR数字滤波器的线性相位所导致的,但是怎么个时移法,笔者目前还没有弄明白(数字信号处理学的不够好),还有待探究。