cancel
Showing results for
Show  only  | Search instead for
Did you mean:
Highlighted
Visitor
425 Views
Registered: ‎10-08-2019

## Mixing two DDS signals

HI All,

I have two DDS cores on  my ZYNQ device.

The generated signal are 12 MHz and respectively 100 KHz. The 100 KHz signal modulates the 12 KHz signal.

To achieve this, I am using the multiplier IP from XILINX and it seems that instead of having an modulated 12MHz signal the result is kind of a noise.

The output data width for the DDS is 8 bit ( just for testing purpose) and the result of multiplier is represented by 9 bits ( truncated to 9 bits not 16).

The first question would be if  I should use something different for the modulator ?

The DDS output ( DDS 6.0 core ) is seems to be signed since in my ILS the data ( sinusoid from DDS) is represented correctly by checking RADIX - > Signed Decimal. Do to this I have used the SIGNED multiplier also.

Cristian

1 Solution

Accepted Solutions
Highlighted
Scholar
311 Views
Registered: ‎03-27-2014

The result of the multiplication will be a signal with the sum and difference frequencies of the two input signals.  If you only want only one, i.e. just the sum or just the difference, you need to filter out the other image.  Also, why truncate?  16 bits is not an overly wide data bus.  What does your output look like?

to be more precise, multiplying (mixing) is not modulating.

mixing (multiplying) means sin(x)*sin(y) = sin(x+y) + sin(x-y) generates two components, hence filtering one of them

you are talking about modulating the 12MHz sinewave ('carrier') by a 100kHz sinewave ('modulation'), so the modulation signal operates on one of the three parameters of the carrier, ie., either its amplitude, its frequency, or phase.

Therefore, the modulation signal is actually an input to the carrier signal generator, acting on one of its parameter - and you have to do this in "real time"

gw.
Embedded Systems, DSP, cyber
6 Replies
Highlighted
Scholar
417 Views
Registered: ‎06-21-2017

The result of the multiplication will be a signal with the sum and difference frequencies of the two input signals.  If you only want only one, i.e. just the sum or just the difference, you need to filter out the other image.  Also, why truncate?  16 bits is not an overly wide data bus.  What does your output look like?

Teacher
412 Views
Registered: ‎07-09-2009
Have you proved that just one DDS is working,
try a system with just one DDS, and see if the output is the sine wave you expect, say the 12 MHz.

Highlighted
Visitor
365 Views
Registered: ‎10-08-2019

Ys the DDS is working I see the output in ILA. For DDS0 and DDS1.

The output is then multiplied. And the strange results start to show.

For example the output of DDS0 is 2 and the output of DDS1 is 8.    Mixing  his two numbers results in 110.   I am using the signed inputs for multiplier since the outputs from DDS seems to be signed.

I don't understand the output, could be a problem of representation or something....

Highlighted
Scholar
354 Views
Registered: ‎06-21-2017

Can you show a screenshot of a simulation or ILA result?

Highlighted
Visitor
349 Views
Registered: ‎10-08-2019

Hi Bruce.

Problem solved:

I did not see in the CSV file generated by ILA that the result is on the next line where the imput is presented to the multiplier.

This is due to the fact that we have a delay of 1 system clock between the input of the multiplier and the output. The DDS's shares the common clock with multiplier so it's obvious why the result is delayed.

Thank you for the help.

Cristian

Highlighted
Scholar
312 Views
Registered: ‎03-27-2014

The result of the multiplication will be a signal with the sum and difference frequencies of the two input signals.  If you only want only one, i.e. just the sum or just the difference, you need to filter out the other image.  Also, why truncate?  16 bits is not an overly wide data bus.  What does your output look like?

to be more precise, multiplying (mixing) is not modulating.

mixing (multiplying) means sin(x)*sin(y) = sin(x+y) + sin(x-y) generates two components, hence filtering one of them

you are talking about modulating the 12MHz sinewave ('carrier') by a 100kHz sinewave ('modulation'), so the modulation signal operates on one of the three parameters of the carrier, ie., either its amplitude, its frequency, or phase.

Therefore, the modulation signal is actually an input to the carrier signal generator, acting on one of its parameter - and you have to do this in "real time"

gw.
Embedded Systems, DSP, cyber