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 < > carlosruiznara...@gmail.com>: > >> *** 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 < >> carlosruiznara...@gmail.com>: >> >>> 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 <marcus.muel...@ettus.com>: >>> >>>> 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 <marcus.muel...@ettus.com>: >>>>> >>>>>> 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 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