Post Go back to editing

SSB modulation using ADAU1701

Category: Hardware
Product Number: ADAU1701

Hi to all, I thank in advance whoever can give me an answer.
I am using a demoboard with ADAU1701 (TINYSINE TSA1701) it is a little pretty board and works very well.
Now for my experiments I need to create a signal with a carrier of 40Khz (about) modulated in single side band. As input audio signal I am using a sine signal generator on 1Khz.
After hours spent finally I found this solution, using the Hilber transformate.
The question is that this project works very well, with my R&S spectrum analyzer I can see both sidebands distant of 2Khz from the center carrier (suppressed).
But.. when I use this project adding these blocks on another more complex the output frequency ot the sidebands is not more the same... the lower seems right, the upper is about 10Khz over..
The input signal is the same.. (1Khz) .. I can't understand why the behavior of this circuit changes like this from a project to another... the samplig frequency is the same, the Sigma Studio is the same, the hardware is the same but the result change..

Thanks a lot in advance,
bst
pierluigi

  •      Hello Pierluigi,

         It could be that your larger project has exceeded the instruction limit for the ADAU1701 at the 96K sample rate.  The -1701 executes at 49.152 MIPS whether running at 48K, 96K, or 192K.  At 48K, it can do (49,152,000 / 48000) or 1024 instructions before the next sample comes along.  At the 96K sample rate it can do 512 instructions.  In all cases we need to subtract some 10 instructions for overhead, so you have just over 500 available for your project.

         The last time I looked, the compiler only flags instruction counts above 1024 -- regardless of the project's sample rate.  Thus, your larger project could exceed 500 instructions without warning.  An oversize project causes unpredictable issues.

         Compilers for the newer chips have output windows which report resource usage, but this one doesn't.  Read how to check your instruction count in this thread:

    https://ez.analog.com/dsp/sigmadsp/f/discussions/101228/determining-resource-use-for-the-adau1701

        Your small project shown above uses about 190 instructions.  The Hilbert Transform alone takes 100.  Nearly ten years ago (gasp! see my avatar) I published a spreadsheet listing instruction counts for popular ADAU1701 blocks:

    https://ez.analog.com/dsp/sigmadsp/f/discussions/65644/adau1701-instruction-usage-table

    If your larger project is in fact oversize, we may be able to help you shrink it to fit.  If not, perhaps we can assist you with troubleshooting it.  In either case, it would be helpful to post your project file.

         Best regards,

         Bob

  • Hello Bob, thanks first of all for your quick and exhaustive anwser.
    Unfortunately my worst nightmare came true. I imagined it was something related to computing power...
    I will try to use the new one ADAU1467, the specifications indicate a higher computing power always compatible with sigmastudio, I will have to buy a new demo board, new circuits..
    BTW very interesting and well done your xls document, I will keep it as reference.
    Have a nice day,

    bst rgs,
    pierluigi

  • Hy Bob can I try to use ADAU1467 ? does sigmastudio works in the same way with dsp too?

    thanks in advance,
    bst
    pierluigi

  • Hello pierluigi,

    Yes, SigmaStudio works in the same way with the ADAU1467. There will be some differences due to the different DSP core. The core is 32 bit into and out of the core (the multipliers and accumulators are much wider). The older cores are only 28 bit. So there will be some differences in the fixed point number formats. The AUX ADCs are slightly different. The way ReadBacks are done is slightly different. There are no built in converters so you have to setup the serial ports to communicate with an external codec. I do cover most if not all of this in my YouTube channel. If you have not found it yet I suggest you look it up. Channel Welcome Video!

    The ADAU1467 is a huge leap forward in processing power from the ADAU1701. The 1701 is an awesome part but it is a little limited. Bob has managed to do some amazing things with the 1701. You would be wise to follow him and look up some of his older posts. There is a reason he is designated a Super User!

    Dave T

  • So is the answer to use the ADAU1467? I also wish to build a SSB modulator and demodulator. Any carrier freq fine.  Voce band 300-3600 Hz.  Assume the internal Hilbert is the block to use.? Please advise. AeroS

  • Questions:

    1. What ADAUx part can handle the library Hilbert?

    2. Old posts from 10+ yrs ago suggested the use of a quadrature oscillator.   (multiply incoming voice band audio by sin and cos.) Is this better? Is that available on these ADAUx parts?

    tnx

  •      Hello AeroS,

         Whether to use the ADAU1701 or a more powerful DSP depends upon how complex is your complete project, as well as if you need to use a high sample rate.  I just noticed your asking about the SSB Modulator-Demodulator project file on another thread, so I provided it.

         The easiest way to find if a particular DSP can work a given algorithm is to start a new project and check out its toolbox.  Sometimes the Wiki provides this info, but it didn't for the Hilbert Transform.

         Best regards,

         Bob

  • Hi to all, yesterday I receive from Aliexpress this demo board :)
    It seems well made, they even provided me with the diagram too..

    I've already seen that the simply copy/paste from original project with ADA1701 does not work, I was hoping it would be possible to recover some part of the project. First unclear thing for me is which pins to use for the analog input and output, I will study it a bit..:) For now the first goal is to understand why using the DSP Reaback in my original ADAU1701 block cause hangs in Sigmastudio.. boh.. I wil try to reinstall from scratch on my pc. Thanks again for tour suppor!

    bst,
    pierluigi

  •      Hello Pierlulgi,

         You're on the right track -- studying your ins and outs (ADC, DAC, and MP pins if used) will likely lead to a solution.  Of course, the first place to look is any docs from the board's manufacturer.  The ADAU1701 Data Sheet can help should you need to do some reverse engineering.  You can make simple projects to help sleuth out some info.  For example, a project with just an oscillator feeding the outputs can help you find them, even if the inputs aren't working yet.

         Best regards,

         Bob

  • Dear Bob in the end I preferred to use a pair of ADAU1701,  the 1467 is a great chip but too complicated and it does not have the DACs on board, I should use external ones.. for my project too complicated.. Finally I managed to obtain a perfect modulation on each of the side bands, now I have to find a way to demodulate it. :)  The simple product between carrier and signal is able to reveal the signal but is not suitable for isolating the single side band. Probably in this case I will have to use the Hilbert transform too. I do not know if it has already been done before by someone.. will it work?

    bst rgs,
    pierluigi