Trong Lu n văn này ch kh o sát h th ng MIMO-OFDM mã hóa ST, STF v i đi u ch BPSK, QPSK, 4QAM, thông tin tr ng thái kênh CSI đ c bi t và s d ng thu t toán MMSE đ gi i mã. Ta có th xem xét ti p các mã này v i thông s CSI ch a bi t, mức đi u ch cao hơn và vi t các thu t toán gi i mã phù h p đ đ t đ c phân t p đ y nhằm ứng d ng thực t trong đi u ki n truy n d li u t c đ cao của h th ng MIMO-OFDM.
PH L C
1. Ch ng trình tính BER h th ng MIMO
clear all;
% Thiet lap cac thong so
modtype = 'psk'; % Dieu che PSK N = 10^6; % so bit hoac symbol Ninput = round(rand(1, N)) ;
Eb_N0_dB = 0:27; % cac gia tri Eb/N0 M = 4; % so muc dieu che id = 1;
for ii = 1:3:length(Eb_N0_dB) snr = Eb_N0_dB(ii)
rx1 = ctc_SISO_MMSE(Ninput, snr, 1, 6, M, modtype); [num1, err1e(id)] = biterr(rx1, Ninput);
rx2 = ctc_SISO_MMSE(Ninput, snr, 6, 1, M, modtype); [num2, err2e(id)] = biterr(rx2, Ninput);
rx3 = ctc_SISO_MMSE(Ninput, snr, 2, 3, M, modtype); [num3, err3e(id)] = biterr(rx3, Ninput);
rx4 = ctc_SISO_MMSE(Ninput, snr, 3, 2, M, modtype); [num4, err4e(id)] = biterr(rx4, Ninput);
id = id + 1; end
%tinh error
snr = 0:3:max(Eb_N0_dB);
semilogy(snr,err1e,'rv-','LineWidth',2); hold on; semilogy(snr,err2e,'ks-','LineWidth',2); hold on; semilogy(snr,err3e,'bd-','LineWidth',2); hold on; semilogy(snr,err4e,'mo-','LineWidth',2); hold on; axis([Eb_N0_dB([1 end]) 1e-6 1e0])
grid on;
legend('SIMO-1x6','MISO-6x1','MIMO-2x3','MIMO-3x2'); xlabel('SNR (dB)');
ylabel('BER');
str = ['MIMO chua ma hoa: cung muc phan tap 6, dieu che QPSK ']; tle = [sprintf(str)];
title(tle);
2. Ch ng trình con cho h th ng MIMO
% Chuong trinh con cho he thong SISO, MIMO Ntx anten phat, Nrx anten thu % Input: Ninput: So bit hoac symbol vao
% M: so muc dieu che
% modtype:kieu dieu che psk, qam, pam % Output: output: so symbol loi sau khi giai ma
function output = ctc_SISO_MMSE(Ninput, snr, Ntx, Nrx, M, modtype) sigma = (10^(-snr/20))/sqrt(2);
% Tao bang chom sao Set=0:M-1;
sym_tab = modSymbols(Set, M, modtype); % bang chom sao % tin hieu ngo vao
ipBit = bi2de_mod(Ninput,M); sMod = modSymbols(ipBit,M,modtype); N = length(ipBit); % Transmitter yg = zeros(1,N); H = zeros(1,N); for rr = 1:Nrx
h = (1/sqrt(Ntx))*(randn(Ntx,N) + 1j*randn(Ntx,N))/sqrt(2); % Rayleigh channel n = randn(1,N) + 1j*randn(1,N); % white gaussian noise, 0dB variance
% Tinh toan h cho may thu h1 = sum(h,1);
h1c = conj(h1);
% Channel and noise Noise addition y = h1.*sMod + sigma*n; H = H + h1c.*h1; yg =yg + h1c.*y; end yg1 = (yg./(H+sigma^2)).'; %decoding ML for mm = 1:M dd(:,mm) = abs(sum(yg1,2)-sym_tab(mm)).^2 ; end
[yy,idd] = min(dd,[],2); %vi tri min dd vao i1 yhat = sym_tab(idd).';
clear dd
ipBitHat = demodSymbols(yhat.',M,modtype); output = de2bi_mod(ipBitHat,M);
end
Nrx = 1;
Ltap = 10; % So duong fading modtype = 'psk';
N = Ncarr*Nsym; % so symbol hoac bit vao Ninput = round(rand(1, N)) ; id = 1; for ii = 1:3:length(EbN0dB) snr = EbN0dB(ii); display(snr); rx1 = ctc_OFDM(Ninput,snr,2,2,Ncarr,8,4,modtype); [num1, err1e(id)] = biterr(rx1, Ninput);
rx2 = ctc_OFDM(Ninput,snr,4,2,Ncarr,4,4,modtype); [num2, err2e(id)] = biterr(rx2, Ninput);
rx3 = ctc_OFDM(Ninput,snr,2,4,Ncarr,4,4,modtype); [num3, err3e(id)] = biterr(rx3, Ninput);
rx4 = ctc_OFDM(Ninput,snr,4,4,Ncarr,2,4,modtype); [num4, err4e(id)] = biterr(rx4, Ninput);
id = id + 1; end
snr = 0:3:max(EbN0dB);
semilogy(snr,err1e,'rv-','LineWidth',2); hold on; semilogy(snr,err2e,'bs-','LineWidth',2); hold on; semilogy(snr,err3e,'kd-','LineWidth',2); hold on; semilogy(snr,err4e,'mo-','LineWidth',2); hold on; axis([EbN0dB([1 end]) 1e-6 1e0]);
grid on;
legend('MIMO-OFDM 2x2 L=8','MIMO-OFDM 4x2 L=4','MIMO-OFDM 2x4 L=4', 'MIMO-OFDM 4x4 L=2');
xlabel('SNR (dB)'); ylabel('BER');
str = ['MIMO-OFDM chua ma hoa: cung muc phan tap Tx*Rx*L=32, dieu che QPSK']; tle = [sprintf(str)];
title(tle);
4. Ch ng trình con cho h th ng MIMO-OFDM
% Chuong trinh con thu phat OFDM % Input: Ninput: so bit hoac symbol vao % snr: gia tri ti so tin hieu tren nhieu % Ntx: so anten phat
% Nrx: so anten thu % Ncarr: so song mang con % Ltap: so duong fading % M: so muc dieu che
CPlen = Ncarr/4; % Chieu dai khoang bve
GIlen = Ncarr + CPlen; % Chieu dai tong symbol OFDM % Taoj bang chom sao
Set=[0:M-1];
sym_tab = modSymbols(Set, M, modtype); % Tao tin hieu dieu che
ipBit = bi2de_mod(Ninput,M); % randi([0 M-1],1,N); ipMod = modSymbols(ipBit,M,modtype);
N = length(ipBit);
% N = Ninput - mod(Ninput,Ncarr); % Tao phep chia chan nSym = N/Ncarr; % number of symbols
% nTap = Ltap;
EbN0dB = snr; % bit to noise ratio
EsN0dB = EbN0dB + 10*log10(Ncarr/GIlen); % converting to symbol to noise ratio sigma = (10^(-EsN0dB/20))/sqrt(2);
% Transmitter
xF = reshape(ipMod,Ncarr,nSym).'; % grouping into multiple symbols % IFFT
xt = sqrt(Ncarr)*ifft(xF,Ncarr,2); % nSym x Ncarr % Appending cylic prefix
xt1 = [xt(:,[Ncarr-CPlen+1:Ncarr]) xt]; % nSym x Ntotal yg = zeros(nSym,Ncarr); H = zeros(nSym,Ncarr); for rr = 1:Nrx % multipath channel ht = (1/sqrt(Ntx))*(1/sqrt(Ltap))*(randn(Ntx,nSym*Ltap) + 1j*randn(Ntx,nSym*Ltap))/sqrt(2); ht1 = sum(ht,1); ht2 = reshape(ht1,nSym,Ltap);
% computing and storing the frequency response of the channel, for use at recevier hF = fft(ht2,Ncarr,2);
hFc = conj(hF);
% convolution of each symbol with the random channel hFcon = fft(ht2,(GIlen + Ltap - 1),2);
xhtFcon = fft(xt1,(GIlen + Ltap - 1),2);
xt2 = ifft((hFcon.*xhtFcon),(GIlen + Ltap - 1),2);
% Concatenating multiple symbols to form a long vector xt3 = reshape(xt2.',1,nSym*(GIlen+Ltap-1));
% Gaussian noise of unit variance, 0 mean
% converting to frequency domain yF = fft(yt,Ncarr,2)/sqrt(Ncarr); yg = yg + hFc.*yF;
H = H + hFc.*hF; end
% equalization by the known channel frequency response yg1 = yg./(H + sigma^2);
yy = reshape(yg1.',1,Ncarr*nSym); % Decoding ML
for m=1:M
d1(:,m) = abs(sum(yy.',2)- sym_tab(m)).^2; end
[y1,i1]=min(d1,[],2); %vi tri min d1 vao i1 S1d = sym_tab(i1).'; clear d1 ipBitHat = demodSymbols(S1d.',M,modtype); % tra du lieu output = de2bi_mod(ipBitHat,M); end
5. Ch ng trình tính BER h th ng MIMO-OFDM mã hóa STF
clear all;
M = 4; % Muc dieu che Ncarr = 128;
NB = 8;
Nsym = 10^3; % So symbol EbN0dB = 0:30; % bit to noise ratio Ntx = 2; % So anten phat
Nrx = 2;
Ltap = 4; % So duong fading modtype = 'psk';
N = NB*Ncarr*Nsym; % so symbol hoac bit vao Ninput = round(rand(1, N)) ;
id = 1;
for ii = 1:3:length(EbN0dB) snr = EbN0dB(ii);
display(snr);
rx1 = ctc_stfc(Ninput, snr, 4, 2, 2, Ncarr, 4, M, modtype); [num1, err1e(id)] = biterr(rx1, Ninput);
rx2 = ctc_stfc(Ninput, snr, 2, 4, 2, Ncarr, 4, M, modtype); [num2, err2e(id)] = biterr(rx2, Ninput);
rx3 = ctc_stfc(Ninput, snr, 2, 2, 8, Ncarr, 2, M, modtype); [num3, err3e(id)] = biterr(rx3, Ninput);
end
snr = 0:3:max(EbN0dB);
semilogy(snr,err1e,'rv-','LineWidth',2); hold on; semilogy(snr,err2e,'bs-','LineWidth',2); hold on; semilogy(snr,err3e,'kd-','LineWidth',2); hold on; semilogy(snr,err4e,'mo-','LineWidth',2); hold on; axis([EbN0dB([1 end]) 1e-6 1e0]);
grid on;
legend('STFC 4x2 NB=2 L=4', 'STFC 2x4 NB=2 L=4', 'STFC 2x2 NB=8 L=2','STFC 2x2 NB=2 L=8');
xlabel('SNR (dB)'); ylabel('BER');
str = ['He thong MIMO-OFDM ma hoa STFC, cung muc phan tap 64, dieu che QPSK']; tle = [sprintf(str)];
title(tle);
6. Ch ng trình con cho h th ng MIMO-OFDM mã hóa STF
% Chuong trinh con ma SF-STF-rate 1 % Input: Ninput: so bit hoac symbol vao % snr: gia tri ti so tin hieu tren nhieu % Ntx: so anten phat
% Nrx: so anten thu
% NB: so khoi OFDM ma hoa % Ncarr: so song mang con % Ltap: so duong fading % M: so muc dieu che
% modtype:kieu dieu che psk, qam, pam % Output: output: so symbol loi sau khi giai ma
function output = ctc_stfc_rate1(Ninput, snr, Ntx, Nrx, NB, Ncarr, Ltap, M, modtype) % Dinh nghia cac thong so
Nfc = Ntx*Ltap; % Chieu dai moi nhom nGr = Ncarr/Nfc; % So nhom duoc chia nS = NB*Ncarr; % Chieu dai tin hieu vao % Tao bang chom sao
Set=0:M-1;
sym_tab = modSymbols(Set, M, modtype); % bang chom sao % Tao tin hieu dieu che
ipBit = bi2de_mod(Ninput,M); %ipBit = randi([0 M-1],1,N); % so symbol hoac bit vao
CPlen = Ncarr/4; % Chieu dai khoang bve
GIlen = Ncarr + CPlen; % Chieu dai tong symbol OFDM % Cac gia tri Eb/N0
EsN0dB = snr + 10*log10(Ncarr/GIlen); sigma = (10^(-EsN0dB/20))/sqrt(2);
% Tao ma tran tien ma hoa Vander Mvan = MatrixVander(lGr)/sqrt(lGr); for kk = 1:nS:nS*Nsym
s1 = s(kk:kk+nS-1);
smod = reshape(s1,lGr,nGr); % Chia cac symbol dieu che thanh nhom % STFC CODING
% Tien ma hoa moi nhom Sg X = Mvan*smod; % Ma hoa khoi Bi CnGr = []; for aa = 1:nGr Xi = X(:,aa); % lGr = Nfc*NB = Ntx*Ltap*NB XiNB = reshape(Xi,Ntx*Ltap,NB); Bi = []; for bb = 1:NB XiNBNtx = reshape(XiNB(:,bb),Ltap,Ntx); BiNB = []; for cc = 1:Ntx BiNB = diagMatrix(BiNB,XiNBNtx(:,cc)); end Bi = [Bi BiNB]; end CnGr = [CnGr; Bi]; end C = sqrt(Ntx)*CnGr.'; % OFDM
z_ifft = sqrt(Ncarr)*ifft(C,Ncarr,2); % sqrt(Ncarr) should be mutiplied to maintain the Power
% adding cyclic prefix
Z_ofdm = [z_ifft(:,Ncarr-CPlen+1:Ncarr) z_ifft];% final OFDM sampled signals with CP % RECEIVER for rr = 1:Nrx %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%% channel %%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % multipath channel ht = (1/sqrt(Ntx))*(1/sqrt(Ltap))*(randn(NB*Ntx,Ltap) + 1j*randn(NB*Ntx,Ltap))/sqrt(2);
for dd = 1:NB tam = HC(Ntx*(dd-1)+1:Ntx*(dd-1)+ Ntx,:); for ee = 1:Ntx tam1 = reshape(tam(ee,:),Ltap,Ncarr/Ltap); tam2 = tam1(:,(ee:Ntx:end)); tamm(ee,:) = reshape(tam2,1,Ncarr/Ntx); end HF = [HF;tamm]; end HCBi = reshape(HF,[NB*Ntx,Ltap,nGr]); Hsua = []; for gg = 1:nGr tam3 = HCBi(:,:,gg).';
Hsua = [Hsua reshape(tam3,1,NB*Nfc)]; end
HRsua(rr,:) = Hsua;
% convolution of each symbol with the random channel htFcon = fft(ht,GIlen+Ltap-1,2); ZFcon = fft(Z_ofdm,GIlen+Ltap-1,2); xtcon = ifft(htFcon.*ZFcon,GIlen+Ltap-1,2); for cv = 1:NB xht(cv,:) = sum(xtcon(Ntx*(cv-1)+1:Ntx*(cv-1)+ Ntx,:),1); end
% Gaussian noise of unit variance, 0 mean
nt = randn(NB,GIlen+Ltap-1) + 1j*randn(NB,GIlen+Ltap-1);
% Adding noise, the term sqrt(80/64) is to account for the wasted energy due to cyclic prefix
yt = sqrt(GIlen/Ncarr)*xht + sigma*nt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%% FFT %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % reduce the cyclic prefix
y_fft = yt(:,1+CPlen:GIlen); % fft
z_fft = fft(y_fft,Ncarr,2)/sqrt(Ncarr); % 1/sqrt(Ncarr) should be multiplied rx = reshape(z_fft,[NB,Nfc,nGr]);
tam6 = []; for mm = 1:nGr tam5 = rx(:,:,mm).';
tam6 = [tam6 reshape(tam5,1,NB*Nfc)]; end
tr = rxsua1(:,:,nn).'; Hdiag = [];
rxx = reshape(tr,1,Nrx*NB*Nfc).'; for kkk = 1:Nrx
Hdiag = [Hdiag; diag(th(kkk,:))]; end %thu =inv(Hdiag'*Hdiag+(sigma^2)*eye(NB*Nfc))*Hdiag'*rxx; %xhat1(:,nn) = Mvan'*thu; xhat1(:,nn) = ctc_giaimaMMSE(rxx,Hdiag*Mvan,sigma,sym_tab); end yy1 = reshape(xhat1,1,NB*Ncarr); ipHat(kk:kk+nS-1) = demodSymbols(yy1,M,modtype); end output = de2bi_mod(ipHat,M); end
7. Ch ng trình tính BER h th ng MIMO-OFDM mã hóa LDPC và STF
clear all;
%--- %--- M = 4; % Muc dieu che Ncarr = 128;
NB = 1;
Nsym = 10^3; % So symbol EbN0dB = 0:30; % bit to noise ratio Ntx = 2; % So anten phat
Nrx = 2;
Ltap = 4; % So duong fading modtype = 'psk';
N = 8*Ncarr*Nsym; % so symbol hoac bit vao data = round(rand(1, N)) ; % Number of iteration; iter = 5; %Kích th??c ma tr?n H m=256; n=512; % Mã hóa LDPC--- [Ninput, newH] = LDPC(data,m,n); id = 1;
for ii = 1:3:length(EbN0dB) snr = EbN0dB(ii);
display(snr);
rx11 = ctc_stfc(Ninput, snr, 4, 2, 2, Ncarr, 4, M, modtype); rx1 = LDPCdecode(rx11,newH,iter); % gi?i mã LDPC
rx2 = LDPCdecode(rx22,newH,iter); % gi?i mã LDPC [num2, err2e(id)] = biterr(rx2, data);
rx33 = ctc_stfc(Ninput, snr, 2, 2, 8, Ncarr, 2, M, modtype); rx3 = LDPCdecode(rx33,newH,iter);
[num3, err3e(id)] = biterr(rx3, data);
rx44 = ctc_stfc(Ninput, snr, 2, 2, 2, Ncarr, 8, M, modtype); rx4 = LDPCdecode(rx44,newH,iter);
[num4, err4e(id)] = biterr(rx4, data); id = id + 1;
end
snr = 0:3:max(EbN0dB);
semilogy(snr,err1e,'rv-','LineWidth',2); hold on; semilogy(snr,err2e,'bs-','LineWidth',2); hold on; semilogy(snr,err3e,'kd-','LineWidth',2); hold on; semilogy(snr,err4e,'mo-','LineWidth',2); hold on; axis([EbN0dB([1 end]) 1e-6 1e0]);
grid on;
legend('STFC 4x2 NB=2 L=4 with LDPC', 'STFC 2x4 NB=2 L=4 with LDPC', 'STFC 2x2 NB=8 L=2 with LDPC','STFC 2x2 NB=2 L=8 with LDPC');
xlabel('SNR (dB)'); ylabel('BER');
str = ['He thong MIMO-OFDM STFC, cung muc phan tap 64, ma hoa LDPC, dieu che QPSK']; tle = [sprintf(str)]; title(tle); 8. Ch ng trình so sánh các h th ng MIMO-OFDM clear all; %--- %--- M = 4; % Muc dieu che Ncarr = 128;
Nsym = 10^3; % So symbol EbN0dB = 0:20; % bit to noise ratio Ntx = 2; % So anten phat
Nrx = 2;
Ltap = 4; % So duong fading modtype = 'qam';
N = 8*Ncarr*Nsym; % so symbol hoac bit vao data = round(rand(1, N)) ;
[Ninput, newH] = LDPC(data,m,n); id = 1;
for ii = 1:1:length(EbN0dB) snr = EbN0dB(ii);
display(snr);
rx1 = ctc_OFDM(data,snr,2,2,Ncarr,4, M, modtype); % MIMO-OFDM chua ma hoa [num1, err1e(id)] = biterr(rx1, data);
rx2 = ctc_stfc(data, snr, 2, 2, 2, Ncarr, 4, M, modtype); %MIMO-OFDM ma hoa STF [num2, err2e(id)] = biterr(rx2, data);
rx33 = ctc_stfc(Ninput, snr, 2, 2, 2, Ncarr, 4, M, modtype); % Ma hoa STF rx3 = LDPCdecode(rx33,newH,iter); % giai ma LDPC [num3, err3e(id)] = biterr(rx3, data);
% rx4 = ctc_stfc(Ninput, snr, 2, 2, 2, Ncarr, 8, M, modtype); % [num4, err4e(id)] = biterr(rx33, Ninput);
id = id + 1; end
snr = 0:1:max(EbN0dB);
semilogy(snr,err1e,'rv-','LineWidth',2); hold on; semilogy(snr,err2e,'bs-','LineWidth',2); hold on; semilogy(snr,err3e,'kd-','LineWidth',2); hold on; %semilogy(snr,err4e,'mo-','LineWidth',2); hold on; axis([EbN0dB([1 end]) 1e-6 1e0]);
grid on;
legend('MIMO-OFDM', 'MIMO-OFDM STFC ', 'MIMO-OFDM STFC with LDPC'); xlabel('SNR (dB)');
ylabel('BER');
str = ['So sanh he thong MIMO-OFDM, 2Tx-2Rx NB=2 L=4, dieu che 4QAM']; tle = [sprintf(str)];
TĨI LI U THAM KH O
TƠi li u ti ng Vi t
[28] Nguy n Th H u, Ứng dụng bộ mã LDPC vào hệ thống MIMO, Lu n văn t t nghi p th c s , Tr ng ĐH Bách Khoa TP H Chí Minh, năm 2010.
TƠi li u ti ng Anh
[1] Robert G.Gallager, Low-Density Parity-Check Codes., 1963.
[2] I. E. Telatar, "Capacity of multi-antenna gaussian channels," European Trans.
on Telecommunications, vol. 10, pp. 585ậ595, Nov 1999.
[3] V. Tarokh, N. eshadri, and A. R. Calder ank, "Space-time codes for high data rate wireless communiation: Performance criteria and code construction," IEEE
Trans. Inform. Theory, Mar 1998.
[4] Mohinder Jankiraman, Space-time Codes and MIMO Systems.: Artech House. [5] M.Alamouti, "A simple transmit diversity technique for wireless
communications," IEEE JSAC, vol. 18, no. 8, October 1998.
[6] Yong Soo Cho, Jaekwon Kim, Won Young Yang, Chung-Gu Kang, MIMO- OFDM wireless communications with MATLAB. Korea: John Wiley & Sons
(Asia) Pte Ltd, 2010.
[7] A. E. Pusane, K. Sh. Zigangirov, and D. J. Costello, Jr, Construction of irregular LDPC codes with fast encoding property. in In Proc. IEEE Intl. Conference, Istanbul, Turkey, June 11-15, 2006.
744-765, 1998.
[9] V. Tarokh, H. Jafarkhani, and A. R. Calderbank, "Space-time block codes from orthogonal designs," IEEE Transactions on Information Theory, vol. vol. 45,
no. 5, pp. 1456ậ1467, July 1999.
[10] W. Su, X. Xia, "On space-time block codes from complex orthogonal designs: Wireless Personal Communications.," vol. vol. 25, pp. 1-26, Apr. 2003.
[11] Hamid Jafarkhani, Space time coding theory and practice. University of
California: Cambridge University Press 2005.
[12] Branka Vucetic and Jinhong Yuan, Space Time Coding. University of Sydney and University of New South Wales Australia: John Wiley and Sons, 2003. [13] Richard C. Dorf, University of California, Davis, The Electrical Engineering
Handbook Series: Wireless, Networking, Radar, Sensor Array Processing, and Nonlinear Signal Processing, Second edition ed.: CRC Press, 2010.
[14] M.O. Damen, H.ElGamal, "On maximum-likelihood detection and the search for the closest lattice point," IEEE transactions on information theory, vol. vol. 49, pp. pp. 2389-2402, October 2003.
[15] V. Tarokh, H. Jafarkhani, and A. R. Calderbank, "Space-time block coding for wireless communication: Performance results," IEEE Journal on selected areas
in communications, vol. vol. 17, no. 3, pp. 451 - 460, March 1999.
[16] K.F. Lee, D.B. Williams, "A space-frequency transmitter diversity technique for OFDM systems," IEEE GLOBECOM, vol. pp. 1473-1477, Nov. 2000. [17] H. Blolcskei, A.j. Paulraj, "Space-frequency coded broadband OFDM
[18] W. Su, Z. Sofar, K.J. Ray Liu, "Full-rate full-diversity space-frequency codes with optimum coding advantage," IEEE Trans. Inform. Theory, vol. vol. 51,
pp. 229-249, Jan. 2005.
[19] L. Sho, S. Roy, S. Sandhu, "Rate-one space frequency block codes with maximum diversity gain for MIMO-OFDM," Proc. IEEE GLOBECOM'03, pp. pp. 809-813, Dec. 2003.
[20] Kiran T. and B. S. Rajan, "A systematic design of high-rate full-diversity space-frequency codes for MIMO-OFDM systems," IEEE Trans. Inform. Theory, Feb. 2005.
[21] Andreas A. Hutter, Selim Mekrazi, Beza N. Getuc, Fanny Platbrooda, "Alamouti-based space-frequency coding for OFDM," Wireless Personal Communications, vol. 35: 173ậ185, Springer 2005.
[22] W. Zhang, X.-G. Xia, and P. Ching, "Universal Space-Frequency Block Coding for MIMO-OFDM Systems," in Proceedings of 2005 Asia-Pacific Conference on Communications, pp. pp. 227ậ231, Oct. 2005.
[23] Z. Safar, W. Su, and K. J. R. Liu, "A fast sphere decoding algorithm for space- frequency block codes," EURASIP J. Appl. Signal Process, vol. vol. 2006, pp. pp. 148ậ148, January 2006.
[24] W. Su, Z. Safar, and K.J.R. Liu, "Towards maximum achievable diversity in space, time and frequency: Performance analysis and code design," IEEE Trans. Wireless Commun., vol. 4(4), 1847ậ1857, July 2005.
[26] W. Zhang, X.-G. Xia, and P. C. Ching, "High-rate full-diversity space-time- frequency codes for MIMO multipath block-fading channels," in Proceedings of IEEE Global Telecommunications Conference, GLOBECOM ’05, vol. vol. 3, 2005.
[27] W. Zhang, X. G. Xia, and P. C. Ching, "High-Rate Full-Diversity Space-Time- Frequency Codes for Broadband MIMO Block-Fading Channels," IEEE Transactions on Communications, vol. vol. 55, no. 1, pp. pp. 25ậ34, 2007.