DSP Chip for Project - New to DSP - Page 1
Forum section: electronics / projects

author: kbarnette
author_rank: Contributor
timestamp: August 20, 2016, 06:21:08 pm
content: Hi All,I have a buddy who's designed a FIR filter generator in MATLAB that can take pink noise broadcast from a set of speakers and then can generate a corrective frequency response filter (in the form of a WAV file) that he can then use in an audio software package like Ableton or the like to "correct" the audio signal so it sounds amazing out of the speakers.My idea is to get my feet wet in DSP development by taking this PC based corrective system and implementing it in an embedded system. I don't need to generate the filters, just apply them to an incoming stereo signal. The filter is somewhat large (64k taps or the like).I see I can order DSP chips from china for just a few dollars, but the development boards tend to run around $100. For the purpose of experimenting I'm trying to avoid spending that kind of money.I've looked at the Analog Devices ADAU1701 since it seems to be pretty ubiquitous but the development board cost turns me off on it. I do like that the programming seems to be pretty straight forward in their free DSP IDE.My design constraints are as follows:As cheap as possible for a full setup. $100 is to expensive for me at this stage.At least 24-bit ADC and DAC stereo inputs/outputs.Capability to run a large FIR filter (64k-128k taps)Any ideas? I may be completely off in my understanding of how to pursue this so I'm open to paradigm-shifting enlightenment.

author: Kalvin
author_rank: Super Contributor
timestamp: August 20, 2016, 06:29:14 pm
content: Let's see, at 48000 samples/s sample rate and 64000 tap FIR filter you will need to be able to perform 3 072 000 000 MACs per second (3.072 GMACs/s). For the stereo, make it twice that much.

author: Kalvin
author_rank: Super Contributor
timestamp: August 20, 2016, 06:47:56 pm
content: With some clever thinking and multirate processing you should be able to do that with a less demanding hardware.

author: kbarnette
author_rank: Contributor
timestamp: August 20, 2016, 07:32:34 pm
content: Thanks for the response!Less demanding... than the ADAU1701? I'll take a look to see what's available. I assume I will need a dedicated DSP chip for this kind of thing?

author: coppice
author_rank: Super Contributor
timestamp: August 20, 2016, 08:17:21 pm
content: Quote from: kbarnette on August 20, 2016, 07:32:34 pmIf you really want to implement your filter in the direct FIR manner you describe the 50MIPs ADAU1701 is going to be a bit lacking. As Kalvin said, you are looking at a 6GMAC/s problem. I don't know why you would assume the need for a dedicated DSP chip, though. There are inexpensive general purpose processors which now outrun any current DSP chip for everything but power efficiency. This is why the market for DSP chips is becoming more and more niche.

author: onkartmjanger
author_rank: Newbie
timestamp: August 20, 2016, 10:52:23 pm
content: Teensy with a audio adapter

author: exmadscientist
author_rank: Frequent Contributor
timestamp: August 21, 2016, 03:00:34 am
content: For what it's worth, 6 GMAC/s is readily achievable with an FPGA. That will probably trash your budget target, but if it's something that's on your to-learn list anyway, there are worse starter projects you could pick.

author: Marco
author_rank: Super Contributor
timestamp: August 21, 2016, 03:45:51 am
content: You could probably do this on a fast cortex M4, their instruction set is atrocious for DSP ... but you got cycles to burn.It's not like a couple thousand point FFT overlap add filter requires a ton of cycles at audio rates.PS. doing low latency FFT based filtering is a bit annoying, but at least all the patents have run out now (you have to chop the FIR filter up into chunks, generally power of 2, an initial part is standard FIR filtered and the higher chunks FFT filtered).

author: NiHaoMike
author_rank: Super Contributor
timestamp: August 21, 2016, 04:07:58 am
content: 64k delays at 48kHz sample rate is well over a second of response. Are you trying to cancel out echo in a particularly big environment?

author: Marco
author_rank: Super Contributor
timestamp: August 21, 2016, 04:38:48 am
content: IMO the most attractive looking platforms at the moment are Cortex M7, Delfino ... and all the various SBCs. The ADAU1701 is just a little toy DSP sold on the strength of it's visual programming.

author: Marco
author_rank: Super Contributor
timestamp: August 21, 2016, 05:10:49 am
content: ST hassome Cortex M7 FFT numbers.339 us for a 1024 point FFT. So lets say 1 ms for stereo 512 point filter (two channels with one complex FFT, need to zero pad the input because of overlap add). With nlogn scaling (bit optimistic, but it's a first approximation) a 65536 point filter would take ~200ms. Seems fast enough. Even with the STM32F767ZI with 512kb SRAM you might run out of memory though.An ARM SBC definitely seems the easiest approach and if memory serves me there are multiple zero latency convolution libraries out there which would be easy enough to use with Linux.

author: kbarnette
author_rank: Contributor
timestamp: August 22, 2016, 05:31:45 am
content: Thanks everyone. I'll take a look at the non-dsp chip options. I didn't think that was even a possibility. As I mentioned initially, this is my first foray into an embedded dsp system so I have a lot of learning to do, but that's the fun of it.If I currently have an "insanely large" FIR filter running in an audio package like Ableton live, would it be better to pursue doing this in an embedded system (without access to large audio packages) using another method? I figured that would be best, but would a convolution filter in the frequency domain be faster/easier to put together?Thanks for your insights to help an ambitious noob.

author: Howardlong
author_rank: Super Contributor
timestamp: August 22, 2016, 05:51:00 am
content: Quote from: Kalvin on August 20, 2016, 06:47:56 pmThis, or a fast convolution, i.e., take the samples into the frequency domain with an FFT, apply the filter, then reverse the FFT. Note that this is a block conversion. To make it streaming, you will need to window the samples and use an overlap-add or overlap-save to piece together the blocks without discontinuities in the streaming.

author: Marco
author_rank: Super Contributor
timestamp: August 22, 2016, 02:49:56 pm
content: The problem is that most cheap Cortex/DSP dev boards don't have the kind of memory necessary on board. SBC's do.

author: cncjerry
author_rank: Unknown
timestamp: August 23, 2016, 01:27:54 am
content: AD SHARC or Blackfin processor. I bought a Blackfin board a while back for like $100 that had VisualDSP etc with it. I implemented an LMS noise reduction algorithm on it in about 30 minutes that worked pretty well.

author: kbarnette
author_rank: Contributor
timestamp: September 08, 2016, 03:18:17 am
content: Sorry I've been quiet on this. The bag that I haul all of my electronics components/projects in was stolen so I've been set back a bit in my progress. I'm looking at getting ahold of an evaluation board and also did some more digging and I will be chopping up the filter into "chunks" and using a DFT to apply the filter. If I understand correctly this should make my large number of taps more manageable for an embedded system.That said, being completely new to DSP I'm a little overwhelmed by the options. Can anyone recommend a DSP eval board with ADC(s) that can capture 24-bit audio at at least 44khz?

author: kbarnette
author_rank: Contributor
timestamp: September 08, 2016, 03:32:21 am
content: I hope you know how awesome you are.Here's what I found (ADI's website is a little chaotic to browse):http://www.analog.com/en/products/processors-dsp/blackfin/adsp-bf706.html#product-documentationIs this what you were referring to? I had stumbled on that earlier but didn't see anything about the ADCs, so your info was helpful.Regarding the CCES software, I see the following excerpt:QuoteI'm more excited about the one year license instead of just a few months. My question is, is the board useless to me for learning on after that expires? I'm not sure what can be done with the board without the CCES license...

author: kbarnette
author_rank: Contributor
timestamp: September 08, 2016, 03:49:38 am
content: Quote from: blueskull on September 08, 2016, 03:45:00 amPerfect. Perfect, perfect! Thanks for the info! I am a BS/MS EE student so I'll look into getting the free license. I'll go ahead and order the board when budget opens up ($70 to learn something like this is really reasonable) and will open a new thread for implementation questions. Thanks again for everyone's help! I've already learned a lot researching each of the responses so I hope you don't feel like you're