links to sections:
Before the fix
After the fix
Links to plots:
plots
show the out of order data from file .0809..
32channel,200MHz (.ps) (
.pdf):
the results after the fpga image was updated (ps)
(
.pdf)
The problem:
Project p2676 took puppi data with 32
chan, 200 MHz bw, raw mode on 09aug12. The pulsar did not
appear in the data. Looking at the radar rfi in the band, it
looked like the radar freq was getting spread over 8
different channels (one in each gpu) rather than showing up in
a single channel.
Resolution:
Paul found that the reorder fpga was using an older
version.. It was updated 10aug12 around noon.
The tests:
On 10sep12 we did a test where a sine wave
was injected into polA of puppi (polB had its input
terminated). The setup was:
- center freq of band: 1500 MHz
- sine wave freq: 1512.93750. amplitude at synth -30
dbm (morning), -24db (afternoon)
- puppi setup:
- 32 channel, -200 MHz bw (flipped), raw mode
- puppi attenuators 4,6 db
- running guppi_adc_hist had
- morning -30dbm: +/- 25 counts
- afternoon: -24dbm +/- 50 counts
Morning session (before fpga image
switched).
Data was taken in the morning session:
- puppi_56180_sineWave_0809.0000.raw (one file for each gpu)
- puppi_56180_sineWave_0808.0000.raw (one file for each gpu)
- Other files:
- (.0806) is also 32 channels but it was 2 files
long..(;0808) is a smaller file size so it was easier to
transfer.
- (.0807) is junk... (64 channels in puppi_observer but i
had forgotten to rerun guppi to change the channels.
Looking at the the rms on the gpu's, the
problem was still occurring. Power was showing up in 8 gpus
rather than the single channel.
The plots show the out
of order data from file .0809.. 32channel,200MHz
(.ps) (.pdf):
- Page 1: total power samples
- top: Sample power vs sample for the first 100 samples
and 32 channels.
- Channels have been offset for display
- The channels from each gpu use a different color.
gpu01,chan0 is at the bottom.
- Chan 2 (cnt from 0) of each gpu has sinewave power.
Every 8th time sample has power.
- MiddleFrame: mean power each channel (over entire 8e6
samples of block).
- Each color is a different gpu.
- BottomFrame: rms of total power for each channel.
- Page 2: plot voltage samples of uncorrected data.
- Top: The first 200 samples of chan2 (0..31) are plotted.
Every 8th sample has power
- Bottom: plot every 8th sample along chan2 (0..31)
- You start to see the sine wave but there is a glitch
every 8th point.
- Page 3: try putting the data back into correct order.
- Let the data be d[nsmpTot,nchanGpu,ngpus] be the data
- i'm using fortran,idl order where the first index
varies most rapidly
- Looking at page 1 we need to take every 8th timeSample
sample along a channel and then every 4th channel.
- Redimension the array (without reordering it ) to be:
- d[nsmpTot,nchanGpu,ngpu) ->
d[8(d0),nsmpTot/8(d1),nchanGpu(d2),ngpu(d3)]
- (dn) are references for these initial dimensions
- Now reorder the array:
- dN[nsmpTot/8 (d1),ngpu(d3),nchanGpu(d2),8(d0)]
- This put all the power in channel 14 (0..31) or
gpu05,chan2.
- TopFrame: total power samples vs sample.
- Same as page 1 plot after reordering. The blue channel
with the jump is the channel 14 with the sine wave.
- MiddleFrame: mean power each re ordered channel
- channel 14 sticks out. channel 18 is the image
about the center of the band.
- BottomFrame: rms of total power for each channel after
reordering
- channel 14 rms sticks up since Tsys is higher for this
channel.
- Page 4: plot reordered voltage for channels with
sine wave and image.
- Top: channel 14:sinewave
- Bottom: channel 18: image
- The green dashed lines should be the period of the sine
wave.
- You can see that the period for the sine wave and the
image are not what they should be
- Removing a glitched point every 8 samples makes things
better, but it doesn't fix the problem.
- Page 5: spectra of sine wave and image after reordering:
- top,2nd Frames: sine wave channel
- 3rd,bottom: image channel
- The plot show the full channel bw (6.25 MHz) and a
blowup around the signal
- The dashed blue line is the expected position of the
sine wave and it's image.
- The offset is .0625 MHz (or 1/100 of the total channel
bandwidth.
Morning summary:
- The 32 channel 200 MHz data is out of order.
- To re-order the data you need to do:
- y[8,nsmpTot/8,nchnGpu,ngpu] ->
yN[Nsmptot/8,ngpu,nchangpu,8] to put it close to correct
order
- After reordering, the sine wave has been shifted by
1/100 of the channel bandwidth
- (This assumes i didn't screw up somewhere...)
processing:
x101/120910/puppisine_1.pro
Afternoon session (after fpga image
switched).
Paul noticed that the image for the
reordering fpga was out of date. He updated the image to the
same version that guppi (at greenbank) was using.
Dana and i repeated the tests in the afternoon (after the
image was updated).
The only setup change was that the power
was increased by 6db (-24dbm out of the synth). Running
guppi_adc_hist gave +/- 50 counts as the maximum for the
histogram.
The data taken was:
- puppi_56180_sineWave_0810.0000.raw (128Mb)
- This is less than 1 raw block of data.. so i repeated
the run..
- puppi_56180_sineWave_0811.0000.raw (2 Gb)
Looking at the data:
The files (0811) were copied (not
moved) from the 8 gpu's to:
- /data/puppi/philTest/sinewave/gpu0N
- This data was then copied to /data/phil/puppi on aserv21.
This is the data after the fpga image was updated. Some idl
routines were then used to look at the raw data samples.
The plots show
the
results after the fpga image was updated (ps) (
.pdf)
- Page 1:
- Top Frame: 1000 total power samples for the 32 channels
- Sample rate .16 usecs/channel
- Offsets have been added for display
- Different colors are different gpus (01 starts at the
bottom).
- the 32 channels go bottom to top.
- You can see the sine wave jump up at sample 500.
- 2nd Frame: mean power value each channel
- The mean power for each channel was computed for the
first block of data (about 8.4 million samples)
- You can see the sine wave popup in in channel 14
(gpu05,chan2)
- The total power should not be bouncing around this
much.
- You can also see an image of the sine wave in chan 18
(gpu06 chan2)
- 3rd frame:
- This is the rms f the channel power for the 8 million
samples of each channel
- The rms for chan 14 is large, the rms for channel 18
(the image) is small
- Page 2: plot the voltage samples for the sinewave channel
and the image channel
- Top: sine wave channel.
- black is real, red is imaginary. The dashed green line
is the computed period the sine wave should have.
- Bottom: Sine wave image channel
- You can clearly see the sine wave of the image with
the correct period.
- Page 3: spectra of the sine wave and image:
- I used 20000 samples (3.2 millisecs) to compute a single
spectrum
- Top: spectrum of the sine wave
- Bottom: spectrum of the image
- The blue line shows the expected frequency for
each:
Summary:
- The 32 channel data was out of order prior to noon
10sep12.
- Reordering the data "almost" got things back to the
correct order)
- Updating the reorder fpga image now places all of the sine
wave power in the correct channel
- A sine wave of +/- 50 counts is too large for the
polyphase filter bank with it's current downshift scheme of
every other butterfly stage.
- a sinewave of +/-25 counts looks like it gets through
the pfb ok
- Some questions i have:
- Why did the sine wave channel (14) start at sample 500
while the image channel (18) had the image from sample 0
??
- I would expect the delay to be the same for all the
channels?
- I don't know if the fpga pfb is clipping at the
max,min values or it is letting them wrap around.
- TODO:
- It was be nice to know how large a sine wave the pfb can
handle. This would give an idea of how well it will handle
the radars at lband
- Was this the only bug in the old fpga image? Are there
other problems lurking in the data that people have taken
(mainly in coherent folding mode?)
processing:
x101/120910/puppisine.pro