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

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

1.算法仿真效果
matlab2022a仿真结果如下:
1.jpeg
2.jpeg
3.jpeg
4.jpeg
5.jpeg
6.jpeg

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

2.1下行OFDMA
单流+BCH编码译吗+QPSK+lmmse信道估计,其大概结构如下:

7e67f1975870836402e680b608c9e7b2_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

    SC-FDMA是一种单载波频分多址接入技术。其基本思想是将频域上的数据符号通过离散傅里叶变换(DFT)转换到时域,然后在时域上加上循环前缀(CP)以消除多径效应,再将数据发送到无线信道中。在接收端,去掉循环前缀后,通过离散傅里叶反变换(IDFT)恢复频域信号。

发送端:
X[k] = Σ_{n=0}^{N-1} x[n] e^{-j2πkn/N} (0 ≤ k ≤ N-1)

其中,X[k]是频域信号,x[n]是时域信号,N是子载波数。

接收端:
x[n] = (1/N) Σ_{k=0}^{N-1} X[k] e^{j2πk*n/N} (0 ≤ n ≤ N-1)

2.2上行SC-FDMA
单流+Turbo编码译吗+QPSK+lmmse信道估计,其大概结构如下:
0469871d67c42726d612fd1d8877ccda_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

    OFDMA是正交频分多址接入技术。它将整个频带划分成多个子载波,每个子载波可以独立调制一个数据流。由于子载波之间是正交的,因此可以实现多用户同时使用同一频段进行通信而不会相互干扰。令S[k]表示第k个子载波上的数据符号,f[k]表示第k个子载波的频率,T表示OFDM符号周期。则发送信号可以表示为:

s(t) = Σ_{k=0}^{N-1} S[k] e^{j2πf[k]t} (0 ≤ t ≤ T)

在接收端,通过匹配滤波器组对每个子载波进行解调,恢复出原始数据。解调公式如下:

Y[k] = ∫_{0}^{T} y(t) e^{-j2πf[k]t} dt

其中,Y[k]是第k个子载波上的接收数据,y(t)是接收信号。

    通过SC-FDMA和OFDMA技术,LTE实现了高效的频谱利用和多用户接入。上行链路采用SC-FDMA可以降低峰均功率比(PAPR),减小终端的功放成本和电池消耗;下行链路采用OFDMA能够实现多用户并行传输,提高系统吞吐量。

3.MATLAB核心程序

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
相关文章
|
4天前
|
机器学习/深度学习 算法 Python
基于BP神经网络的金融序列预测matlab仿真
本项目基于BP神经网络实现金融序列预测,使用MATLAB2022A版本进行开发与测试。通过构建多层前馈神经网络模型,利用历史金融数据训练模型,实现对未来金融时间序列如股票价格、汇率等的预测,并展示了预测误差及训练曲线。
|
6天前
|
算法
超市火灾烟雾蔓延及人员疏散的matlab模拟仿真,带GUI界面
本项目基于MATLAB2022A开发,模拟了大型商业建筑中火灾发生后的人员疏散与烟雾扩散情况。算法通过设定引导点指导人员疏散,考虑视野范围、随机运动及多细胞竞争同一格点的情况。人员疏散时,根据是否处于烟雾区调整运动策略和速度,初始疏散采用正态分布启动。烟雾扩散模型基于流体方程,考虑了无风环境下的简化。
|
2天前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
2天前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
|
5天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的宝石类型识别算法matlab仿真
本项目利用GoogLeNet深度学习网络进行宝石类型识别,实验包括收集多类宝石图像数据集并按7:1:2比例划分。使用Matlab2022a实现算法,提供含中文注释的完整代码及操作视频。GoogLeNet通过其独特的Inception模块,结合数据增强、学习率调整和正则化等优化手段,有效提升了宝石识别的准确性和效率。
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
215 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
136 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
97 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
7月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)

热门文章

最新文章