discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] how does Doppler shift increment in flat fading chann


From: Nasi
Subject: [Discuss-gnuradio] how does Doppler shift increment in flat fading channel GNU radio
Date: Mon, 22 Feb 2016 17:41:37 +0300

Hello,

The question is about how does the given Doppler shift progress, or how is the Doppler induced phase shift implemented.

I select a simple frequency selective fading block and feed in it some gr_complex(1, 0) values. For simplicity I run one fader (num of sinusoids).
in file:
https://github.com/osh/gnuradio.old/blob/master/gr-channels/lib/flat_fader_impl.cc 
in the code below,
#elif FASTSINCOS == 2
 float s_i = scale_sin*d_table.cos(2*M_PI*d_fDTs*d_m*d_table.cos(alpha_n)+d_psi[n+1]);
 float s_q = scale_sin*d_table.cos(2*M_PI*d_fDTs*d_m*d_table.sin(alpha_n)+d_phi[n+1]);
  
 #else
 d_m shows that the Doppler shift must progress sequencially. However, the value of "2*M_PI*d_fDTs*d_m*d_table.cos(alpha_n)" as a whole, produces floating point numbers which results in kind of random values out of d_table.cos() function in file
https://github.com/osh/gnuradio.old/blob/master/gr-channels/lib/sincostable.h


Some more explanation:
the value: 2*M_PI*d_fDTs*d_m*d_table.cos(alpha_n) gets in as x below (in file .../lib/sincostable.h)
(((int)(x*d_scale)) + d_sz) % d_sz; - this is a random integer value (may be not, can you please help me with that?)
therefore it returns a random cos value as: return d_cos[idx];

The issue arises when that floating point values inside cos() function is converted to integers as given above.

Now, my question is, did you do that random phase shift/Doppler shift on purpose? If yes, what is the reasoning behind that.
As far as I know, the Doppler shift should be somehow linear progressive.

--
NE
reply via email to

[Prev in Thread] Current Thread [Next in Thread]