[hpsdr] Mercury Design assistance required
pvharman at arach.net.au
pvharman at arach.net.au
Wed Jun 21 22:30:51 PDT 2006
Mercury Design assistance required
Whilst I have made good progress with interfacing the LT2208 130MSPS 16 bit
ADC to the Xylo FPGA board and then to PowerSDR via USB 2, I have run in a
few design issues.
The data from the LT2208 is 16 bits wide and is clocked at 100MHz. This data
is fed into the Cyclone FPGA on the Xylo board on the positive edge of the
clock and feeds a CIC decimating filter. The output of the CIC is processed
by the FGPA, in the same manner as the Janus ADC data was, and fed to the FX2
USB2 chip where it makes it way to PowerSDR.
The section I am having a problem with is the design of the CIC filter. I
have access to Matlab and I can design filters using that, convert the design
into Verilog and then load and run that in the Xylo.
I dont quite understand what parameters I should be using to design the CIC
filter. If we want a bandscope bandwidth of +/-96kHz then I need to decimate
the 100MHz ADC data by ~512. So far I have been doing this amount of
decimation in the CIC filter and using Matlab to design the order of the
filter this is usually between 7 and 9 - to reduce aliasing products by
100dB.
Whilst I can implement this in the FPGA the level of spurious signals is
totally unacceptable particularly as one tunes towards 0Hz.
Yesterday I came across a design document for the AD6620 DDC chip
< http://www.analog.com/UploadedFiles/Data_Sheets/180387430AD6620_a.pdf >
Using their design guide indicates that I should be using a second order CIC
filter with a decimation factor of 3 followed by a second, fifth order, CIC
filter also with a decimation factor or 3. Very different values than I have
been using to date!
Does any one have experience in the design of decimating CIC filters or a
reference that explains how to design them in more detail.
73's Phil...VK6APH
More information about the Hpsdr
mailing list