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

Mixing two DDS signals

Jump to solution

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.

 

Thank you in advance,

Cristian

 

 

 

 

 

 

 

 

0 Kudos
Reply
1 Solution

Accepted Solutions
Highlighted
306 Views
Registered: ‎03-27-2014

@bruce_karaffa@rflaboratory 

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

View solution in original post

6 Replies
Highlighted
412 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?

0 Kudos
Reply
Highlighted
Teacher
Teacher
407 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.

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Reply
Visitor
Visitor
360 Views
Registered: ‎10-08-2019

First, thank you for your answer.

 

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....

 

 

0 Kudos
Reply
Highlighted
349 Views
Registered: ‎06-21-2017

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

0 Kudos
Reply
Highlighted
Visitor
Visitor
344 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
307 Views
Registered: ‎03-27-2014

@bruce_karaffa@rflaboratory 

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

View solution in original post