Download presentation
Presentation is loading. Please wait.
1
MIMO-Space Time Block Codes
Αναπλ. Καθηγητής Γεώργιος Ευθύμογλου April 24, 2018 Module Title
2
Εισαγωγή Multiple Input Multiple Output (MIMO) systems
Space Time Block Codes (STBCs) Alamouti code Code transmission matrices and rates Module Title
3
SIMO - MISO - MIMO Receive diversity – Transmit diversity – MIMO (max )
4
Alamouti Space Time Code (STC) 2 Tx × 1 Rx
At time t1, transmit x1 from antenna 1 and x2 from antenna 2 At time t2, transmit –x2* from antenna 1 and x1* from antenna 2
5
Alamouti STC: 2 Tx × 1 Rx System equation Conjugate transpose or Hermitian transpose Receiver
6
Alamouti STC: 2 Tx × 1 Rx System equation Conjugate transpose or Hermitian transpose Receiver
7
Alamouti STC: 2 Tx × 1 Rx FINAL Receiver with normalized channel power
Results in The term guarantees the 2nd order diversity ! Conclusion: diversity order 2 can be accomplished 1 transmit antenna and 2 receive (Receive diversity) 2 transmit antennas and 1 receive (Transmit diversity) using Alamouti space time code.
8
Maximum Likelihood (ML) detection of STC
ML receiver solves: where is the estimated symbol vector. ML: Find which symbols when multiplied with channel matrix H are “closer” to the receive vector y. The minimization is performed over all possible transmit vector symbols. For example, for QPSK modulation, the alphabet size is 4 and assuming a system 2x1, the ML decoder needs to search over a total of 42=16 vector symbols. It follows that the decoding complexity of this receiver grows exponentially with the number of transmit antennas.
9
Alamouti code Alamouti code = 2 × 1 MISO. Note a little different notation: r instead of y s instead of x
10
MLD of Alamouti code The received signal expressions at time 1 and 2 are The combiner combines the received signal as follows and sends them to the maximum likelihood detector, which minimizes the following metric (see r1 = h1s1+h2s2+n1, r2=…) over all possible s1 and s2
11
MLD of Alamouti code Expanding and deleting terms, the above minimization reduces to separately minimizing for detecting s1 for detecting s2
12
MLD of Alamouti code If we use the notation The decision rule for each combined signal becomes: Pick iff For MPSK symbols, it reduces to
13
MLD of Alamouti code in Matlab
% Alamouti scheme 2 x 1 clear; N_frame=4; % create 4 symbols N_packet=1; NT=2; NR=1; b=2; %QPSK SNRdBs=[30:2:30]; % add small noise at 30 dB for i_SNR = 1:length(SNRdBs) SNRdB = SNRdBs(i_SNR); sigma=sqrt(0.5/(10^(SNRdB/10))); % noise variance
14
MLD of Alamouti code in Matlab
for i_packet = 1:N_packet msg_symbol=randint(N_frame*b,1); tx_bits=msg_symbol.'; [tmpp, sym_tab, P] = modulator_qpsk(tx_bits(1,:), b); X = reshape(tmpp, N_frame/NT, NT); % put NT symbols per row X1=X; X2 = [-conj(X(:,2)) conj(X(:,1))]; % create NT channel weights per row and N_frame/NT rows % because channel is the same for 2 symbol times H =(randn(N_frame/NT, NT) + j* randn(N_frame/NT, NT) )/sqrt(2); Habs=sum(abs(H).^2, 2);
15
MLD of Alamouti code in Matlab
% received signal per receive antenna for m=1:NR r1(:,m) = sum(H.*X1, 2)/sqrt(NT) + sigma*(randn(N_frame/NT,1)+j*randn(N_frame/NT,1)); r2(:,m) = sum(H.*X2, 2)/sqrt(NT) + sigma*(randn(N_frame/NT,1)+j*randn(N_frame/NT,1)); % create the combiner signals z1(:,m)=r1(:,m).*conj(H(:,1))+conj(r2(:,m)).*H(:,2); z2(:,m)=r1(:,m).*conj(H(:,2))-conj(r2(:,m)).*H(:,1); end
16
MLD of Alamouti code in Matlab
% form estimates for q=1:P % P = # symbols tmp=(-1+sum(Habs,2))*abs(sym_tab(q))^2; d1(:,q)=abs(sum(z1,2)-sym_tab(q)).^2 + tmp; d2(:,q)=abs(sum(z2,2)-sym_tab(q)).^2 + tmp; end % decision for detecting s1 [y1,i1]=min(d1, [ ], 2); s1d=sym_tab(i1).'; % decision for detecting s2 [y2,i2]=min(d2, [ ], 2); s2d=sym_tab(i2).';
17
MLD of Alamouti code in Matlab
Example with 4 transmitted symbols % whole code is given in the web site X1 = % X1 are the original symbols i i i i X2 = % second row of Alamouti code i i i i H = % H(:,1) is multiplied with X1(:,1) and X2(:,1) % channel constant for 2 symbol time i i i i
18
Δημιουργία προσομοίωσης για STBC
Δημιουργία bit-stream Διαμόρφωση για παραγωγή συμβόλων (BPSK, QPSK, 16-QAM) STBC κωδικοποίηση σύμφωνα με κάποιο πίνακα μετάδοσης Έξοδος καναλιού (multiply with fading weight and add AWGN) ΜL detection και σύγκριση tx και rx (bits, symbols or packets) Data Bit Stream Modulation STBC Coder MIMO Channel STBC decoder (Maximum Likelihood Detector) Receive Data Bit Stream BER/SER/FER Calculation
19
Alamouti_scheme.m (2 x 1 Alamouti)
N_frame=130; N_packet=5000; NT=2; NR=1; b=2; %QPSK SNRdBs=[0:2:30]; for i_SNR = 1:length(SNRdBs) SNRdB = SNRdBs(i_SNR); sigma=sqrt(0.5/(10^(SNRdB/10))); for i_packet = 1:N_packet msg_symbol=randint(N_frame*b,1); tx_bits=msg_symbol.'; [tmpp, sym_tab, P] = modulator_qpsk(tx_bits(1,:), b); X = reshape(tmpp, N_frame/NT, NT); Εύρος SNR per bit σε dB δημιουργούμε την τιμή του σ2 ανά διάσταση (Ι & Q) Δημιουργούμε ΝT διαφορετικές στήλες συμβόλων για ΝT κεραίες εκπομπής
20
Alamouti_scheme.m (2 x 1 Alamouti)
X1=X; X2 = [-conj(X(:,2)) conj(X(:,1))]; H =(randn(N_frame/NT, NT) + j* randn(N_frame/NT, NT) )/sqrt(2); Habs=sum(abs(H).^2, 2); Δημιουργία πίνακα μετάδοσης για πίνακα Alamouti Δημιουργία των συντελεστών του καναλιού
21
Alamouti_scheme.m (2 x 1 Alamouti)
% received signal per receive antenna for m=1:NR r1(:,m) = sum(H.*X1, 2)/sqrt(NT) + sigma*(randn(N_frame/NT,1)+j*randn(N_frame/NT,1)); r2(:,m) = sum(H.*X2, 2)/sqrt(NT) + sigma*(randn(N_frame/NT,1)+j*randn(N_frame/NT,1)); % create combiner signals z1(:,m)=r1(:,m).*conj(H(:,1))+conj(r2(:,m)).*H(:,2); z2(:,m)=r1(:,m).*conj(H(:,2))-conj(r2(:,m)).*H(:,1); end Δημιουργούμε τα σήματα στο δέκτη Δημιουργούμε τα σήματα στον αποδιαμορφωτή
22
Alamouti_scheme.m (2 x 1 Alamouti)
% form estimates for q=1:P % P = # symbols tmp=(sum(Habs,2)-1)*abs(sym_tab(q)^2; d1(:,q)=abs(sum(z1,2)-sym_tab(q)).^2 + tmp; d2(:,q)=abs(sum(z2,2)-sym_tab(q)).^2 + tmp; end για κάθε σύμβολο της διαμόρφωσης δημιουργούμε τις στατιστικές που θα σταλούν στον ML detector όπου η Ευκλείδεια απόσταση d:
23
Alamouti_scheme.m (2 x 1 Alamouti)
% determine the minimum of estimates % decision for detecting s1 [y1,i1]=min(d1, [ ], 2); s1d=sym_tab(i1).'; clear d1 % decision for detecting s2 [y2,i2]=min(d2, [ ], 2); s2d=sym_tab(i2).'; clear d2 το κριτήριο απόφασης είναι να επιλέξουμε το σύμβολο που ελαχιστοποιεί dj,m Eπέλεξε si iff: Στη θεωρία για j =1 βρίσκαμε το s1 και για j=2 βρίσκαμε το s2
24
Alamouti_scheme.m (2 x 1 Alamouti)
% form received symbol stream Xd=[s1d s2d]; tmp1=real(X)>0; tmp2=real(Xd)>0; tmp3=imag(X)>0; tmp4=imag(Xd)>0; noes_p(i_packet) = sum(sum(tmp1~=tmp2))+sum(sum(tmp3~=tmp4)); end % end of FOR loop for "packet_count" % calculate BER BER(i_SNR)=sum(noes_p)/(N_packet*N_frame*b) end % end of FOR loop for i_SNR
25
Alamouti_scheme.m ( 2 x 1 Alamouti)
semilogy(SNRdBs, BER) axis([SNRdBs([1 end]) 1e-6 1e0]) grid on xlabel('SNR (dB)') ylabel (‘BER')
26
Alamouti 2 Tx × 1 Rx: Zero Forcing (ZF) decoder
Zero Forcing (ZF) decoder: the decoder complexity of the ML decoder is reduced using a linear filter to separate the transmitted data streams, and then independently decode each stream. Values r1 and r2 are sent to Maximum Likelihood detector to determine which symbols x1 and x2 are closer to r1 and r2.
27
Alamouti 2 Tx × 1 Rx: Zero Forcing (ZF) decoder
Zero Forcing decoder is a linear receiver based on channel matrix inversion.
28
Alamouti code 2 Tx × N Rx: Diversity order 2N
- At time t1, transmit x1 from antenna 1 and x2 from antenna 2 System equation for k-th antenna - At time t2, transmit –x2* from antenna 1 and x1* from antenna 2 - System equation for k-th antenna Conjugate transpose or Hermitian transpose Receiver
29
Alamouti STC 2 Tx × N Rx System equation for all Rx antennas MRC receiver: performance equivalent to 1 Tx – 2N Rx antennas
30
Special case 2 x 2 MIMO with Alamouti code
Rx antenna1 Rx antenna2 Tx antenna1 h1 h3 Tx antenna2 h2 h4
31
Alamouti code with 2 Receivers
Alamouti code = 2 × 2 MIMO. Note a little different notation: r instead of y s instead of x
32
ML detection of Alamouti code with 2 Receivers
The combiner combines the received signal as follows Substituting the appropriate equations These combined signals are then sent to ML decoder:
33
ML detection of Alamouti code with 2 Receivers
Using the previous combined signals Choose iff (Find s1 using and s2 using ) For MPSK symbols, it reduces to SAME as MRC decision rule for 1 Tx and 4 Rx antennas !!!
34
ZF 2 x 2 MIMO with Alamouti code
Received vector at first time slot Received vector at second time slot
35
Special case of interest 2 x 2 MIMO
Zero Forcing Decoder
36
Special case of interest 2 x 2 MIMO
Zero Forcing Decoder is a diagonal matrix
37
Special case of interest 2 x 2 MIMO
ZF-Decoder
38
Special case of interest 2 x 2 MIMO
Given Maximum likelihood detector selects the 2 symbols that have the minimum Euclidean distance from the received vector [r1, r2]
39
Alamouti code: space time block codes
The Alamouti codeword X is a complex orthogonal matrix
40
Generalization of space time block coding
Two main objectives of orthogonal space time code design are to achieve the diversity order of NTNR and to implement computationally efficient per-symbol detection at the receiver that achieves the ML performance.
41
Higher order Orthogonal STBCs
Tarokh et al. discovered Orthogonal STBC that are quite simple. In order to facilitate computationally-efficient ML detection at the receiver, the following property is required: They proved that for more than 2 transmit antennas and for complex symbols there is no symbol mapper to achieve coding rate of 1. They showed that for complex symbols, coding rate of ¾ can be achieved with 3 or 4 transmit antennas a rate of ½ is achievable for any number of transmit antennas On the other hand, for real symbols, coding rate of 1 is achievable for any number of transmit antennas.
42
STBC for real symbol constellations
For real constellations, like BPSK, it is possible to achieve full rate since matrices are orthogonal and diversity order of NT . We consider square space-time block codes with real entries with N=T= NT , that is, R=N/T=1.
43
STBC for real symbol constellations
It is feasible to construct non-square STBCs with R=1 based on another rule (Tarokh, V., Jafarkhani H., and A.R. Calderbank, “Space Time Codes from Orthogonal Designs,” IEEE Trans. Inform. Theory, Vol 45, No. 5, July 1999, pp ) , for number of transmit antennas 3, 5, 6 and 7, for real constellations. These matrices are as follows:
44
STBC for complex constellations QPSK, 8PSK, 16QAM.
Complex transmission matrices with nT=3 and nT=4 with coding rate r=1/2. For matrix G3, there are s1, s2, s3 και s4 along with their complex conjugates, so that k=4, with eight symbol intervals, T=8. The achieved coding rate is r = k/T = 4/8 =1/2. Same with G4, we have r=1/2 with diversity gain nT=4.
45
STBC for complex constellations QPSK, 8PSK, 16QAM.
Other complex matrices that achieve higher coding rates, for example r = 3/4, but require substantial complex algebra manipulation are
46
Decoding STBC X4 Using similar formulation to the 2x1 and 2x2 Alamouti codes:
47
Decoding STBC Using similar formulation to the 2x1 and 2x2 Alamouti codes:
48
Decoding STBC Diversity gain achieved is nT=3
49
Channel estimation Suppose we transmit a known QPSK (pilot) symbol 1+1j After multiplication with the channel weight the received signal is (assume no noise) Therefore provided we obtain at the output of the correlation receiver the receive vector we can compute the channel weight
50
Channel estimation Now if we transmit any QPSK symbol a+jb, the received signal is Now, if we multiple the received vector with the conjugate of the channel weight and divide by the channel power
51
ΒΙΒΛΙΟΓΡΑΦΙΑ [1] Alamouti, S. M., “A Simple Transmit Diversity Technique for Wireless Communications,” IEEE Journal Select. Areas Commun., Vol. 16, No. 8, October 1998, pp [2] Tarokh, V., Jafarkhani H., and A.R. Calderbank, “Space-Time Block Coding for Wireless Communication: Performance Results,” IEEE Journal on Selected Areas in Communications, Vol 17, No. 3, March 1999, pp [3] Tarokh, V., Jafarkhani H., and A.R. Calderbank, “Space Time Codes from Orthogonal Designs,” IEEE Trans. Inform. Theory, Vol 45, No. 5, July 1999, pp [4] Yong Soo Cho, et al., MIMO-OFDM Wireless Communications with Matlab, John Wiley & Sons, 2010. [5] David Tse and Pramod Viswanath, Fundamentals of Wireless Communication, Cambridge University Press, 2005.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.