Home > Tracks > DSP & Machine Learning

## Low-Power Algorithmic Approaches in DSP Implementations

Bryant Sorensen - **Watch Now** - Currently watching: 0

Hearing aid signal processing is a challenging task because of the extreme low-power, highly-constrained cycle performance required. The audio signal processing is always on, and requires complex algorithms and computations. A typical hearing aid will have multi-band analysis and synthesis, automatic feedback cancellation, environment detection and action, automatic gain control, and user interface - and AI is arriving as well. In order to reconcile the two disparate requirements (complexity vs. low power & reduced cycles), various approaches are needed to achieve low power while still providing sophisticated calculations. In this talk, I will discuss a sampling of numerical methods, shortcuts, refactorings, and approximations which significantly lower power in DSP algorithms. This will be an overview which I hope sparks thinking to extend the presented concepts to other low-power algorithmic tasks. While the focus is on algorithms and computations, some of these topics will also touch on implications to HW design, HW vs. FW tradeoffs, and ASIP / programmable DSP core design.

**remco_at_itsonlyaudio.com**

**BryantSorensen**Speaker

Thanks for watching. I'm glad there's some crossover

**RichardLyons**

I liked this presentation. It provided a number of interesting ideas that deserve further study.

**BryantSorensen**Speaker

Thank you!

**RichardLyons**

Hi Bryant, I do have a comment. Instead of a photo of James Taylor maybe next time you could use a picture of Elizabeth Taylor. ;-)

**BryantSorensen**Speaker

That would be old school, for sure. But I'm not sure what series Elizabeth had, other than her perfumes...

I considered Taylor Swift too. :)

**Pi**

Excellent presentation! Definitely some practical lessons I can apply directly to my work.

**BryantSorensen**Speaker

Thank you!

**Pi**

I think I came up with a question worth asking.

When developing a system, would you normally use these power-saving approximations from the start, or do you begin with more precise solutions and then substitute as needed when moving towards a final implementation?

**BryantSorensen**Speaker

The standard answer is, "it depends" (of course - how cliche).

There are some things I always use. I generally work with fixed point processors. I have yet to encounter one that had a divide instruction, other than synthetic division (1b per iteration). So I generally use log2 to do my divides as needed, as many processors have either an instruction, an accelerator, or normalization means. Newton-Raphson is my backup.

It's also rare to find a processor with sine, cosine, tangent, arctan, etc. calculation instructions. Some have acceleration, but these can be slow. I generally do these numerically.

For square root, I either work in the log2 domain (divide by 2), or use a Newton-Raphson.

I've used LUTs a lot, generally to kick-start or give a low-precision result. I've used them for log2, inverse, square root.

Single-pole filters - ALL the time.

For reduced-rate processing, we usually see what fits first, then cut it down as needed.

Powers of two - use it for smoothing all the time; other places we see if we can get away with a full multiply. Many times, the multiply is equal in cycles (hopefully 1) to a shift - and on a programmable processor, power is primarily correlated to cycles.

Bit manipulations are as needed.

For filters, FFTs, and the like - we usually start with a more direct approach, then refine them down if needed. Those take time, and most processors already account well for them.

In sum, I would say it's mainly determined by the processor or other resources I have when I start a project. If I have instructions or HW accelerators, I use those first.

**Pi**

Thanks for the very complete answer!

On a somewhat related topic, I'm finding myself at a loss for sources of good time-domain signal processing techniques. FFTs are expensive, and incur a delay penalty based on the transform window that can be just a bit too much for real-time processing.

Do you have any good reference books for time-domain or low-delay DSP algorithms?

**BryantSorensen**Speaker

I don't have a resource, other than my standard DSP textbooks.

You mention FFT, so I assume you're looking for some kind of frequency analysis. You can make IIR filterbanks quite efficient. I would look under "complementary filters", where two all-pass filters can be added and subtracted to produce a phase-aligned high-pass and low-pass pair. The Wave Digital Filter I mention in the presentation can be used for that, but in general an IIR filter can be used. All-pass filters can be quite efficient because of the shared coefficients also.

**Elielder**

Obrigado! Ótima apresentação!

**BryantSorensen**Speaker

Obrigado pra vc!

**Brett**

Thank you for a very informative talk. It reminded me of several techniques I had forgotten about. It was a good balance between moving too fast and too slow since, as you pointed out, we can pause and digest it more or look up the references. Introduced many new things I can wait to look at in more detail later.

**BryantSorensen**Speaker

Thanks!

**hMonsarrat**

Thanks for the presentation!

**BryantSorensen**Speaker

Thank you for watching.

**Alexey**

Simple and stunning

Thank you for your effort

**BryantSorensen**Speaker

Thank you!

**HR**

Lots of informations on the slides, presentation feels quite rushed through

**BryantSorensen**Speaker

Yeah, it felt rushed making it too. Probably tried to cram too much in.

I hope you can download the slides or rewatch the presentation. I was counting on people being able to review at their leisure.

**Norwood**

Thanks, Bryant! Great info to have in my toolbox. Side note: I'm a TN native that went to UT Chattanooga and interned at Arnold AFB. Loved the Space Institute campus. I also lived in the Azores for a stint and thought I recognized some Portuguese at the beginning of your presentation.

**BryantSorensen**Speaker

And TN is beautiful country, yes.

**BryantSorensen**Speaker

Yes, it was Portuguese! I lived in Brazil for 2 years. Thanks for watching.

**jerryo**

There's a typo in slide 19 with the log10 from log2 eqn.

log10(a) = log2(a)/log2(10)

Good presentation, thanks!

**BryantSorensen**Speaker

Good catch, thank you.

**BryantSorensen**Speaker

Good morning to all! I am online for discussion.

Excellent presentation, some tools I already had on my belt, some new ones I've learned.

I would consider 'maximized performance DSP algorithms' or some such as a generalized title, this pertains to many more fields than just low-power. Thanks for the great work.