首页 > 其他分享 >m基于OFDM+QPSK和LDPC编译码以及LS信道估计的无线图像传输matlab仿真,输出误码率,并用图片进行测试

m基于OFDM+QPSK和LDPC编译码以及LS信道估计的无线图像传输matlab仿真,输出误码率,并用图片进行测试

时间:2024-03-03 12:44:22浏览次数:20  
标签:误码率 QPSK OFDM int Guard 信道 func out pilot

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

2.算法涉及理论知识概要

        无线图像传输: 图像数据首先被分割成多个数据包,然后每个数据包经过LDPC编码,接着按OFDM符号映射规则将编码后的比特流映射到各个子载波上进行QPSK调制。在接收端,先利用LS信道估计恢复出原始信号,再经解码得到图像数据,最后还原出原始图像。结合OFDM、QPSK调制、LDPC编译码和LS信道估计,可以构建一个鲁棒的无线图像传输系统。该系统能够在多径和衰落信道中实现可靠的图像传输,通过纠错编码提高传输的可靠性,并通过信道估计来补偿信道对信号的影响

 

        OFDM(正交频分复用)与QPSK调制

 

         OFDM是一种多载波调制技术,其基本思想是将高速数据流分散到多个并行的窄带子载波上进行传输,每个子载波上的数据速率较低,从而降低符号间干扰。对于每个子载波,采用的是QPSK(Quadrature Phase Shift Keying)调制方式,它通过两个正交的基带信号来携带信息,每个信号有2个可能的状态,因此一个QPSK符号可以表示4种状态,对应二进制的00, 01, 10, 11。

 

        LDPC(低密度奇偶校验码)编解码

 

        LDPC码是一种具有稀疏校验矩阵的线性分组码,其性能接近香农极限。编码过程主要是根据预定义的校验矩阵H,将信息比特通过线性运算转化为包含校验比特的编码比特序列。解码通常采用 belief propagation(BP)算法或者最小和(min-sum)算法,在接收端对收到的带有噪声的数据进行迭代软判决译码。

 

       LS(最小二乘)信道估计

 

       在无线通信系统中,由于多径效应等因素,信号在传输过程中会受到信道的影响。LS信道估计算法主要用于估计发送端到接收端的信道频率响应。假设已知导频信号x[n],接收到的信号为y[n],则信道冲激响应h[n]可以通过以下公式估计:

 

        h_LS = (X^T X)^{-1} X^T y

 

        其中,X是导频信号构成的矩阵,y是接收到的对应导频位置的信号向量,h_LS是对信道冲激响应的LS估计。

 

3.MATLAB核心程序

 

for i=1:length(SNR_dB) 
    i
    Error   = 0;  
    err_all = 0;
    Rimages = [];
    sigma   = sqrt(1./(2*10^(SNR_dB(i)/10)*R));  
    for iii=1:length(datbin)/Iimage_len
        [i,iii]
       %%
        %以单天线方式产生测试信号
        %msg                            = rand(Len*Nc/4,1)>=0.5;
        msg                            = [datbin(Iimage_len*(iii-1)+1:Iimage_len*iii)]';
        %turbo编码
        %LDPC编码
        seridata1                      = [mod(msg'*G,2)];  
        seridata                       = [seridata1,zeros(1,Len*Nc-length(seridata1))]';
        %QPSK映射
        [Qpsk0,Dqpsk_pilot,symbol_bit] = func_piQPSK_mod(seridata);
        %变换为矩阵   
        Qpsk_matrix                    = reshape(Qpsk0,fftlen,Nc);
        [Pilot_in,pilot_num,Pilot_seq,pilot_space] = func_insert_pilot(Dqpsk_pilot,Qpsk_matrix,pilot_type,T,TG);
        Pilot_in                       = fft(Pilot_in);
        %sub carrier mapping
        Pilot_in                       = func_subcarrierMap(Pilot_in); 
        %IFFT transform,产生OFDM信号
        ifft_out                       = ifft(Pilot_in);
        %插入包含间隔     
        Guard_int                      = ceil(BWs/fftlen);  
        Guard_int_ofdm                 = func_guard_interval_insert(ifft_out,fftlen,Guard_int);
        %将矩阵数据转换为串行进行输出
        Guard_int_ofdm_out             = reshape(Guard_int_ofdm,1,(fftlen+Guard_int)*(Nc+pilot_num));
        
       %%
        %Step1:大规模MIMO信道
        [Hm,Hmmatrix]            = func_mychannels(Radius,Scale1,Scale2,Nh,Nv);       
        %Step2:多径参数和大规模MIMO参数输入到信道模型中
        %信道采样点数,每个调制符号采一个点
        [passchan_ofdm_symbol]   = func_conv_channels(Hmmatrix,Guard_int_ofdm_out,Nmultipath,Pow_avg,delay_multi,Fre_offset,timeval,iii);
        %Step3:噪声信道 
        Rec_ofdm_symbol          = awgn(passchan_ofdm_symbol,SNR_dB(i),'measured');
        
       %%
        %开始接收
        Guard_int_remove = func_guard_interval_remove(Rec_ofdm_symbol,(fftlen+Guard_int),Guard_int,(Nc+pilot_num));
        %FFT
        fft_out          = fft(Guard_int_remove);
        %sub carrier demapping
        fft_out          = func_desubcarrierMap(fft_out);
        fft_out          = ifft(fft_out);
        %信道估计
        %ls
        [Sig_Lrmmse,Hs]  = func_ls_estimation(fft_out,pilot_space,Pilot_seq,pilot_num);
        %解调
        Dqpsk            = func_pideMapping(Sig_Lrmmse,fftlen*Nc);
        %LDPC解码
        z_hat            = func_Dec(2*Dqpsk(1:end-(Len*Nc-length(seridata1)))-1,sigma,H,max_iter);
        Dqpsk_decode     = round(z_hat(size(G,2)+1-size(G,1):size(G,2)));
        Rimages = [Rimages,[Dqpsk_decode(1:Len*Nc/4)]'];
    end
    Rimages_snr{i} = Rimages;
end

 

  

 

标签:误码率,QPSK,OFDM,int,Guard,信道,func,out,pilot
From: https://www.cnblogs.com/51matlab/p/18049835

相关文章

  • m基于深度学习的QPSK调制解调系统相位检测和补偿算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要         在数字通信中,正交相移键控(QPSK)是一种高效的调制方法,它能够在有限的带宽内传输更多的信息。然而,在实际通信过程中,由于信道噪声、多径效应等因素,接收到的QPSK信号可能会出现相位偏移,导......
  • OFDM系统各种调制阶数的QAM误码率(Symbol Error Rate)与 误比特率(Bit Error Rate)仿真结
    本文是OFDM系统的不同QAM调制阶数的误码率与误比特率仿真,仅考虑在高斯白噪声信道下的情景,着重分析不同信噪比下的误码(符号)率性能曲线,不关心具体的调制与解调方案,仿真结果与理论的误码率曲线进行了对比。考虑一个简单的OFDM系统,每个频域子载波承载一个QAM调制符号,在经过不同信噪比......
  • m基于码率兼容打孔LDPC码nms最小和译码算法的LDPC编译码matlab误码率仿真
    1.算法仿真效果matlab2022a仿真结果如下: 2.算法涉及理论知识概要       码率兼容打孔LDPC码BP译码算法是一种改进的LDPC译码算法,能够在不同码率下实现更好的译码性能。该算法通过在LDPC码中引入打孔操作,使得码率可以灵活地调整,同时利用BP(BeliefPropagation)译码算法......
  • m基于码率兼容打孔LDPC码oms最小和译码算法的LDPC编译码matlab误码率仿真
    1.算法仿真效果matlab2022a仿真结果如下: 2.算法涉及理论知识概要       码率兼容打孔LDPC码BP译码算法是一种改进的LDPC译码算法,能够在不同码率下实现更好的译码性能。该算法通过在LDPC码中引入打孔操作,使得码率可以灵活地调整,同时利用BP(BeliefPropagation)译码算法......
  • QPSK调制解调+载波同步
    代码%%基本参数M=240;%产生码元数L=100;%每个码元采样次数fc=50e3;%载波频率50kHz%flocal=50010;%接收端的本地载波频率flocal=50100;%模拟接收端载波频率不同步的情况Rb=......
  • QPSK调制解调
    DVB-S使用QPSK的原因选择调制方式的目的是为了传输信号的特性和传输信道相匹配,使得接收端能尽量无失真地接收信号DVB-S的卫星通信信道是一个带限非线性的恒参信道,对调制方式有以下要求:由于卫星信道的非线性和AM/PM效应,要求已调波的包络是等幅的由于卫星信道的带限特性,......
  • QPSK simulink实现
    调制部分总体框架各模块参数升余弦滚降滤波器滚降系数为1单双极性变换各阶段波形BufferDemuxRaisedCosineTransmitFilterQPSK信号功率谱密度解调部分经过AWGN信道后,假设已经进行了载波同步部分模块参数载波模块PulseGenerator由于经过了串并转换......
  • 基于协作mimo系统的RM编译码误码率matlab仿真,对比硬判决译码和软判决译码
    1.算法运行效果图预览 2.算法运行软件版本matlab2022a 3.算法理论概述       基于协作MIMO系统的RM编译码是无线通信领域中的一项重要技术。在协作MIMO系统中,多个天线协同工作以提供更高的数据传输速率和更好的可靠性。RM(Reed-Muller)码是其中的一种常用编码方案,......
  • Decoding the Wireless World: OFDM vs. OFDMA
    Inthedynamicrealmofwirelesscommunication,anuancedunderstandingofOFDM(OrthogonalFrequencyDivisionMultiplexing)anditsadvancedcounterpart,OFDMA(OrthogonalFrequencyDivisionMultipleAccess),isessential.Let'sexplorethekeydiff......
  • m基于码率兼容打孔LDPC码ms最小和译码算法的LDPC编译码matlab误码率仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要码率兼容打孔LDPC码BP译码算法是一种改进的LDPC译码算法,能够在不同码率下实现更好的译码性能。该算法通过在LDPC码中引入打孔操作,使得码率可以灵活地调整,同时利用BP(BeliefPropagation)译码算法进行迭代译码,提高了......