3.91667

3.9 | 13 ratings Rate this file 29 Downloads (last 30 days) File Size: 4.55 KB File ID: #9158

Rayleigh Fading Channel Signal Generator Using the Dent Model (a modification to the Jakes Model)

by

 

26 Nov 2005 (Updated )

Use this function to create Rayleigh fading channels

| Watch this File

File Information
Description

Dent Rayleigh model is similar to Jakes but uses Hadamard function in MATLAB to make the oscillators (somewhat) independent and thus provide results that are a little more realistic than the Jakes model.

For more details, please read IEEE paper by Wu Z. from 2004 (Electronics Letters, Volume: 40, Issue: 15) that covers the statistical performance of several models, including the Dent. In this paper Wu proposes his own model which is even better than the Dent.

Function Usage Example:
  [omega_mTau, Tk] =
  RayCh(2^7, 2^18, 64, 2, 900, 100)

  where

  NumAngles=2^7,
  Length=2^18,
  symbolRate=64,
  NumWaveforms=2,
  carrierFreq=900,
  Velocity=100

I have created this function for my own purpose, specifically for the use in my OFDM channel estimation model. It may not be as generic as you require, so some tweaking may be necessary. For example, the for() loops can be improved using Matlab vectorization - this is left as an exercise for the reader.

~avetis

Acknowledgements

This file inspired Rayleigh Fading Channel Signal Generator.

MATLAB release MATLAB 7.1.0 (R14SP3)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (20)
15 Sep 2010 Mohammad Al-Jarrah

Dear Sir;
Please if you could help me, how to simulate clarke's channel model in Matlab.
Using the instantaneous correlation
E[ h[n] h*[n+l] ]=j0(2 pi Fd T);
where j0 is the first kind bessel function with order zero.
Thnx in advance

20 Nov 2009 Abdul Hafeez

well first of all in the code when we use frequency as 900 then it is 900 MHz, so multiply 10^6 when you input it. Secondly velocity is also 100 km/hr whereas the other things are in standard units. So, also multiply 1000/3600, then this will be converted to m/s. Last but not the least. Everybody is facing an error at

omega_m = (2*pi) * fm(Velocity, carrierFreq);

the error is on fm. Actually, fm is a maximum frequency and the formula of fm is (fm = CarrierFreq*Velocity/c = 3*10^8). Now our new formula will be

omega_m = (2*pi) * fm; (fm calculation is explained above)

Now, the programme is perfectly running. Anyways nice effort by Avetis Ioannisyan who did this effort.

24 Dec 2008 Mohan  
27 Nov 2008 alieh moradi

??? Undefined function or method 'fm' for input arguments of type 'double'.

Error in ==> ai_RayCh at 62
omega_m = (2*pi) * fm(Velocity, carrierFreq);

20 Sep 2008 Miguel granados

??? Undefined function or method 'fm' for input arguments of type 'double'.

Error in ==> ai_RayCh at 62
omega_m = (2*pi) * fm(Velocity, carrierFreq);

05 Apr 2008 TOM ya  
24 Jun 2007 goldwing joe

when executes this error appear
" Undefined command/function 'Dent' "
..what should i do? Anyone?

17 May 2007 goldwing goldwing

how can i get fast rayleigh fading channel in simple matlab program?

10 May 2007 zhe hu

when run it
error as : undefine function fm
where function fm defined??

23 Apr 2007 THINH TRAN GIA  
23 Apr 2007 THINH TRAN GIA  
28 Nov 2006 Aydar Zimaliev

In the description you mentioned a paper "EEE paper by Wu Z. from 2004 (Electronics Letters, Volume: 40, Issue: 15) that covers the statistical performance of several models, including the Dent". I searched with google and what i came up with is ieeexplore.ieee.org site trying to sell the paper for 35$.

Please, if you still have this paper could sent it to me? I would appreciate that.

Thank you in advance,
Aydar.

27 Nov 2006 Aydar Zimaliev

Looks very good! Thank you!

04 Sep 2006 Jimin Liu

In Line 89, 'term1 = Ak(NumWaveforms,i);' must be ;term1 = Ak(q,i);'. The reason is that in Dent model, the first term is Ak(n), k is the index of waveform.

Any questions?

01 Jun 2006 philip branch

Would be excellent if fm function worked :-)

Can be fixed fairly easily by fm = fc*v/c

24 Mar 2006 Miguel Gonzalez-Lopez

simple but very well done job!

06 Feb 2006 IM Chang

how tod use a function fm(Velocity, carrierFreq).
When I excute this file, occur error beacuse of function fm..

18 Jan 2006 wen wu

give errors when executed

05 Dec 2005 Leng Siew

Enlightening!

29 Nov 2005 Master Mind

Good Help!

Contact us