> Hi John
>>
>> We are building several new pulsar and spectral line personalities, and
>> we
>> have a weird problem with the FFT block.  No matter how many channels we
>> configure a block for, the last channel in each 1/8th of the spectrum is
>> getting lost.  For instance, if we have a 64 channel personality,
>> channel
>> 0-6 is fine, channel 7 is not fine, channel 8-14 is fine, 15 is not
>> fine,
>> etc.
>
> Just to ask if this is the fft_wideband_real block?

Yes, I believe it is...

>
> In my recent adventures into the fft library I did come across a bug
> that affects fft_biplex_real_4x (and by extension fft_wideband_real)
> output.
>
> It was in the init script for mirror_spectrum used in the
> bi_real_unscr_4x block. There was a swap in latency settings for delay
> blocks for the sync input (sync_delay0 and sync_delay1 specifically).
> This caused some of the output channels to be swapped on output (with
> the actual fft_bins affected depending on latency settings).
> Unfortunately, this bug was introduced in commit 007f55c55 (in 2011) so
> has been around affecting our data for a while. This is fixed in the
> latest fft changes in the ska-sa repo on github.
>
>> You can see this by placing a sine wave into the ADC corresponding to
>> bin
>> 6.  Bin 6 shows a healthy spike in the output FFT.  Life's good.
>>
>> Now change the frequency of the sine wave and put it into channel 7.
>> The
>> line (very nearly) goes away in the output.  Move the frequency again to
>> channel 8, and the line pops back up as it should.
>>
>> This happens no matter how many channels you build, the last channel in
>> each 1/8 of the band is corrupted this way.
>> This is using snap blocks to read the data straight from the FFT block,
>> btw, so there's no other cruft in the test.
>>
>> Has anyone seen this?  It seems to simulate correctly from what we can
>> see, which is even more mysterious.
>
> You can see this bug clearly in simulation using an impulse response as
> input to the fft. Input a pulse of amplitude 0.5 into the second fft
> input one clock cycle after the sync pulse (0s on shift input). You
> should get a complex exponential with frequency 1 (f(t-delta) <=>
> e^(-delta*fw)F(w)) on the output. It is easy to see channel swapping as
> the output function is nice and smooth.

OK.  We'll try a new library version.

Thanks!

John

>
>
>> We're using the casper library:
>>
>> [ptcs@ptcs /export/home/ptcs/scratch/guppi2/libraries/mlib_devel]$ git
>> log -1
>> commit 6050c725f770f0bdb776fae107dc4fe26f7fce51
>> Merge: f50084e 0c15bf7
>> Author: Andrew Martens <and...@ska.ac.za>
>> Date:   Mon May 20 10:59:32 2013 +0200
>>
>>      Merge branch 'master' of https://github.com/ska-sa/mlib_devel
>>
>>      Copied new bitsnap block into separate module and added it by hand
>> in
>> casper
>>      Made the change of BRAM to bram in the snapshot block in
>> casper_library_scop
>>
>>      Conflicts:
>>          casper_library/casper_library_misc.mdl
>>          casper_library/casper_library_scopes.mdl
>>
> Try with the latest commit for the same repo and see if that makes a
> difference.
>
> Regards
> Andrew
>



Reply via email to