hamdard
Joined: 09 Jun 2006 Posts: 184 Helped: 10
|
03 Aug 2006 12:03 Re: Frequency Selective Fading Channel |
|
|
|
|
During simualtion, you have to consider multiple path.
for single path, the received signal is
r(j)=Σ(h.x(j))+n(j)
where h is channel coefficient for a particular user amd x(j) is the data . n(j ) is the noise. j=1,2,3,........,J where J is frame length in CDMA.
In multiple path
r(j)=ΣΣ(h.x(j-l))+n(j)
where l is multiple path number. So, the channel must have multipath fading channel with memory lenghth L-1. Anad j=1,2,....,J+L-1.
|
|
ahmedseu
Joined: 31 Jul 2006 Posts: 231 Helped: 20
|
11 Aug 2006 6:54 Re: Frequency Selective Fading Channel |
|
|
|
|
The following is a part of OFDM-MIMO simulating the 'ITU Vehicular A' channel.
% Define the channel profile
Path_Gain = [0.6964 0.6207 0.2471 0.2202 0.1238 0.0696];
Path_Delay = [0 1 2 3 4 5] + 1;
ChannelProfile = 'ITU Vehicular A';
Num_Path = length( Path_Gain );
Max_Delay = max( Path_Delay );
Fc = 3e9;
V = 3;
Fd = V * Fc / 3e8 * 1000 / 3600;
Phase = 2 * pi * rand( 1,Num_Path*Num_RxAnt*Num_TxAnt );
%---------------------------------------------------------
% Channel
ChannelCoeff = MultiPathChannel( repmat( Path_Gain,1,Num_RxAnt*Num_TxAnt ),Fd,Ts,Num_Block,StartPoint,Phase ); StartPoint = StartPoint + Num_Block;
% ChannelCoeff = diag( repmat( Path_Gain,1,Num_RxAnt*Num_TxAnt ) ) * ( randn( Num_Path*Num_RxAnt*Num_TxAnt,Num_Block ) + sqrt( -1 ) * randn( Num_Path*Num_RxAnt*Num_TxAnt,Num_Block ) ) / sqrt( 2 );
ChannelOut = zeros( Num_RxAnt,Ns*Num_Block+Max_Delay-1 );
for RxAnt = 1 : Num_RxAnt
for TxAnt = 1 : Num_TxAnt
h( Path_Delay,1:Num_Block ) = ChannelCoeff( (RxAnt-1)*Num_Path*Num_TxAnt + (TxAnt-1)*Num_Path + (1:Num_Path) , ;
H( RxAnt,TxAnt,: ) = reshape( fft( h,Nc,1 ),1,Nc*Num_Block );
for i = 1 : Num_Block
Temp = ChannelOut( RxAnt, (i-1)*Ns + (1:Ns+Max_Delay-1) );
ChannelOut( RxAnt,(i-1)*Ns + (1:Ns+Max_Delay-1) ) = Temp + conv( h(:,i),TransSig( TxAnt,(i-1)*Ns + (1:Ns) ) );
end
end
end
RecSig = ChannelOut + sqrt( Var ) * ( randn( size( ChannelOut ) ) + sqrt( -1 ) * randn( size( ChannelOut ) ) ) / sqrt( 2 );
clear ChannelCoeff h ChannelOut;
|
|