Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

- Community Forums
- :
- Forums
- :
- Hardware Development
- :
- AI Engine, DSP IP and Tools
- :
- Re: Mixing two DDS signals

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Highlighted

rflaboratory

Visitor

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-22-2020 11:31 AM

331 Views

Registered:
10-08-2019

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

1 Solution

Accepted Solutions

Highlighted

guillaumebres

Scholar

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-24-2020 08:41 AM - edited 09-24-2020 08:46 AM

217 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

Embedded Systems, DSP, cyber

6 Replies

Highlighted
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?

bruce_karaffa

Scholar

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-22-2020 11:48 AM

323 Views

Registered:
06-21-2017

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

drjohnsmith

Teacher

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-22-2020 12:13 PM

318 Views

Registered:
07-09-2009

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

Highlighted

rflaboratory

Visitor

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-23-2020 08:37 AM

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

Highlighted

bruce_karaffa

Scholar

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-23-2020 10:15 AM

260 Views

Registered:
06-21-2017

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

Highlighted

rflaboratory

Visitor

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-23-2020 10:28 AM

255 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
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?

guillaumebres

Scholar

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-24-2020 08:41 AM - edited 09-24-2020 08:46 AM

218 Views

Registered:
03-27-2014

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

Embedded Systems, DSP, cyber