Hi,

(I was not in the mailing list for a long time) yes, you are right.
d_m is incrementation or index after initialization, which is correct thing 
there. Yes, as you also said that is per sample.
cos(alpha_n) is constant there, I checked that. cos table looks like just 
cosine values, which must be there somehow.

But the value are selected out of cos table kind of randomly. I think there is 
a "bug" in the code. Otherwise, let someone explain it better. The Doppler 
shift cannot jump from sample to sample randomly. If I make a mistake please 
correct it.


P.S.: In matlab that thing is not random. After some samples that changes a 
little bit depending on the max Doppler shift.

-
Nasimi

>Понедельник, 22 февраля 2016, 9:54 -08:00 от Bastian Bloessl 
><bloe...@ccs-labs.org>:
>
>Hi,
>
>I posted a question about the very same lines of code four days ago, but did 
>not get a reply yet
>
>http://lists.gnu.org/archive/html/discuss-gnuradio/2016-02/msg00254.html
>
>I’m not sure whats going on there, but some wild guesses:
>
>The Doppler Frequency per sinusoid is distributed according to that U-shaped 
>thing you see everywhere.
>Now, instead of rolling the dice once during initialisation and sticking to 
>that Doppler frequency forever, this implementation is doing something like a 
>random walk through the Doppler Spectrum.
>
>alpha_n is going back and forth between -pi and pi (plus some initial phase 
>offset), so fDTs * cos(alpha_n), the normalised Doppler Frequency, follows 
>this U-distribution.
>
>This has the advantage that you can start the block once and your results will 
>converge to the mean. (Otherwise, you would have to do a lot of repetitions to 
>get a lot of random initialisations.)
>
>What I don’t get (and what I asked in the other thread) is why this is 
>multiplied with d_m. I think that, per sample, the current Doppler Frequency 
>should be used to calculate an incremental angle to the previous value.
>
>(I guess the sincostable is just a lookup table for sin and cos values for 
>speed optimisation.)
>
>I hope that didn’t confuse even more...
>
>Best,
>Bastian
>
>
>
>>On 22 Feb 2016, at 06:41, Nasi < nesaz...@mail.ru > wrote:
>>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
>


-- 
NE
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to