ΣSigmaStudio Ask AI Русский Log in

Decimation and Multi-Rate with Sigma Studio?

SigmaDSP & SigmaStudio cbrew Sep 30, 2014 00:00 8 replies Original on forum ↗
Subscribe
cbrew Question
Sep 30, 2014 00:00

My SigmaStudio design includes a stereo decoder and then several other processes. The decoder has to run at least at 96kHz sample rate (best at 192kHz). The problem I'm running into is that I have to use 2x instructions when running at 96kHz, which reduces the max program length to 512 instructions. At its simplest, my design is 750 instructions.

So my question is this: are there any solutions for someone who needs a fast sample rate (96kHz for a small portion of the design), and over 750 instructions?

If I was using a Blackfin I would sample at 192kHz for the stereo decoder, and then decimate to a more reasonable rate of 48kHz for the rest of the design. Can multiple rates be used in the SigmaDSP family? Would it buy me anything? If so, how would one decimate using SigmaStudio?

Thanks,

Carl

Audio Signal Processors

sample rate

stereo

decoder

sigmastudio

SigmaDSP Audio Processors

multirate

SigmaDSP

decimation

adau1701

Show More

jon71 Reply
Oct 1, 2014 00:00

The easiest approach is to use one of the larger chips, but I understand the temptation to stick with -1701. I need so much I/O in my design that I just went with two -1701s.

For a single -1701 solution, I have only done downsampling, but the principle is the same: you use an upsampling filter, then perform your process at the single speed rate using two or four streams that feed each other sequentially within one sample period. This is tricky if your process needs filters though, I would guess you've have to code them manually which would cost you more instructions than you might save.

KJBob Reply
Oct 1, 2014 00:00

Hello cbrew and jon71,

An example of multi-streaming is shown below, where four streams are switched through a single delay to coax an arena-sized echo from a -1701. This makes use of ADI's synchronous multiplexer block, which I suspect was inspired by this earlier post of jon71: https://ez.analog.com/message/71684#71684

This technique is also helpful reusing compute-intensive algorithms such as divide and square root.

BTW -- I had posted this awhile ago but many search attempts could not locate it today. Fortunately I still had the project file.

Best regards,

Bob

7776.6af6189339167d83980b4ab2af516999.jpg
7776.6af6189339167d83980b4ab2af516999.jpg
7776.6af6189339167d83980b4ab2af516999.jpg-620x303.jpg
7776.6af6189339167d83980b4ab2af516999.jpg-620x303.jpg
jon71 Reply
Oct 1, 2014 00:00

Right, Bob, that was the downsampling application. But that's easier because it runs at a fraction of Fs rather than a multiple. Carl wants to run a process at Fs * 2 or * 4, which requires an upsampling process followed by processing the two or four upsamples within a single sample period. This is a frequent DSP application, but tricky within SigmaStudio because the filters are all modules that run at Fs.

ADIApproved Reply
Oct 1, 2014 00:00

HI all:

Please consider using the most recent version of SigmaStudio (~Beta 3.12.2) where we recently introduced the ability to do multirate processing graphically but only on the 1452 family of ICs. Sorry, this is not available (and most likely cannot be made) on the 1701. Also, keep in mind that downsampling and upsampling do not come for free. There is a fair amount of filtering needed to remove aliasing when doing this.

This is a new feature on SigmaStudio so please set your expectations accordingly.

Regards

Miguel

cbrew Reply
Oct 9, 2014 00:00

Thank you for your response. I could probably run my entire design on a 1452 at 96kHz without multi-rate schemes due to the higher core rate. Unfortunately that chip doesn't include ADC's or DAC's. For my low real-estate design my goal of avoiding an extra part (audio Codec) is negated by having to add external ADC's and DAC's. I would love to see see a chip with the higher core rate AND on-chip converters.

cbrew Reply
Oct 9, 2014 00:00

Jon, you are correct. Simply down sampling the signal doesn't change the number of instructions available because all the modules are still running at the fastest Fs rate.

pierich13 Reply
Apr 15, 2015 00:00

Hi MigCha,

could you share please either here or per e-mail a copy of the SigmaStudio Beta 3.12.2? It would be interesting to start exploring the capabilities of the ADAU1452 as a platform for a multi-rate system.

Best Regards,

Piero

wygonski Reply
May 28, 2016 00:00

Trying to ask a follow-up question in this exchange about multirate on the ADAU1701. What I'd like to accomplish is to clock the ADAU1701 on-chip ADC and DAC at a 96k rate and decimate/interpolate by a factor of 2 using the synchronous mux/demux described in Bob's project. Then I'd like to run all the signal processing at a 48kHz rate.

However, it's not clear to me how to do this--is the ADC and DAC sample rate governed by the "Program Instructions" setting? If so, I cannot have both a 96k sample rate and the full 1024 instructions, right? (In case you were wondering, my goal is to use the higher DAC and ADC sample rate to reduce the latency. However, our algorithm uses 694 DSP instructions and therefore is too complex to operate at 96k, and we are for now married to the ADAU1701. I know that's not proper multirate because I am missing the filters, but our product's signal bandwidth is under 5kHz.

If anyone could weigh in on this, it would be appreciated.

Thanks,

John