discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Fractional delay in fractional resampler block


From: Marcus Müller
Subject: Re: [Discuss-gnuradio] Fractional delay in fractional resampler block
Date: Fri, 28 Nov 2014 17:59:30 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0

Hello Carlos,

I don't really think that what you built really reflects what you're
trying to achieve: I thought you needed a really small delay in time
domain, and a sampling rate conversion from 10MHz to 10.23MHz.

Why are you doing a delay in frequency domain? That will simply be a
frequency shift in time domain, which you could easily realize (and with
much smaller computational error) by multiplying with a complex sine in
time domain.

I don't really understand what you mean with "small variable delay in
the receiver": Do you mean your system is not somehow synchronized?

Best regards,
Marcus Müller

On 11/28/2014 05:16 PM, Carlos Alberto Ruiz Naranjo wrote:
> Hi Marcus,
>
> I spent a week doing tests and do not know what can be the fault. Did you
> see any mistake? [1]
> If I transmit the signal with no delay (signal -> FFT -> IFFT -> USRP) I
> have a small variable delay unwanted in the receiver.
>
> Greetings.
>
> [1] Now use powers of two in the FFT lenght (128,256...)
>
> 2014-11-19 14:57 GMT+01:00 Carlos Alberto Ruiz Naranjo <
> address@hidden>:
>
>> *** The bandwidth of the signal is 4 MHz.
>>
>>
>>
>> Greetings,
>> Carlos Alberto Ruiz Naranjo.
>>
>> Área de Aviónica y Sistemas No Tripulados/Avionics and Unmanned Systems
>> Department
>>
>> Parque Tecnológico y Aeronáutico de Andalucía
>> C/ Wilbur y Orville Wright, 17-19-21
>> 41309 La Rinconada
>> Sevilla (Spain)
>> (+34) 954179002
>> http://www.catec.aero/
>>
>> 2014-11-19 9:03 GMT+01:00 Carlos Alberto Ruiz Naranjo <
>> address@hidden>:
>>
>>> Hello!
>>>
>>> I have done the fractional delay block ( http://pastebin.com/cEDfTh9m ).
>>> Have you seen some error? I have used the proposed filter in "Closed
>>> Form Variable Fractional Time Delay Using FFT" [1][2]
>>> This is my flowgraph:
>>>
>>>
>>>
>>> ​
>>> - My signal sample rate is 10230000 samples per second and I want a
>>> variable delay of 1ns of precision. What is the relationship between the
>>> maximum precision of fractional delay and the length of the FFT? What is
>>> the limit?
>>>
>>> - Is it a problem the fractional resampler of 1.023? Can it distort my
>>> signal? [3]
>>>
>>>
>>> Greetings,
>>> Carlos Alberto Ruiz Naranjo.
>>>
>>> Área de Aviónica y Sistemas No Tripulados/Avionics and Unmanned Systems
>>> Department
>>>
>>> Parque Tecnológico y Aeronáutico de Andalucía
>>> C/ Wilbur y Orville Wright, 17-19-21
>>> 41309 La Rinconada
>>> Sevilla (Spain)
>>> (+34) 954179002
>>> http://www.catec.aero/
>>>
>>>
>>>
>>>
>>>
>>>
>>> [1]
>>> https://www.deepdyve.com/lp/institute-of-electrical-and-electronics-engineers/comments-on-closed-form-variable-fractional-time-delay-using-fft-tNk7X6CH9c
>>> [2] http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6171834
>>> [3] I use the fractional resampler because I can't put a sample rate of
>>> 10230000 in the USRP block.
>>>
>>>
>>>
>>>
>>> 2014-11-17 14:26 GMT+01:00 Marcus Müller <address@hidden>:
>>>
>>>> Hi Carlos,
>>>> yes, your formular looks correct, scalar multiplication aside.
>>>>
>>>> Regarding your problem:
>>>> It's not a problem, it's a feature :)
>>>> you're using window functions in your FFT, that's what's changing your
>>>> signal.
>>>> The FFT is but an implementation of the DFT (discrete fourier
>>>> transform), which is, considering the input as element of a
>>>> n_fft-dimensional vector space, is but a base change, and thus has an
>>>> inverse -- the IDFT (incarnated by the IFFT).
>>>>
>>>> what you see is something like the norm of the square of the window
>>>> function; use "rectangular" to avoid this.
>>>>
>>>> Greetings,
>>>> Marcus
>>>>
>>>> On 11/17/2014 12:23 PM, Carlos Alberto Ruiz Naranjo wrote:
>>>>> I have some questions about FFT method.
>>>>>
>>>>> - I have done a test with my signal ( [Signal] -> [FFT] -> [IFFT] ->
>>>> [Signal]
>>>>> ) and I have a problem with the spectrum (central lobe):
>>>>>
>>>>>
>>>>>
>>>>> ​
>>>>>
>>>>> - To insert a delay I multiply the FFT by [1], right?
>>>>>
>>>>> Can I insert a delay (no variable) if I multiply the FFT by GNURadio
>>>> sine
>>>>> complex block?
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Greetings,
>>>>> Carlos Alberto Ruiz Naranjo.
>>>>>
>>>>> Área de Aviónica y Sistemas No Tripulados/Avionics and Unmanned Systems
>>>>> Department
>>>>>
>>>>> Parque Tecnológico y Aeronáutico de Andalucía
>>>>> C/ Wilbur y Orville Wright, 17-19-21
>>>>> 41309 La Rinconada
>>>>> Sevilla (Spain)
>>>>> (+34) 954179002
>>>>> http://www.catec.aero/
>>>>>
>>>>>
>>>>> [1] N: length of FFT, m: delay, k: position
>>>>>
>>>>>
>>>>>
>>>>> 2014-11-12 15:32 GMT+01:00 Marcus Müller <address@hidden>:
>>>>>
>>>>>>  well, yes, you could, but that sounds ugly:
>>>>>> 1. a sample rate of 1e9Hz implies --for complex float-- a memory
>>>>>> consumption of 1e9*8B~=8GB per second...
>>>>>> 2. unwieldy fractional resampling, because 10.23e6 and 1e9 don't have
>>>> a
>>>>>> very large common divisor; you'll be interpolating by a factor of
>>>> 100000
>>>>>> just to decimate by 1023... That is effectively just very very many
>>>> samples
>>>>>> in-between.
>>>>>> 3. you're sampling at 10.23MS/s, but you want to do something with a
>>>>>> temporal resolution of 10 times that rate; that's a phase shift, for
>>>> sure,
>>>>>> but I'm afraid that it sounds like you're trying to harm Nyquist in
>>>> some
>>>>>> way or another.
>>>>>>
>>>>>> When were talking on how to simulate delay introduced by radar range
>>>> in
>>>>>> GNU Radio, a wise[1] elder[2] told me to do time shifting in frequency
>>>>>> domain:
>>>>>>
>>>>>> The idea is that a time shift corresponds to frequency shift in
>>>> frequency
>>>>>> domain, so you can, within the spectral precision defined by the
>>>> length of
>>>>>> your DFT, have arbitrary shifts by doing [time
>>>> signal]->[DFT]->[multiply
>>>>>> with complex sine]->[IDFT] . Note that, due to the circular nature of
>>>> the
>>>>>> DFT, this will distort the first samples of the output.
>>>>>>
>>>>>> Greetings,
>>>>>> Marcus
>>>>>>
>>>>>> [1] one might consider him wise
>>>>>> [2] not really an elder
>>>>>>
>>>>>>
>>>>>> On 11/12/2014 02:50 PM, Carlos Alberto Ruiz Naranjo wrote:
>>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I have in my project a sample rate of 10.23 million samples per
>>>> second and
>>>>>> I need to delay the signal +-1ns. With GNURadio block delay I can
>>>> delay the
>>>>>> signal 97.75ns (1 / 10,230,000 -> + - one sample).
>>>>>>
>>>>>> Could I use the fractional resampler block to enter a variable
>>>>>> fractional delay?
>>>>>> Has anyone implemented a fractional delay block?
>>>>>>
>>>>>> Thank you.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Discuss-gnuradio mailing address@hidden://
>>>> lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Discuss-gnuradio mailing list
>>>>>> address@hidden
>>>>>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>>>>
>>>>>>
>>>>




reply via email to

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