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

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

时间:2024/2/19 0:04:11 点击:

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

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

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

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

点击店铺

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

2.部分仿真图预览


3.算法概述

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

4.部分源码

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

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

0X_039m

---

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