Sezione 21.5: Multiplazione spaziale Su Capitolo 21: Sistemi multiantenna o MIMO Sezione 21.7: Trasmissione MIMO - OFDM 

21.6 Trasmissione multiutente o MU - MIMO

Fino ad ora abbiamo discusso di collegamenti mimo punto-punto, ma in generale esiste una forte asimmetria nel numero antenne presenti ai due lati di un collegamento radiomobile, che sono molte di più presso una stazione radio base[1254]  [1254] Il punto accesso di una rete di telefonia mobile, o di una rete WiMax, o l’access point di una rete WiFi casalinga, vedi ad es. https://it.wikipedia.org/wiki/Stazione_radio_base, https://it.wikipedia.org/wiki/WiMAX, https://it.wikipedia.org/wiki/Access_point o bs (il cui numero, decine o anche centinaia, indichiamo ora come nBS) rispetto a quelle (che ora chiamiamo nk) di cui è equipaggiato il k − esimo User Equipment uek (o terminale, o dispositivo) ad essa associato - che in gran parte dei casi, dispone di una sola antenna.
Come poter sfruttare in questo caso l’elevata velocità di trasmissione della bs, resa possibile dalla multiplazione spaziale di cui è capace grazie alle sue nBS antenne? Molto semplice: dedicando ad ogni diverso terminale mobile uek una (o più) differente
figure f-138-sdmu.png
antenna di trasmissione della bs, realizzando una sorta di mimo distribuito, anche se il passaggio non è così indolore, come andiamo ad approfondire dopo aver distinto tra le due direzioni di trasmissione, indicando come uplink il verso tra i terminali e la bs, e come downlink la direzione opposta, il cui insieme dei singoli collegamenti è indicato anche come canale broadcast.
Uplink
In questa direzione le cose non sono molto diverse da quanto già approfondito. La bs riceve un segnale[1255]  [1255] Supponiamo qui che i terminali mobili siano sincronizzati temporalmente, e che il sistema sia in grado di compensare i diversi ritardi di propagazione per la corretta determinazione degli istanti di campionamento dei simboli.
rBS = Uk = 1 Huksk + n = Hus + n
in cui Huk è la matrice (N × nk) di canale mimo di uplink tra uek e bs, sk è il vettore (nk × 1) dei simboli inviati da uek, Hu = [Hu1 Hu2 ⋯  HuU] è la matrice (nBS × Uk = 1nk) di uplink da tutti gli U terminali uek, ed s = [sT1 sT2 ⋯  sTU]T è il vettore dei simboli complessivamente trasmessi.
Ogni uek con più di una antenna può trasmettere più flussi dati ricorrendo alla multiplazione spaziale, oppure se nk = 1 il singolo collegamento è di tipo simo. In entrambi i casi la bs deve separare tra loro i contributi ricevuti dagli U utenti adottando le tecniche illustrate al § 21.5 e basate sulla conoscenza della Hu di uplink, che la bs può stimare nei confronti degli uek attivi. Fortunatamente la dispersione spaziale degli utenti fa si che Hu sia ben condizionata[1256]  [1256] Infatti ogni canale utente-bs sperimenta cammini multipli completamente differenti ed incorrelati, rendendo le colonne di H indipendenti, al punto da definirle come una firma spaziale di ciascun utente, dando al sistema di trasmissione la denominazione di space division multiple access o sdma., senza dunque porre problemi per la sua inversione.
Downlink
In questa direzione il generico dispositivo uek con nk antenne riceve un vettore rk di dimensione nk × 1 pari a
(21.271) rk = Hdks + n
in cui Hdk (nk × nBS) individua il canale mimo di broadcast tra tutte le antenne di bs e le nk di uek, e s (nBS × 1) è il vettore di simboli destinati a tutti gli U utenti. Purtroppo essendo nk < nBS, il dispositivo mobile non può adottare le soluzioni previste al § 21.5 per cancellare i termini di interferenza, più evidenti particolarizzando la (21.271) al caso di un terminale ad antenna singola, che riceve un valore
(21.272)
rk = hTks + n = hksk + Uh = 1, h ≠ k hhsh + n
in cui hk è il vettore[1257]  [1257] Corrispondente all’unica riga di Hdk pertinente all’utente k qualora nk = 1. Il vettore hk può essere pensato nel senso letterale di indicare una direzione (a coordinate complesse) nello spazio generato dalle antenne della bs, dunque non la direzione fisica dell’utente, ma che lo distingue comunque dagli altri. (nBS, 1) dei guadagni complessi tra le nBS antenne di trasmissione e l’unica di ricezione, hk è l’elemento di hk corrispondente all’antenna della bs che trasmette il simbolo sk diretto all’utente k, ed il termine Uh = 1, h ≠ k hhsh individua l’interferenza da parte degli altri e che si aggiunge al contributo del rumore[1258]  [1258] A ben vedere, per un numero U elevato di utenti si applica il teorema centrale del limite, ed il termine Uh = 1, h ≠ khhsh tende ad una v.a. gaussiana., in modo che si possa parlare di rapporto segnale / interferenti più rumore o SINR.

21.6.1 Precodifica

Nell’impossibilità per i terminali mobili con antenna singola di sopprimere gli interferenti, occorre trovare una soluzione semplice[1260]  [1260] La soluzione ottima è nota come dirty paper coding (dpc), di difficile implementazione, vedi ad es.
https://it.wikipedia.org/wiki/Dirty_paper_coding
che possa essere attuata presso la bs: fortunatamente questa esiste ed è la duale di quella esposta ai § 21.5.2-21.5.3, necessitando come precondizione la conoscenza da parte della bs di tutti i vettori hk visti dagli utenti, in modo da poter ricostruire la matrice
(21.273) Hd = [h1 h2 ⋯  hU]T
di dimensioni U × nBS e che caratterizza il canale broadcast del downlink tra le antenne della bs e quelle (singole) degli U utenti.
Zero forcing precoding
Una volta nota Hd, la bs ne può calcolare la pseudo inversa (eq. (21.262))
(21.274) P = (Hd †Hd)− 1 Hd †
e sostituire al vettore di simboli s da inviare agli U terminali un nuovo vettore precodificato
sP = Ps = Uh = 1 phsh
dove ph è pari alla h − esima colonna di P, di fatto spargendo ogni simbolo sh destinato a ciascun utente h su tutte le nBS antenne. Osserviamo ora che in virtù della definizione di pseudoinversa si ha HdP = I, e dunque ogni colonna pk di P è ortogonale a tutte le righe di Hd tranne che alla k − esima, ovvero hTkph = δhk, in modo che la (21.272) diviene
(21.275)
rk = hTksP + n = hTk Uh = 1 phsh + n = hTkpksk + n = sk + n
da cui scompare il termine di interferenza da parte dei simboli sh destinati agli altri utenti, ed il simbolo ricevuto può essere stimato come k = argmin s ∈ A |s − sk|2.
MMSE precoding
Tornando all’espressione (21.272), occorre distinguere il caso in cui le prestazioni del sistema sono limitate dal rumore e cioè quando E{|n|2} > E{|Uh = 1, h ≠ khhsh|2}, dal caso in cui sono invece limitate dagli interferenti, dove la diseguaglianza cambia verso. La precodifica (21.274) si comporta bene solo nel secondo caso, mentre ponendo come obiettivo della matrice P quello di rendere minimo l’errore medio quadratico E{|s − sk|2} si ottiene una soluzione che pur non cancellando completamente gli interferenti permette di bilanciare la riduzione della loro potenza con la riduzione della potenza di rumore; tale soluzione è indicata come versione regolarizzata di (21.274) e fornisce
(21.276)
PMMSE = (Hd †Hd + 1ρ I)− 1 Hd †
in cui ρ = E{|Ps|2}E{|n|2} è una misura dell’SNR.

21.6.2 Controllo di potenza

I valori ottenuti per le colonne della matrice di precodifica P devono essere alterati, essenzialmente per due motivi:
Il secondo obiettivo è quello più intrigante, dato che aumentare la potenza per un utente significa aumentare la capacità del suo canale, a discapito di quella degli altri per i quali si verifica invece un aumento della potenza interferente, e (per il vincolo sulla potenza complessiva) la riduzione della propria. Inoltre la potenza allocata ad ogni utente (ossia al simbolo a lui diretto) deve essere determinata in base all’SNR di ricezione, altra informazione che deve essere comunicata alla bs, in modo che quest’ultima possa attuare tecniche di water filling, ed assegnare più potenza a chi ha un SNR migliore. Non ci addentriamo nelle strategie di ottimizzazione congiunta, alcune delle quali iterative: questo è solamente un testo introduttivo.

21.6.3 Prioritizzazione degli utenti

Fino ad ora si è implicitamente supposto che U < nBS, ma gli utenti che intendono comunicare (tra quelli registrati presso una bs) possono essere ovviamente più delle antenne a disposizione. Tutti i terminali che richiedono il servizio comunicano alla bs le informazioni sullo stato del proprio canale o csi (hdk, ρk) in modo da permetterle di calcolare la P di precodifica. La bs deve quindi selezionare un sottoinsieme di UM ≤ nBS utenti scegliendoli in modo da massimizzare la velocità somma; ma la velocità di ciascun utente ha come limite superiore la capacità del suo canale, che a sua volta dipende da relativo ρk. La ricerca esaustiva del migliore gruppo di UM < U utenti verso cui trasmettere ha complessità esponenziale, per cui è necessario ricorre a strategie euristiche. Una tecnica (cosiddetta greedy o vorace) consiste nello scegliere per primo l’utente che può dare il maggior contributo di velocità, poi il secondo migliore, e così via. Ovviamente l’obiettivo da massimizzare, anziché tenere conto solamente della velocità-somma, può prendere in considerazione anche altri fattori, come la lunghezza di coda (da minimizzare) od altro ancora, vedi appresso.

21.6.4 Precodifica con feedback limitato

Il calcolo della matrice P (eq. (21.274) o (21.276)) da parte della bs necessita della conoscenza da parte di quest’ultima della matrice Hd (21.273), la cui riga hdk descrive il canale tra bs e uek, stimato presso quest’ultimo. Nel caso di un sistema full duplex basato su portanti differenti per le due direzioni del collegamento il canale non è reciproco (nota 1233), e quindi occorre un canale di uplink di ritorno attraverso il quale i terminali mobili possano trasmettere alla bs la loro stima di hdk, codificata mediante B bit frutto della quantizzazione dei valori di hdk e di ρk. Come noto dalla teoria dell’informazione (§ 9.5.2), una distorsione nulla si ottiene solamente per B → ∞, dunque per B finito è inevitabile la presenza di errori negli hdk quantizzati, che a loro volta causano errori nella determinazione delle colonne pk della matrice di precodifica. Scrivendo quindi p̃k = pk + ek in cui pk e p̃k sono i vettori di precodifica calcolati per una csi esatta oppure quantizzata, la (21.275) diviene
(21.277)
rk  = hTk Uh = 1p̃hsh + n = hTk Uh = 1 phsh + hTk Uh = 1 ehsh + n =   = hTkpksk + hTk Uh = 1 ehsh + n = sk + nI + n
in cui nI = hTk Uh = 1 ehsh costituisce un termine di rumore interferente.
Legame feedback - SNR
Il termine nI nella (21.277) è tanto maggiore quanto peggiore è la risoluzione della quantizzazione di hdk, ovvero quanto minore è il numero B di bit di feedback inviati da ciascun terminale. Mantenendo B fisso si produce un effetto piattaforma (da error floor) nelle prestazioni (sia di velocità che di errore) in funzione dell’SNR, dato che nI non cambia anche se il rumore n si riduce. Il rimedio è quello di richiedere una maggiore accuratezza (ossia un maggior numero di bit Bk) nei valori trasmessi hdk in forma quantizzata per quei terminali uek che sperimentano un rumore termico n minore[1261]  [1261] Ovvero un SNR ρk maggiore., in modo da mantenere i due tipi di rumore (n e nI) alla stessa potenza. Inoltre essendo i vettori hk e pk di dimensione nBS, l’espressione nI = hTk Uh = 1 ehsh implica una somma di nBS termini, cosicché anche il numero di antenne di trasmissione contribuisce in modo diretto ad nI. Qualora l’SNR sia uguale per tutti, è stato trovato[1262]  [1262] N. Jindal, MIMO Broadcast Channels With Finite-Rate Feedback, IEEE Trans. on Inf. Th. Nov. 2006, ne trovo una copia libera presso Univ. of Minnesota che la bs può conseguire un guadagno di multiplazione massimo (nBS) quando ogni terminale invia
(21.278)
B = (nBS − 1) log2 SNR ≈ nBS − 13 SNRdB    bit
soffrendo una penalizzazione di soli 3 dB di prestazione rispetto alla conoscenza perfetta della csi.
Quantizzazione vettoriale del canale di downlink
Approfondiamo un minimo come vengono prodotti i B bit di feedback. La qv, introdotta al § 10.1.2.4, è la tecnica per eseguire la codifica di sorgente h̃k = Q(hk) della grandezza vettoriale hk. Consiste in un codebook[1263]  [1263] La scelta degli elementi del codebook può avvenire in accordo ad un modello di d.d.p. p(hd) nel contesto dell’algoritmo di Lloyd-Max (nota 165 a pag. 1), oppure a partire da una base dati di vettori osservati su cui eseguire un algoritmo di clusterizzazione, vedi ad es. 
https://en.wikipedia.org/wiki/K-means_clustering
. Infine è da citare la possibilità di popolare il cb in modo casuale, a partire da un seme iniziale, trasmettendo il quale il cb stesso può essere autonomamente ri-generato alla bs.
H = {hq1,  hq2, ⋯,  hq2B} di 2B vettori di canale a norma unitaria, tra cui si sceglie il vettore hopt più vicino a quello misurato hk (reso a norma unitaria anch’esso) usando come criterio di distorsione il modulo quadro del prodotto scalare[1264]  [1264] Vedi § 2.4.3. In questo modo due vettori sono tanto più simili quanto più condividono lo stesso orientamento; la normalizzazione ne ha portato la punta sulla superficie di una sfera di raggio unitario, e qui si va a finire negli spazi Grassmaniani. Qualcuno può chiedersi: come mai la distorsione è nulla anche per vettori opposti? Una possibile risposta è che i vettori quantizzati h̃h servono alla bs per calcolare vettori pk di precoding ortogonali ad h̃h ≠ k. L’ortogonalità dunque permane anche nei confronti di un vettore con il segno cambiato.. Si sceglie pertanto l’indice[1265]  [1265] Per evitare che più terminali possano scegliere lo stesso vettore del cb, ognuno di essi può utilizzare un diverso cb. Dato che questi devono essere tutti noti presso la bs, la questione può essere semplificata nel caso di cb generati casualmente a partire da un seme.
nopt = argmax hn ∈ H|hnhk|2 = argmax hn ∈ cos2[( hn, hk)]
decidendo quindi per h̃k = Q(hk) = hopt, e si trasmettono i B bit della codifica binaria di nopt. Anche la bs è a conoscenza dello stesso cb H, da cui preleva hnopt e lo usa per costruire Hd da cui ricavare P. Anche se i vettori del codebook sono a norma unitaria, si ottengono vettori di precoding (ad es., mediante zero forcing) comunque in grado di cancellare gli interferenti.
Qualora il terminale rilevi una variazione di SNR per cui la (21.278) indica la necessità di variare B, l’adozione di un cb organizzato gerarchicamente semplifica l’aumento (o la riduzione) della sua cardinalità, che raddoppia per ogni bit aggiunto a B. Infine, qualora il numero di utenti attivi sia il risultato di una strategia di prioritizzazione tra un insieme più ampio, si possono ottenere risultati migliori scegliendo quei terminali che abbiano comunicato vettori h̃k il più possibile ortogonali tra loro.
Quantizzazione del precoder
Osserviamo ora che l’errore eh = ph − p̃h che compare nell’espressione (21.277) del segnale ricevuto rk come un termine di rumore interferente nI = hTk Uh = 1 ehsh, essendo causato dal calcolo delle colonne della matrice P di precodifica a partire dalla Hd quantizzata, è un errore causato da un altro errore. Tanto vale allora cercare di quantizzare direttamente le colonne di P, e lasciare che siano i terminali stessi a decidere quale vettore di precodifica p̃k è il più idoneo moltiplicatore dei simboli destinati a ciascuno di essi, senza necessità di comunicare la csi.
A questo fine si adotta un codebook P = {p1,  p2, ⋯,  p2B} casuale con vettori complessi ph (nBS × 1) a norma unitaria ed uniformemente distribuiti in tutte le direzioni[1266]  [1266] Ovvero tali da rendere massima la separazione angolare minima d(P) tra due elementi di P, avendo definito d(P) = min 1 ≤ i ≤ j ≤ 2B sin(θi, j) e θi, j = arccos(pipj), e quindi P: d(P) = max. Di nuovo, è un problema noto, vedi J.H. Conway, R.H. Hardin, N.J.A. Sloane, Packings in Grassmannian Spaces, Experimental Mathematics 5:2, 1996, vedi http://www2.stat.duke.edu/~sayan/SAMSI/lec/conway.pdf. Notiamo che qualora 2B > nBS non è possibile trovare 2B vettori mutuamente ortogonali., noto sia alla bs che a tutti i terminali uek. Ogni dispositivo, dopo aver stimato il proprio vettore di canale hdk, può individuare il vettore popt ∈  P più parallelo ad hdk e dunque in grado di massimizzare il proprio SINR[1267]  [1267] Consideriamo la (ipotetica) trasmissione da parte della bs del segnale sP = 2Bh = 1 phsh, che determina presso uek la ricezione (vedi eq. (21.275)) del segnale rk = hTksP + n = 2Bh = 1 hTkphsh + n. Si intende trovare l’indice h associato al vettore ph che determina le migliori condizioni di ricezione per uek. Se consideriamo come componente di segnale quella relativa al generico indice m ovvero hTkpmsm, il termine di rumore è 2Bh = 1, h ≠ mhTkphsh + n, e dunque il valore di SINRk, m si calcola come
SINRk, m = E{|hTkpmsm|2}σ2n + E{|2Bh = 1, h ≠ mhTkphsh|2} = Es ⋅ |hTkpm|2σ2n + Es2Bh = 1, h ≠ m|hTkph|2 = | hTkpm|21ρ + 2Bh = 1, h ≠ m|hTkph|2
in cui ρ = Esσ2n e Es = E{|sh|2}, ed il passaggio a denominatore è possibile considerando i ph ortonormali. SINRk, m è dunque massimo quando lo è il numeratore, ossia quando lo è il prodotto scalare tra hk e pm.
, ovvero
(21.279) SINRk, m = |hTkpm|21ρ + Uh = 1, h ≠ m|hTkpk|2 popt = argmax pm ∈ PSNRk, m
dove SINRk, m è l’SINR per uek qualora i simboli ad esso destinati siano precodificati con il vettore pm. Il terminale quindi confronta SINRk, opt con un valore soglia γ che gli è stato comunicato dalla bs, e se lo supera può inviare sia SINRk, opt che i B bit della codifica binaria dell’indice opt, indicando così il desiderio che i simboli sk a lui diretti siano precodificati mediante popt. Dal canto suo dopo aver ricevuto il feedback di ciascuno, la bs individua per ogni vettore ph il terminale k (ai cui dati sk verrà applicato ph) che ha comunicato il valore SNRk, h più grande, ovvero per il quale ph porta più beneficio. Con tali vettori ph costruisce la matrice P, ed effettua la trasmissione dedicata ai terminali selezionati.
Notiamo infine che adottando un codebook P costituito dalle nBS colonne di una matrice di precoding identità, ovvero P = InBS, si ottengono vettori ph tutti nulli tranne che per l’h − esimo elemento pari ad uno. Con la scelta (21.279) ciascun terminale indica in tal caso l’antenna della bs rispetto alla quale sperimenta le migliori condizioni di propagazione, come avviene per la selezione di diversità (§ 21.3.1.1). Specialmente nel caso di un ridotto numero di utenti, ciò permette di organizzare le trasmissioni di downlink in modalità a divisione di tempo, trasmettendo di volta in volta con tutta la potenza disponibile ed alla massima velocità, mediante una unica antenna m a beneficio del terminale k che ha dichiarato un miglior SINRk, m.

21.6.5 Beamforming

L’effetto di uno specifico vettore di precodifica pk a norma unitaria è quello di moltiplicare il simbolo sk per un valore complesso ak, ie jαk, i diverso per ciascuna antenna i = 1, 2, ⋯, nBS della bs. Di fatto questo è il modo di operare tipico delle antenne
figure f-138-beamf.png
intelligenti[1268]  [1268] O phased array, vedi ad es. https://en.wikipedia.org/wiki/Phased_array ma anche https://www.vialattea.net/content/1875/. che realizzano un diagramma di radiazione direttivo ed orientabile senza dove muovere nulla, ma adottando una schiera di antenne e sfasando con valori αi crescenti il segnale diretto all’i − esima antenna.
Al diagramma di radiazione ottenuto è stato dato il nome di beam ed alla tecnica quello di beamforming, in cui beam può essere tradotto come trave, raggio, fascio; data la somiglianza formale con l’operazione di precodifica l’uso del termine di beamforming si è esteso ad indicare non solo le operazioni di precoding, ma anche quelle (§ 21.4.1.1) basate sulla svd ed il water-filling per ottenere un numero di canali indipendenti pari al rango di H, modalità operativa indicata anche come eigen-beamforming.
Il vantaggio più evidente del beamforming propriamente detto è che, trasmettendo in direzione (geometrica) del destinatario, si riduce la potenza interferente per gli altri utenti dislocati altrove e che non rientrano nel fascio. Per ottenere tale risultato è però necessario che la bs conosca la posizione geografica dei terminali mobili. In alternativa si possono generare più beam in direzioni casuali diverse[1269]  [1269] Cioè pilotare i modulatori collegati alle antenne con un vettore sB = nBh = 1 bhsh in cui il simbolo sh destinato all’h − esimo utente viene affasciato nella direzione stabilita dal beam bh, ne più ne meno come avviene nel precoding. e lasciare che siano i terminali ad indicare per quale beam si verifica una ricezione migliore, un po’ come illustrato per il caso della quantizzazione del precoder, che viene infatti descritto anche con il termine di beamforming opportunistico.
Nel caso di propagazione affetta da fading di Rayleigh (e dunque priva di un cammino diretto prevalente) il concetto di direttività delle antenne perde un po’ di significato, mentre continua a rivestire importanza per celle di raggio più ampio, e in cui antenne (della bs) siano situate su di una torre sufficientemente elevata rispetto agli ostacoli presenti. In tal caso si determina una forte componente di onda diretta ed un fattore di Rice non trascurabile, riducendo di fatto il grado di diversità spaziale: in questo caso l’adozione del beamforming geografico non è solo vantaggiosa, ma necessaria. Al contrario, per un ambiente privo di percorsi diretti e ricco di scattering è preferibile attuare il precoding atto a massimizzare l’SINR (eq. (21.279)) e capace di far combinare in modo coerente le repliche che viaggiano su cammini multipli differenti, come esemplificato nella animazione presso https://youtu.be/XBb481RNqGw.
 Sezione 21.5: Multiplazione spaziale Su Capitolo 21: Sistemi multiantenna o MIMO Sezione 21.7: Trasmissione MIMO - OFDM