cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
184 Views
Registered: ‎09-27-2018

Modulating the adc/dac signal to separate from LO

Hi. Im working with a AD9361 that use I/Q signals in FPGA.Im doing the OSC to separate the signal from the LO, after that i have a filter, then i have again the same OSC to put the signal in the same place of the ADC ( assumed attenuation for multiplying). The OSC is a DDS Compiler IP core from Xilinx. Im doing a Sine/Cosine of 8MHz. The scheme are this:

 

pastedimage1594152820761v1.png

 

So if i want to do frequency translation i need a complex tone and cross multiply with both paths (I/Q). This will shift the spectrum.

How can i do the cross multiply ? Because if i do a normal muliply i got this spectrum (when i inyect a tone):

2043.Sin-t_ED00_tulo

 

I draw an example of what im trying to do. If i use an OSC of 1Mhz and the LO is 419MHz :
www.png

 

 

 

 

 

 

 

 

 

 

 

 

In this case i have just 1 tone. But in real aplication i have several signals close to each other.

 

0 Kudos
1 Reply
Highlighted
Scholar
Scholar
71 Views
Registered: ‎05-21-2015

@francocapraro12,

I can think of a couple of solutions.  Perhaps the most common is to use a CORDIC.  CORDICs are known for being able to rotate vectors around the complex plane without using any multiplies, although there is a scale factor inserted associated with the rotation.  Often this operation is simplified so that the CORDIC just produces a sine and cosine, but the underlying operation is a full complex rotation.  Further, even though they don't use multiplies, they aren't necessarily cheap when it comes to logic.

The next most obvious is to generate a sine and cosine pair and to perform the complex multiply requiring 4 DSPs.  There's also a fun little trick you can use to drop this to 3 DSPs, as used and demonstrated within this FFT.

Dan