[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Discuss-gnuradio] Gr channel_model Problems
From: |
Wang Ning |
Subject: |
[Discuss-gnuradio] Gr channel_model Problems |
Date: |
Fri, 22 Mar 2013 14:37:41 +0800 |
Hi guys,
I am trying to use gnuradio channel_model to do some simulation right now, and
I found something is not consistent in the implementation of the channel_model
C++ code. Here is my confusion:
In gnuradio-core/src/lib/hier/gr_channel_model.cc : line 57
d_timing_offset = gr_make_fractional_interpolator_cc(0.0, epsilon);
defines the timing offset filter as a fractional interpolator.
In ./gnuradio-core/src/lib/filter/gr_fractional_interpolator_cc.cc or its
implementation,
we can see that the constructor's first argument is `phase_shift' and the
second arg is 'interp_ration'. From my point of view, `interp_ration' defines
the number of input to output ratio, so if it is less than 1.0, this filter
gives more output items than what it is input; And the `phase_shift' defines
the relative phase of the interpolated sample.
However, timing offset should be a metric of phase shift based on symbol timing
T instead of `interpolation ratio'. In our software implementation, M=Ts/T
>=2, which means the interpolator can only model timing offset at most 1/M,
even so, line 57 of gr_channel_model.cc should be
d_timing_offset = gr_make_fractional_interpolator_cc(epsilon, 1.0);
And many other files using this channel model would then not need to define its
timing offset (like example_timing.py, qa_constellation_receiver.py etc.) to be
1.0
to make things correct.
I wonder if everyone agrees with this, or I am wrong about this? Thanks.
Regards
Wang Ning
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Discuss-gnuradio] Gr channel_model Problems,
Wang Ning <=