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
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to