Code covered by the BSD License  

Highlights from
Blind recognition of space time codes

image thumbnail
from Blind recognition of space time codes by Choqueuse Vincent
These scripts implement several algorithms for the blind recognition of space time block codes.

[log_LF_CP]=compute_LF_CP(received_signal,n,l)
function [log_LF_CP]=compute_LF_CP(received_signal,n,l)

%HELP compute_LF_CP
%Compute the Information criteria for a STBC of code length l using n
%number of symbols per block (CP
%Classifier).
%
%Input:   - received_signal
%           - n: number of symbols per block
%           - l: code length
%
%Output:    - LF: Fonction de vraisemblance
%         
%reference: [1] V. Choqueuse, M. Marazin, L. Collin, K.C. Yao, K and G. Burel
%"Blind Recognition of Linear SpaceTime Block Codes: A Likelihood-Based
%Approach" IEEE Transactions on Signal Processing, Vol 58 (3), p 1290-1299,
%2010

N=size(received_signal,2);
nr=size(received_signal,1);

%% Compute the estimated covariance matrice R (equation 26)
Nb=N/l;
received_signal_block1=[real(received_signal);imag(received_signal)];
received_signal_block=reshape(received_signal_block1,2*nr*l,Nb);
R=(received_signal_block*received_signal_block.')/Nb;

%% Compute the eigenvalue rho of the covariance matrix R
[Ue,rho]=eig(R);
[rho,index]=sort(diag(rho),'descend');
rho_signal=rho(1:2*n);
rho_noise=rho(2*n+1:end);

%% Compute log LF (remove the last term since it does not depend on the STBC)
log_LF=-(Nb/2)*sum(log(rho_signal))...
       -(N*nr-Nb*n)*log(mean(rho_noise));
   
%% Compute the Number of free parameter z   (equation 37)
z=n*(4*nr*l-2*n+1)+1;

%% Compute the Cost function  
log_LF_CP=log_LF-z;

Contact us at files@mathworks.com