您现在的位置:首页 >> 通信 >> 内容

m基于DVB-T的COFDM+16QAM+LDPC码通信链路matlab性能仿真,包括载波同步,定时

时间:2023/7/18 20:46:27 点击:

  核心提示:0X_010m,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/ZJuakppv

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览



3.算法概述

   基于DVB-T的COFDM+16QAM+LDPC码通信链路是一种常用的数字视频广播系统,用于实现高效的传输和接收。该系统结合了正交频分复用(COFDM)、16QAM调制和低密度奇偶校验(LDPC)编码与解码技术。此外,系统中还包括载波同步、定时同步和信道估计模块,用于实现信号的载波频率和定时偏移的同步,以及信道状态的估计。

4.部分源码

...................................................................................

A_avg        =(3*sqrt(2)*4+sqrt(2)*4+sqrt(10)*8)/16;

Burst        = 1*A_avg*4/3;

%--------------------------------------------------------------------------

%插入分散导频

g            = bin2dec('100000000101');  %伪随机二进制序列生成多项式:x11+x2+1

state        = bin2dec('11111111111');   %伪随机二进制序列生成寄存器初始状态

N            = 2^11-1;                   %生成二进制序列长度

train        = zeros(symbols_per_carrier,carrier_count);

train_sym    = zeros(symbols_per_carrier,carrier_count);

 

for i=1:l+1

    %改成随机数,不用上列PRBS生成法。简化

    m=round(rand(1,carrier_count));   

    train(i,:)=m(1:carrier_count);

end

 

for i=1:l+1

    %分散导频值

    train_sym(i,pilot(i,:))=Burst*2.*(1/2-train(i,pilot(i,:))); 

end

 

signal       = [1:carrier_count];

X3(:,signal) = 0;

 

for i=1:l+1

    %插入分散导频

    X3(i,pilot(i,:)) = train_sym(i,pilot(i,:));        

end

%保留原始插入分散导频

X3_SPCP           = X3(1:4,:);  

X3_SPCP(2:4,1)    = 0;

X3_SPCP(2:4,1705) = 0;

ScPilotX          = X3(1:4,:);      

.............................................................................................

%STEP2:整数倍载波频率同步

Np  = length(CP);

for i=1:12-1;

    tmps=0;

    for p=0:Np-1

        tmps = tmps + X_modify1(i,45*p+1)*conj(X_modify1(i+1,45*p+1));

    end

    fl(i) = abs(tmps);

end

Fre_err   = mean(Ff)+mean(fl);

X_modify2 = X_modify1;

for i1=1:12

    X_modify2(i1,:)=X_modify1(i1,:).*exp(-j*2*pi*(Fre_err));

end

 

subplot(426);

plot(X_modify2(Max_ip,:),'b.');

xlabel('In-Phase');

ylabel('Quadrature');

axis square

title('经定频偏修正的符号');

 

%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%信道估计

r_chestimation        = X_modify2(First_ip:First_ip+8-1,:);

X_modify2             = r_chestimation;

r_chestimation(:,TPS) = 0;

 

for m=1:8

    for k=1:1705

        if (abs(Data_index(m,k))>0.5)

            r_chestimation(m,k)=0;

        end

    end

end

.......................................................................................

%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%-------------LDPC解码 --------------------------------

hDemod    = modem.qamdemod('M', ModulateIndex, 'PhaseOffset', 0, 'SymbolOrder', 'Gray', 'OutputType', 'Bit');

msg_demod = demodulate(hDemod, S_data.');

msg_demod0= 2*msg_demod-1;

msg_dec   = [];

for i = 1:11

    [vhatsd,nb_itersd,successsd] = func_Dec(msg_demod0(Ns*(i-1)+1:Ns*i),newH,N0,Max_iter);

    tmps                         = vhatsd(Ms+1:Ns)';

    msg_dec                      = [msg_dec;tmps];

end

[nChnlErrs BERChnl] = biterr(msg_enc(1:end/4), msg_demod);

[nCodErrs BERCoded] = biterr(msg_orig(1:length(msg_dec)), msg_dec);

 

NERR=NERR+nCodErrs;

NERR

Eind=Eind+BERCoded;

 

end 

Err = [Err,Eind/ind];

end

 

 

figure;

semilogy(EbN0,Err,'b-o');

grid on

xlabel('EbN0');

ylabel('误码率');

save R1.mat EbN0 Err

0X_010m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168