HI Marcus,

Thank you so much for your help!

Since there's one iteration per output sample and the number of taps of
filtering is 8 (fixed), the time it takes to do one iteration is fixed no
matter what resampling ratio I set. What slows things down is: as the
resampling ratio increase, the number of iteration increases given a fixed
number of input items. I just want to make sure I understand things
correctly :)

I set the resampling ratio to be (1/67.5) at transmitter, I noticed that
(1/67.5) doesn't work as good as the integer (1/64.0), does it mean
fractional part will also slow things down?

Thanks,
Yang

On Mon, Oct 23, 2017 at 5:47 AM, Marcus Müller <muel...@kit.edu> wrote:

> Hi Yang,
>
> for questions of performance, it's usually best to consult the source code
> itself. By the way, fractional_resampler_** has been renamed
> mmse_resampler_** on git's "next" branch.
>
> You'll notice the code in {mmse_|fractional_}resampler_cc_impl.cc is:
>
>         while(oo < noutput_items) {
>           out[oo++] = d_resamp->interpolate(&in[ii], d_mu);
>
>           double s = d_mu + d_mu_inc;
>           double f = floor(s);
>           int incr = (int)f;
>           d_mu = s - f;
>           ii += incr;
>         }
>
>         consume_each(ii);
>         return noutput_items;
>
>
> Which means there's one iteration per output sample, invariably, no matter
> what your resampling ratio is.
> What would increase the performance is reducing NTAPS in
> {mmse_|fractional_}interpolator, but since that is already only 8, which,
> with a bit of SIMD, your CPU does in a single instruction, I don't seem
> that much room for improvement there.
> The other thing would be reducing NSTEPS, but it's already but a 7 bit
> quantization of the *q* in *r*ᵣₑₛₐₘₚₗₑ = *n* + *q*, *n*∈ℕ₀, 0≤*q*∈ℚ, so
> I'm not convinced you'd want to do that; the jitter you get for a *b* bit
> quantization (i.e. *b*=log₂ NSTEPS) has a variance of (-20*b* log₁₀ 2-10
> log₁₀ 12) dB ≈ -(6*b* + 10.8) dB (hoping that I do the math right). If I
> juggle Cauchy's mean value theorem correctly in my head, that means you
> basically get that (times the signal power) as the worst-case power in the
> phase noise introduced by the timing approximation with a critically
> sampled signal. If I'm right (really, haven't taken the time to write this
> down), then that means e.g. for NSTEPS=128, that you get -52.8 dB phase
> noise, whereas a reduction to let's say NSTEPS=16 gives you 24 dB more
> noise – and -28.8 dB phase noise isn't all that great.
>
> What are the resampling ratios you're working with?
>
> Best regards,
> Marcus
>
>
> On 2017-10-23 05:31, Yang Liu wrote:
>
> Dear all,
>
> I used fractional resampler(gr::filter::fractional_resampler_cc) at
> transmitter side to help up sample the signal to the device sample rate
> before sending it out. In the experiment, I found that this resampler works
> well for some resample ratio (in terms of speed), and the performance
> (speed) doesn't necessarily improve as the resample ratio decreases.
>
> Therefore, I am wondering whether this resampling block indeed works
> better for some sets of resampling ratio? If yes, what are these sets?
> Knowing this will help me to set the parameters at tx properly especially
> when the sample rate is high :)
>
> Thanks a lot for your help.
>
> Best,
> Yang
>
>
> _______________________________________________
> Discuss-gnuradio mailing 
> listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to