▲基于GMSK调制解调+LDPC编译码通信链路matlab误码率仿真

目录

1.GMSK调制原理

2. Gmsk解调算法

3.LDPC编译码

4.MATLAB程序

5.仿真结果

6.完整程序下载


       GMSK 是在 MSK 基础上发展而来的一种恒包络调制技术。在调制端,输入的二进制序列先经过高斯低通滤波器进行预调制滤波,以减小信号带宽和带外辐射。然后通过 MSK 调制将信号映射到载波上。解调端,通常采用相干解调或差分解调的方式。相干解调需要恢复载波和位定时信息,以准确还原出原始信号;差分解调则无需恢复载波,实现相对简单,但性能上会有一定损失。

1.GMSK调制原理

       GMSK作为一种恒包络连续相位调制技术,因其高频谱效率与抗干扰能力被广泛应用于GSM、蓝牙等系统。其核心特征是通过高斯低通滤波器对基带信号进行预滤波,有效抑制带外辐射。GMSK是在最小频移键控(MSK)基础上发展而来,通过在调制前对基带信号进行高斯低通滤波,使信号频谱更紧凑,有效减少邻道干扰。MSK本质是一种特殊的连续相位频移键控(CPFSK),调制指数为 0.5,即最大频偏是比特速率的 1/4。

高斯预滤波器设计

相位轨迹生成

调制信号表达

2. Gmsk解调算法

相干解调原理

       在相干解调中,接收信号首先与本地载波进行混频,然后经过低通滤波器得到基带信号。假设接收信号为:

非相干解调原理

       非相干解调不需要本地载波的相位信息,常用的方法是差分检测。对于 GMSK 信号,相邻比特之间的相位变化是关键信息。通过检测相邻比特之间的相位差,可以恢复出原始的二进制序列。

       而差分解调是一种非相干解调方法,它不需要恢复出精确的载波相位信息,而是通过比较相邻码元之间的相位变化来恢复原始的数字信息。这种方法在接收端实现相对简单,对载波相位同步的要求较低,因此在实际应用中具有一定的优势。

3.LDPC编译码

       LDPC码作为一种前向纠错码,具有卓越的性能,其纠错能力能够接近香农极限 。这意味着在理论上,LDPC码能够在极低的信噪比条件下实现可靠的数据传输,大大提高了通信系统的效率和可靠性。在深空通信中,由于信号传输距离极远,信号强度会随着距离的增加而急剧衰减,导致信噪比极低。LDPC码的应用能够在这种恶劣的信道条件下,有效地纠正传输过程中产生的错误,确保数据的准确传输。

       LDPC码的校验矩阵具有稀疏性,这是其区别于其他编码的重要特性之一。稀疏校验矩阵意味着矩阵中大部分元素为零,只有少数元素为非零值。这种稀疏性使得 LDPC 码在编码和解码过程中具有较低的复杂度,因为在矩阵运算中,与零元素的运算可以省略,从而减少了计算量和存储需求。与一些传统的编码方式相比,如卷积码,其校验矩阵相对密集,在处理长码长时,计算复杂度会显著增加,而LDPC码的稀疏校验矩阵则能够有效地避免这一问题,使得在处理长码长数据时仍能保持较低的计算复杂度。

完整链路流程为:

1.信息比特 u → LDPC编码 → 码字c

2.BPSK调制 → 信道传输 → 接收信号y

3.LDPC译码 → u^       

       在发送端,原始信息比特先经过LDPC编码,增加冗余信息以提高纠错能力;然后进行GMSK调,将数字信号转换为适合信道传输的模拟信号;经过信道传输后,在接收端先进行GMSK解调,得到解调后的信号;再进行LDPC译码,恢复出原始信息比特。

4.MATLAB程序

61.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
% 调制
CARRIERI=[];
Imsk=[];
CARRIERQ=[];
Qmsk=[];
for i=1:length(phase)
    tmps1 = Imsk2(MB*(i-1)+1:MB*i);
    tmps2 = Qmsk2(MB*(i-1)+1:MB*i);
    Imsk=[Imsk,tmps1.*sa1];
    Qmsk=[Qmsk,tmps2.*sa2];
    CARRIERI=[CARRIERI,sa1];
    CARRIERQ=[CARRIERQ,sa2];
end
%相加
Ymsk = Imsk+Qmsk;


figure;
plot(phase);


figure;
subplot(421);plot(Imsk2);title('IGmsk');xlim([0,0.5e5]);
subplot(423);plot(CARRIERI);title('cos');xlim([0,0.5e5]);
subplot(425);plot(Imsk);title('IGmsk * cos');xlim([0,0.5e5]);


 
subplot(422);plot(Qmsk2);title('QGmsk');xlim([0,0.5e5]);
subplot(424);plot(CARRIERQ);title('sin');xlim([0,0.5e5]);
subplot(426);plot(Qmsk);title('QGmsk * sin');xlim([0,0.5e5]);


subplot(4,2,[7,8]);
plot(Ymsk);title('GMSK');xlim([0,0.5e5]);



%%
Ydemod1  = Imsk.*CARRIERI;
Ydemod2  = Qmsk.*CARRIERQ;

w        = hamming(127);
yfilter1 = filter(w,1,Ydemod1);
yfilter2 = filter(w,1,Ydemod2);

%将滤波器w进行量化,复制到FPGA的fir滤波器核中
w2      = round(1024*w')

for i = 1:127
    fprintf('%d,',w2(i));
end
%抽取 
for i=1:length(phase) 
    yfilter1c(i)=yfilter1(MB*(i-1)+1); 
    yfilter2c(i)=yfilter2(MB*(i-1)+1); 
end 
%差分解调 


sigma      = sqrt(1./(2*10^(SNR/10)*R));  
z_hat = func_Dec(y,sigma,H,max_iter);
x_hat = z_hat(size(G,2)+1-size(G,1):size(G,2));

% demod_data = yfilter1-yfilter2;
figure % 创建图形窗口
subplot(211)
stairs(bits0); title('原数据'); ylim([-1.2,1.2]);xlim([0,50]);
subplot(212)
stairs(x_hat); title('GMSK解调输出数据'); ylim([-1.2,1.2]);xlim([0,50]);



figure % 创建图形窗口
subplot(321) % 创建3行1列的子图,并定位到第一个
plot(Ydemod1,'b','linewidth',1) % 绘制ASK调制信号
title('GMSK I解调'); % 设置标题
grid on % 打开网格
xlim([0,0.5e5]);
subplot(322) % 创建3行1列的子图,并定位到第一个
plot(Ydemod2,'b','linewidth',1) % 绘制ASK调制信号
title('GMSK Q解调'); % 设置标题
grid on % 打开网格
xlim([0,0.5e5]);

subplot(323) % 创建3行1列的子图,并定位到第一个
plot(yfilter1,'b','linewidth',1) % 绘制ASK调制信号
title('滤波I'); % 设置标题
grid on % 打开网格
xlim([0,0.5e5]);
subplot(324) % 创建3行1列的子图,并定位到第一个
plot(yfilter2,'b','linewidth',1) % 绘制ASK调制信号
title('滤波Q'); % 设置标题
grid on % 打开网格
xlim([0,0.5e5]);

 
subplot(3,2,[5,6]) % 定位到第二个子图
stairs(y,'b','linewidth',1) % 绘制载波信号
title('输出'); % 设置标题
grid on % 打开网格

ylim([-1.2,1.2]);

xlim([0,50]);

5.仿真结果

6.完整程序下载

完整可运行代码,博主已上传至优快云,使用版本为matlab2022a:

(本程序包含程序操作步骤视频)

基于GMSK调制解调+LDPC编译码通信链路matlab误码率仿真【包括程序,中文注释,程序操作视频】资源-优快云文库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值