Kurtosis_Spectrometer - david-macmahon/wiki_convert_test GitHub Wiki
The Spectral Kurtosis (SK) Spectrometer was built by Zhiwei Liu for Korean Solar Radio Burst Locator (KSRBL). This instrument utilizes four of these 500 MHz bandwidth SK spectrometers in parallel, to achieve a 2 GHz instantaneous bandwidth that is time multiplexed over the entire DC-18 GHz radio frequency range.
The unique aspect of the spectrometer is that it accumulates both power and power-squared statistics which are then used to develop a "spectral kurtosis"(SK) estimator as described by Nita et al. (2007, PASP 119, 805). The SK estimator is used offline for real-time detection and excision of RFI embedded in the received signal. The required power and power-squared data are broadcast by the FPGA via fast ethernet and converted to the SK estimator using software implemented in LabVIEW.
Specifications
Frequency channels: | 2048 (4096 real samples per spectrum) |
Clock input: | 1000 MHz |
Signal input: | 500 - 1000 MHz |
Integration time: | 25 ms |
Polyphase filter: | 4taps, Hamming window |
Output: | 100 Mbit Ethernet, 32-bit per spectrum bin |
Libraries used: | mlib_devel 7.1 |
hardware: | iBOB, iADC |
Source Files
{{bit|Kurtosis_spec.tar|Kurtosis Spectrometer Model File and PowerPC Source, Rev: May 2009}}
{{bit|Ksrbl_4k4t_hdtrig_2009_May_12_1104.bit.gz|Kurtosis Spectrometer .bit File, Rev: May 2009}}
{{bit|IBob_receiver.zip|Kurtosis Spectrometer LabVIEW data receiver, Rev: Aug 2009}}
{{bit|ks_spectrometer.zip|Kurtosis Spectrometer based on ROACH board, Rev: Nov 2009}}
Documentation
Initialization Commands:
regwrite reg_shift -1
This sets the shifting schedule through the FFT. -1 means every sample is divided by 2 at every stage.
regwrite reg_coeff 4096
There is a scaling factor at the output of wide_band_FFT block. The fix point position is 12, so 4096=2^13 actually is 1.
regwrite reg_acclen 6249
This sets the integration time to 6250 spectra (around 25.6 ms at 1000 MHz ADC clock)
regwrite reg_sync_period 25600000
This sets the sync period to 25600000 FPGA clocks
regwrite reg_arm 0
regwrite reg_arm 1
The rising edge of reg_arm starts the operation and reset the accumulated spectra counter to 0. You can also use external signal to trigger the arm (connect the external signal to SMA1 of iBOB).
startudp 169 254 128 5 6969
This sends the udp packets to 169.254.128.5 with destination port 6969.
Packets Format:
Each UDP packet is 1045 bytes (21 bytes of header, 1024 bytes of raw data).
Header Format:
Byte Type Descr., Example
0-3 uint32 spectrum number
4 uint8 register value of reg_power_bitselect
5 uint8 register value of reg_power2_bitselect
6 uint8 register value of reg_power_bfacc_bitselect
7 uint8 Reserved
8-11 uint32 Number of Accumulation -1, eg.3999->4000 accumulation
12 uint8 number of packets per spectrum(power and power^2)
13-20 ------ Reserved
Results
Watch video of Spectral Kurtosis elimination of Radio Frequency Interference (RFI)
Resource Utilization
Logic Utilization:
Number of Slice Flip Flops: 32,313 out of 47,232 68%
Number of 4 input LUTs: 15,378 out of 47,232 32%
Logic Distribution:
Number of occupied Slices: 19,761 out of 23,616 83%
Total Number 4 input LUTs: 23,450 out of 47,232 49%
Number used as logic: 15,378
Number used as a route-thru: 562
Number used for Dual Port RAMs: 556
(Two LUTs used per Dual Port RAM)
Number used as 16x1 RAMs: 4
Number used as Shift registers: 6,950
Number of bonded IOBs: 152 out of 692 21%
IOB Flip Flops: 175
IOB Master Pads: 19
IOB Slave Pads: 19
IOB Dual-Data Rate Flops: 1
Number of PPC405s: 2 out of 2 100%
Number of JTAGPPCs: 1 out of 1 100%
Number of Block RAMs: 146 out of 232 62%
Number of MULT18X18s: 64 out of 232 27%
Number of GCLKs: 3 out of 16 18%
Number of DCMs: 3 out of 8 37%
Number of GTs: 0 out of 16 0%
Number of GT10s: 0 out of 0 0%