首页 > 其他分享 >通过matlab对比UFMC和OFDM的频谱,星座图

通过matlab对比UFMC和OFDM的频谱,星座图

时间:2023-05-13 23:31:49浏览次数:38  
标签:rxSig OFDM 信道 星座图 comm UFMC 载波

1.算法仿真效果 matlab2022a仿真结果如下: 2.png3.png1.png4.png

2.算法涉及理论知识概要 在通信系统中,信道所能提供的带宽通常比传送一路信号所需的带宽要宽得多。如果一个信道只传送一路信号是非常浪费的,为了能够充分利用信道的带宽,就可以采用频分复用的方法。

   OFDM主要思想是:将信道分成若干正交子信道,将高速数据信号转换成并行的低速子数据流,调制到在每个子信道上进行传输。正交信号可以通过在接收端采用相关技术来分开,这样可以减少子信道之间的相互干扰(ISI) 。每个子信道上的信号带宽小于信道的相关带宽,因此每个子信道上可以看成平坦性衰落,从而可以消除码间串扰,而且由于每个子信道的带宽仅仅是原信道带宽的一小部分,信道均衡变得相对容易。

    OFDM技术是HPA联盟(HomePlug Powerline Alliance)工业规范的基础,它采用一种不连续的多音调技术,将被称为载波的不同频率中的大量信号合并成单一的信号,从而完成信号传送。由于这种技术具有在杂波干扰下传送信号的能力,因此常常会被利用在容易受外界干扰或者抵抗外界干扰能力较差的传输介质中。

   一个OFDM符号之内包含多个经过相移键控(PSK)或者正交幅度调制(QAM)的子载波。

   一旦要把传输的比特分配到各个子载波上,某一种调制模式则将他们映射为子载波的幅度和相位,通常采用等效基带信号来描述OFDM的输出信号:

————————————————

  通用滤波器多载波(Universal Filtered Multi-Carrier,UFMC)是一种新的非正交多载波调制技术,被认为是取代正交频分复用(OFDM),成为5G中某些通信场景下传输波形的候选方案之一。UFMC可以被看成是OFDM和滤波器组多载波(FBMC)的结合,同时保留了这两个波形技术的各自优点。UFMC主要应用在短数据包突发、低时延、宽同步的通信场景中。本文主要针对UFMC系统中的信道估计与均衡技术展开研究。首先阐述UFMC系统的基本原理,包括信号调制、发射、接收各个模块的实现及数学表达式。在此基础上,使用仿真软件搭建UFMC系统仿真平台。然后从抗时频偏差性能、峰均比、频谱效率、滤波器长度等角度对UFMC系统进行性能分析与结果仿真,并和OFDM进行对比,论证UFMC在物联网、传感网中的应用优势。关于UFMC系统的信道估计,先分析了UFMC符号在瑞利多径信道下的性能表现。UFMC的信道估计可以复用已有的OFDM信道 

3.MATLAB核心程序

y1= eyediagram(EqualizedRxSymbols_UFMC,2);
y1.Name ='UFMC eye diagram';
y1.Position = [1180 500 350 200];
 
 
SER_UFMC = comm.ErrorRate;
rxSym = qamdemod(EqualizedRxSymbols_UFMC, 2^bitsPerSubCarrier, 'OutputType', 'integer', 'UnitAveragePower', true);
ser = SER_UFMC(symbolsIn2, rxSym);
 
 
 
BER_UFMC = comm.ErrorRate;
rxBits = qamdemod(EqualizedRxSymbols_UFMC, 2^bitsPerSubCarrier, 'OutputType', 'bit', 'UnitAveragePower', true);
ber_UFMC = BER_UFMC(inpData(:), rxBits);
 
 
 
 
%AWGN
rxSig_OFDM = awgn(RicianChanOut2, snrdB, 'measured');
 
hold on
constDiagRx_OFDM = comm.ConstellationDiagram('ShowReferenceConstellation', ...
    false, 'Position', figposition([40 10 20 25]), ...
    'Title', 'OFDM Pre-Equalization and filtering Symbols', ...
    'Name', 'UFMC Reception', ...
    'XLimits', [-0.05 0.05], 'YLimits', [-0.05 0.05]);
constDiagRx_OFDM(rxSig_OFDM)
 
 
 
% ODFM Receiver
rxSig_OFDM_EQ = rxSig_OFDM./RicianPathGains2;
 
 
 
rxSig_OFDM_EQD = ofdmdemod(rxSig_OFDM_EQ,numFFT,cpLen);
rxSim_OFDM_EQQ = rxSig_OFDM_EQD(offset+1:size(rxSig_OFDM_EQD)-offset);
 
constDiagRx_OFDM_EQ = comm.ConstellationDiagram('ShowReferenceConstellation', false, 'Position', figposition([60 10 20 25]), 'Title', 'OFDM Filtered channel Symbols', 'Name', 'OFDM Reception', 'XLimits', [-1.5 1.5], 'YLimits', [-1.5 1.5]);
 
constDiagRx_OFDM_EQ(rxSim_OFDM_EQQ)
 
 
y2=eyediagram(rxSim_OFDM_EQQ,2);
y2.Name ='OFDM eye diagram';
y2.Position = [1180 60 350 200];
 
 
SER_OFDM = comm.ErrorRate;
rxSym2 = qamdemod(rxSim_OFDM_EQQ, 2^bitsPerSubCarrier, 'OutputType', 'integer', 'UnitAveragePower', true);
ser_ODFM = SER_OFDM(symbolsIn2, rxSym2);
 
disp(['OFDM Reception, SER = ' num2str(ser_ODFM(1)) ' at SNR = ' num2str(snrdB) ' dB'])
 
 
 
BER_OFDM = comm.ErrorRate;
rxBits2 = qamdemod(rxSim_OFDM_EQQ, 2^bitsPerSubCarrier, 'OutputType', 'bit', 'UnitAveragePower', true);
ber_OFDM = BER_OFDM(inpData(:), rxBits2);

标签:rxSig,OFDM,信道,星座图,comm,UFMC,载波
From: https://blog.51cto.com/matworld/6274123

相关文章