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

目录

1. 2ASK调制原理

2. 2ASK解调原理

3.LDPC编译码

4.MATLAB程序

5.仿真结果

6.完整程序下载


1. 2ASK调制原理

       幅度键控(Amplitude-Shift Keying,ASK)是一种数字调制方案,用于将数字信号转换为适合在模拟通信信道中传输的信号。ASK信号的产生原理基于幅度偏移键控,其中二进制数据位通过载波信号的幅度偏移表示。

       ASK调制的基本原理是利用载波信号的幅度变化来传递数字信息。在二进制ASK中,数据以0和1的形式表示,其中0对应于无幅度的载波信号,而1对应于一定幅度的载波信号。因此,二进制数据位被映射到不同的幅度级别上。

       对于ASK调制,一个基本的数学模型可以表示为:y(t) = A(t)cos(2πfct + θ(t)),其中A(t)是时间变量,fc是载波频率,θ(t)是相位函数,通常是一个与输入数据有关的函数。

      在实际应用中,ASK调制具有实现简单、抗干扰性能较好等优点。然而,ASK也存在一些缺点,如频带利用率较低、误码率较高以及对信道条件变化较为敏感等。因此,在选择使用ASK调制时需要根据具体的应用场景和信道条件进行综合考虑。

       总结起来,幅度键控(ASK)是一种数字调制方案,通过改变载波信号的幅度来传递数字信息。它具有实现简单、抗干扰性能较好等优点,但也存在频带利用率较低、误码率较高以及对信道条件变化敏感等缺点。在实际应用中需要根据具体需求进行选择和使用。        振幅键控,记做ASK,或称其为开关键控(通断键控),记做OOK 。

       二进制数字振幅键控通常记做2ASK。对于振幅键控这样的线性调制来说,在二进制里,2ASK是利用代表数字信息“0”或“1”的基带矩形脉冲去键控一个连续的载波,使载波时断时续的输出,有载波输出时表示发送“1”,无载波输出时表示发送“0”。根据线性调制的原理,一个二进制的振幅调制信号可以表示完成一个单极性矩形脉冲序列与一个正弦型载波的乘积。

2. 2ASK解调原理

相干解调

非相干解调

       2ASK 调制解调通信链路是一种简单有效的数字通信技术,其调制原理基于载波幅度的变化传递二进制信息,解调可以采用相干或非相干的方式。相干解调需要精确的载波同步但性能较好,非相干解调实现简单但性能稍差。在不同的应用场景中,可根据具体情况选择合适的调制解调方式,并结合脉冲成型、功率放大、上变频等技术,以满足不同的通信需求。

3.LDPC编译码

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

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

完整链路流程为:

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

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

3.LDPC译码 → u^

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

4.MATLAB程序

55.....................................................
%ASK
sa1 = sin(2*pi*f1*t); % 生成载波信号(对应比特1)
sa0 = 0*sin(2*pi*f1*t); % 生成零信号(对应比特0)

% 调制
ask=[]; % 初始化ASK信号
CARRIER=[];
for i=1:Num
    if bits(i)==1
        ask=[ask sa1]; % 如果比特为1,添加sa1到ASK信号

    else
        ask=[ask sa0]; % 如果比特为0,添加sa0到ASK信号

    end
    CARRIER=[CARRIER,sa1];
end

ask  = awgn(ask,SNR(ij2),'measured');


Ydemod  = ask.*CARRIER;
%低通滤波
w       = hamming(10);
 

yfilter = filter(w,1,Ydemod);
%判决
yod     = [];
for i=1:Num
    tmps = yfilter(4*Nsamp*(i-1)+Nsamp+1:4*Nsamp*i-Nsamp);
    if mean(tmps)>0.5
       yod     = [yod,1];
    else
       yod     = [yod,0];
    end
 
end

sigma = sqrt(1./(2*10^(SNR(ij2)/10)*R));  
z_hat = func_Dec(2*yod'-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);
end
end


 

figure;
semilogy(SNR,mean(err,2),'-b^',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.2,0.9,0.5]);
grid on
xlabel('SNR');
ylabel('error');
title('2ASK+LDPC误码率曲线');


if max_iter==1
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:

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

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

余额充值