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

目录

1.4ASK调制原理

2. 4ASK解调原理

3.LDPC编译码

4.MATLAB程序

5.仿真结果

6.完整程序下载


1.4ASK调制原理

       ASK即“幅移键控”又称为“振幅键控”,其中2ASK又称为“开关键控”(通断键控)的,所以又记作OOK信号。ASK是一种相对简单的调制方式。幅移键控(ASK)相当于模拟信号中的调幅,只不过与载频信号相乘的是二进制数码而已。幅移就是把频率、相位作为常量,而把振幅作为变量,信息比特是通过载波的幅度来传递的。

       MASK,又称多进制数字调制法。在二进制数字调制中每个符号只能表示0和1(+1或-1)。但在许多实际的数字传输系统中却往往采用多进制的数字调制方式。与二进制数字调制系统相比,多进制数字调制系统具有如下两个特点:第一:在相同的信道码源调制中,每个符号可以携带log2M比特信息,因此,当信道频带受限时可以使信息传输率增加,提高了频带利用率。但由此付出的代价是增加信号功率和实现上的复杂性。 第二,在相同的信息速率下,由于多进制方式的信道传输速率可以比二进制的低,因而多进制信号码源的持续时间要比二进制的宽。加宽码元宽度,就会增加信号码元的能量,也能减小由于信道特性引起的码间干扰的影响等。

       在 4ASK 调制中,我们要将二进制信息序列映射到不同幅度的载波信号上。设输入的二进制信息序列为{bn},每两个二进制位构成一组,共有种组合00、01、10、11。

载波信号

根据上述映射关系,4ASK调制信号可以表示为:

2. 4ASK解调原理

相干解调过程

非相干解调过程

二进制2ASK与四进制MASK调制性能的比较:

      在相同的输出功率和信道噪声条件下,MASK的解调性能随信噪比恶化的速度比OOK要迅速得多。这说明MASK应用对SNR的要求比普通OOK要高。在相同的信道传输速率下M电平调制与二电平调制具有相同的信号带宽。即在符号速率相同的情况下,二者具有相同的功率谱。

       虽然,多电平MASK调制方式是一种高效率的传输方式,但由于它的抗噪声能力较差,尤其是抗衰落的能力不强,因而它一般只适宜在恒参信道下采用。

本课题采用的是相干解调。

3.LDPC编译码

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

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

完整链路流程为:

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

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

3.LDPC译码 → u^       

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

4.MATLAB程序

58..................................
%%
%4ASK
CARRIER=[];
sa  = sin(2*pi*f1*t); % 生成零信号(对应比特0)
sa0 = 0*sin(2*pi*f1*t); % 生成零信号(对应比特0)
sa1 = 0.25*sin(2*pi*f1*t); % 生成载波信号(对应比特1)
sa2 = 0.5*sin(2*pi*f1*t); % 生成载波信号(对应比特2)
sa3 = 0.75*sin(2*pi*f1*t); % 生成载波信号(对应比特3)
% 调制
ask=[]; % 初始化ASK信号
for i=1:Num
    if bits(i)==0
        ask=[ask sa0]; % 如果比特为1,添加sa1到ASK信号
    end
    if bits(i)==1
        ask=[ask sa1]; % 如果比特为1,添加sa1到ASK信号
    end
    if bits(i)==2
        ask=[ask sa2]; % 如果比特为1,添加sa1到ASK信号
    end
    if bits(i)==3
        ask=[ask sa3]; % 如果比特为1,添加sa1到ASK信号
    end
    CARRIER=[CARRIER,sa];
end



%%
Ydemod  = ask.*CARRIER;

Ydemod  = awgn(Ydemod,SNR(ij2),'measured');
%转换为二进制
yod2=func_dec2bin(yod);

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

err(ij2,kk) = 1-length(find(bits0(1:end)==x_hat(1:end)'))/length(x_hat(1:end));
end
end

figure;
semilogy(SNR,mean(err,2),'b-s');
grid on
xlabel('SNR');
ylabel('error');
title('4ASK+LDPC调制解调误码率曲线');


if max_iter==2
save R21.mat SNR err
end
if max_iter==3
save R22.mat SNR err
end
if max_iter==30
save R2.mat SNR err
end

5.仿真结果

6.完整程序下载

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

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

基于4ASK调制解调+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、付费专栏及课程。

余额充值