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

m基于LTE的通信链路matlab仿真,上行为SC-FDMA和下行为OFDMA

时间:2023/11/17 21:59:14 点击:

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

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

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

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

点击店铺

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

2.部分仿真图预览



3.算法概述

   LTE(Long-Term Evolution)是下一代无线通信技术,它采用了SC-FDMA(Single-Carrier Frequency-Division Multiple Access)作为上行链路传输方案,以及OFDMA(Orthogonal Frequency-Division Multiple Access)作为下行链路传输方案。这两种技术都属于多址接入技术,能够实现多用户同时使用同一频段进行通信,而不会相互干扰。

4.部分源码

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

%每个SNR点上仿真若干次

for i=1:length(SNR_dB) 

    i

    Error   = 0;  

    err_all = 0;

    for iii=1:nloop(i)

        iii

        rng(iii);

       %%

        %产生测试信号

        msg       = rand(Len*Nc/4,1)>=0.5;

        %turbo编码

        seridata1 = func_turbo_code(msg,N,M);

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

        %每次仿真信道采样的开始位置

        count_begin      =(iii-1)*(5*counter);

        trms_1           = delay_avg/timeval;

        t_max            = 4e-6/timeval;

        %信道采样点数,每个调制符号采一个点

        [passchan_ofdm_symbol,H] = func_multipath_chann(Guard_int_ofdm_out,Nmultipath,Pow_avg,delay_multi,Fre_offset,timeval,counter,count_begin);

        %加入噪声 

        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);

        %信道估计

        %LMMSE

        [Sig_Lrmmse,Hs]  = func_lmmse_estimation(fft_out,pilot_space,Pilot_seq,pilot_num,trms_1,t_max,10^(SNR_dB(i)/10));

        %解调

        Dqpsk            = func_deMapping(Sig_Lrmmse,fftlen*Nc);

        %turbo解码

        Dqpsk_decode     = [func_turbo_decode(2*Dqpsk(1:end-(Len*Nc-length(seridata1)))-1,N,M)]';

        %计算误码率

        err_num          = Len*Nc/4-length(find(msg==Dqpsk_decode(1:Len*Nc/4)));

        Error            = Error + err_num;

    end

    %计算误码率

    err_all       = err_all+Len*Nc/4;

    Err_Rate(i)   = Error/err_all/nloop(i);

end

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

papr     = zeros(1,PAPR_len);

psFilter = r;

for n = 1:PAPR_len

    n

    tmp  = round(rand(BLOCK,2));

    tmp  = tmp*2 - 1;

    data = (tmp(:,1) + j*tmp(:,2))/sqrt(2);

    X    = fft(data);

    Y    = zeros(totalSubcarriers,1);   

    Y(1:Q:totalSubcarriers) = X;

    y    = ifft(Y);

    y_oversampled(1:Nos:Nos*totalSubcarriers) = y;

    y_result = filter(psFilter, 1, y_oversampled);

    %PAPR.

    papr(n) = 10*log10(max(abs(y_result).^2) / mean(abs(y_result).^2));

end

[X1,X2] = hist(papr,50);

N(ii,:)=X1;

Xs(ii,:)=X2;

end

figure

semilogy(Xs(1,:),1-cumsum(N(1,:))/max(cumsum(N(1,:))),'b','linewidth',2);

hold on

semilogy(Xs(2,:),1-cumsum(N(2,:))/max(cumsum(N(2,:))),'r','linewidth',2);

hold on

semilogy(Xs(3,:),1-cumsum(N(3,:))/max(cumsum(N(3,:))),'k','linewidth',2);

title ('PAPR of SC-FDMA')

xlabel ('PAPR[dB]')

ylabel ('{PAPR(PAPR>PAPR0)}')

grid on;

legend('User = 16','User = 32','User = 64');

%发送信号

figure

stem(msg(500:2000));

title('发送信号');

figure

stem(Dqpsk_decode(500:2000));

title('接收信号');

% 误码率

figure

semilogy(SNR_dB,Err_Rate,'b-o');

grid on

xlabel('SNR');

ylabel('BER');

axis([0.999,8,1e-5,1]);

%星座图

[R,C] = size(Sig_Lrmmse);

RR    = reshape(Sig_Lrmmse,[R*C,1]);

scatterplot(RR);  

save up.mat N Xs seridata RR SNR_dB Err_Rate

0X_033m

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