m基于多D2D通信对和多蜂窝用户的LTE预编码技术matlab仿真

1.算法描述

LTE网络中采用MIMO技术增加系统容量,提升吞吐率,从理论上来看,多天线的空分复用能成倍增加系统容量。但实际上并非如此,如,22MIMO的容量C(容量)=22MIMO 小于两倍的SISO容量C(容量)=2SISO,这是因为容量增加了,干扰增大了,干扰主要是由于信道矩阵中信道的相关性造成的,为了消除信道相关性造成影响,需要在接收端对H进行评估,并做线性均衡,最大化MIMO信道矩阵H的容量。


为了获取更高的MIMO容量,接收机侧需要对MIMO的发射矩阵H中的每个信道都进行均衡处理,消除信道间的影响,这样增加接收机的实现复杂度。如SISO模式,接收机需要线性均衡处理一个信道,而对于一个2*2MIMO模式,接收机需要处理评估4个信道;其次,接收端若将H矩阵中的多个信道相关性评估结果反馈给发射机,这会增加系统开销。另一个是,若通过增加天线空间来消除信道间的影响,但天线近处的杂散环境使实现难度增加。于是提出了通过技术改进解决,这个方法就是预编码(Precoding)。

因此,预编码(Precoding)的目的是降低接收机消除信道间影响实现的复杂度,同时减少系统开销,最大提升MIMO的系统容量。当然,消除MIMO信道间的影响,可以在接收机侧实现,也可以通过改变发射机的发射方式,对发射信号进行预处理,辅助接收机消除信道间的影响,这种发射方式的改变就是通过预编码实现的。

为了识别MIMO矩阵H中有用的通道,需要把多个通道(如22MIMO H11\H12\H21\H22)转化成类似于SISO的一对一模式,实现发送信号S1对应接收信号R1,S2对应接收信号R2,也就是将多个MIMO交叉通道转换成多个平行的一对一信道。这个过程通过信道矩阵SVD(奇异值分解)实现。如r=Hs+n,变换为r=UΣ(V*)Ts+n,经过接收端的处理=Σ(V)T*s+UHn,从结果可以发现发射端不再需要知道MIMO信道矩阵H,而知道V(共轭转置矩阵,又叫酉矩阵)即可,此处的V即码本(Codebook),3GPP定义了一系列V矩阵,eNodeB和ue侧均可获得,应用时根据PMI选择一个可以使信道矩阵H容量最大的V。到这里,预编码就很好理解了,实际上就是在发射端对发射信号S乘以V,与后面SVD过程匹配,这样在接收端需要处理的复杂性与开销大大减少了。


考虑下行链路的蜂窝网络中存在多个D2D通信对和多个蜂窝用户,它们共享相同的频率资源并且蜂窝用户为主用户。



1)传统波束赋形算法1


该算法是一种最简单传统的波束赋形策略,其原理是对于第k个蜂窝用户,赋形矢量wk,conv是自身方向上的信道增益矢量,公式定义如下:




因此,在这个赋形策略中,基站主要针对蜂窝用户进行赋形,并没有对其关联的D2D通信对做干扰消除。


2)ZF波束赋形算法1


在ZF波束赋形算法1中,消除了蜂窝用户之间内部的干扰,第k个蜂窝用户传输在其他所有用户信道的零空间。特别是赋形矢量 ,对于第 个用户将会正交其他所有蜂窝用户的信道矢量。公式如(6)所示:



3)ZF波束赋形算法2


在ZF波束赋形算法中,消除了基站到D2D通信的干扰,第k个蜂窝用户数据传输在所有D2D通信信道的零空间。特别是,第k个蜂窝用户波束赋形矢量 将会正交所有基站到D2D通信对信道矢量。



仿真结果与传统波束赋形方法、ZF波束赋形算法1及ZF波束赋形算法2解析结果对比与分析。仿真模型由单个蜂窝小区下,T=4为基站天线数目,K=4为蜂窝用户数量为4,D=4为D2D通信对数量。在仿真场景中,D2D通信对和蜂窝用户到基站的距离固定且采用简单的路径损耗模型。


2.仿真效果预览

matlab2022a仿真结果如下:




3.MATLAB核心程序

clc;

clear;

close all;

warning off;

addpath 'func\'

addpath 'func\modulation\'

addpath 'func\estmation\'

addpath 'func\cp\'

addpath 'func\LTEC\'

addpath 'func\precodeing\'



SNRS      = [0:4:16];


for jj = 1:length(SNRS);


Tx_n      = 4;   

Rx_n      = 4;   

%整体信噪比

SNR       = SNRS(jj);  

Nfft      = 1024;

Nid       = 17;

Sym_Len   = 7;

CP_length = 144;

CPNfft    = Nfft+CP_length;


for y=1:100

y

SNRS(jj)

noise     = SNR;

N0        = 10^(-noise/10);

%产生信道估计所用的测试信号,功能类似导频

[subframe,data_v,data_v0,data_v1,data_v2,data_v3] = func_data_gen(Tx_n,Rx_n,Sym_Len,Nid);

number_length                                     = length(find(subframe == 0));

%IFFT

data_ifft1 = zeros(Nfft,2*Sym_Len);

data_ifft2 = zeros(Nfft,2*Sym_Len);

data_ifft3 = zeros(Nfft,2*Sym_Len);

data_ifft4 = zeros(Nfft,2*Sym_Len);

for i=1:2*Sym_Len

data_ifft1(:,i) = ifft(data_v0(:,i),Nfft);

data_ifft2(:,i) = ifft(data_v1(:,i),Nfft);

data_ifft3(:,i) = ifft(data_v2(:,i),Nfft);

data_ifft4(:,i) = ifft(data_v3(:,i),Nfft);

end

%插入CP

WithCP_sequence1 = zeros(CPNfft,2*Sym_Len);

WithCP_sequence2 = zeros(CPNfft,2*Sym_Len);

WithCP_sequence3 = zeros(CPNfft,2*Sym_Len);

WithCP_sequence4 = zeros(CPNfft,2*Sym_Len);


for i=1:2*Sym_Len

WithCP_sequence1(:,i) = func_CP_In(data_ifft1(:,i).',CP_length);

WithCP_sequence2(:,i) = func_CP_In(data_ifft2(:,i).',CP_length);

WithCP_sequence3(:,i) = func_CP_In(data_ifft3(:,i).',CP_length);

WithCP_sequence4(:,i) = func_CP_In(data_ifft4(:,i).',CP_length);

end

T1=reshape(WithCP_sequence1,1,CPNfft*2*Sym_Len);

T2=reshape(WithCP_sequence2,1,CPNfft*2*Sym_Len);

T3=reshape(WithCP_sequence3,1,CPNfft*2*Sym_Len);

T4=reshape(WithCP_sequence4,1,CPNfft*2*Sym_Len);


[r1,channel_impulse1,delay_number1,tap_delay1]=func_LTEChan(T1,'EPA');

[r2,channel_impulse2,delay_number2,tap_delay2]=func_LTEChan(T2,'EPA');

[r3,channel_impulse3,delay_number3,tap_delay3]=func_LTEChan(T3,'EPA');

[r4,channel_impulse4,delay_number4,tap_delay4]=func_LTEChan(T4,'EPA');

[r5,channel_impulse5,delay_number5,tap_delay5]=func_LTEChan(T1,'EPA');

[r6,channel_impulse6,delay_number6,tap_delay6]=func_LTEChan(T2,'EPA');

[r7,channel_impulse7,delay_number7,tap_delay7]=func_LTEChan(T3,'EPA');

[r8,channel_impulse8,delay_number8,tap_delay8]=func_LTEChan(T4,'EPA');

R1     = (r1+r2+r3+r4);

R2     = (r5+r6+r7+r8);

a      = awgn(R1*sqrt(Nfft),noise,'measured');

b      = awgn(R2*sqrt(Nfft),noise,'measured');


noise1 = a/sqrt(Nfft)-R1;

noise2 = b/sqrt(Nfft)-R2;

R1     = a/sqrt(Nfft);

R2     = b/sqrt(Nfft);


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%去CP

WithCP_sequence_1 = reshape(R1,CPNfft,2*Sym_Len);

WithCP_sequence_2 = reshape(R2,CPNfft,2*Sym_Len);

NoCP_sequence1    = zeros(2*Sym_Len,Nfft);

NoCP_sequence2    = zeros(2*Sym_Len,Nfft);

for i=1:2*Sym_Len

NoCP_sequence1(i,:) = func_CP_del(WithCP_sequence_1(:,i),CP_length);

NoCP_sequence2(i,:) = func_CP_del(WithCP_sequence_2(:,i),CP_length);

end

NoCP_sequence1=NoCP_sequence1.';

NoCP_sequence2=NoCP_sequence2.';

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%FFT

FFTed1=zeros(Nfft,2*Sym_Len);

FFTed2=zeros(Nfft,2*Sym_Len);

for i=1:2*Sym_Len

FFTed1(:,i)=fft(NoCP_sequence1(:,i));

FFTed2(:,i)=fft(NoCP_sequence2(:,i));

end

%信道估计

[MH10,MH11,MH12,MH13] = func_channel_estmation(FFTed1,0,Nid,1,Tx_n,Sym_Len,Rx_n);

[MH20,MH21,MH22,MH23] = func_channel_estmation(FFTed2,0,Nid,1,Tx_n,Sym_Len,Rx_n);

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355

推荐阅读更多精彩内容