Technical discussions related to Audio Signal Processing (digital effects, acoustics, noise reduction, musical signal processing, etc).
Hi All, I have tried to post a few times, so if this message is redundant, please ignore. I'm a E.E. in senior design, and I have an idea for a project that will involve extremely fast convolution of audio signals. I have found a few methods that I believe will work, and I am interested in hearing your opinion on what flavor of DSP or FPGA would be suitable for this task. Basically, I am designing a standalone device that has to convolve an input audio signal with an impulse response stored in memory, and have very low output latency, as this would be geared towards musicians. That being said, I am looking at the Xilinx Spartan 3A, and I wanted to ask if this would be a good platform to develop on, or if there might be something more suitable for my application. Also, do most of the available development boards come with A/D and D/A conversion, or is that considered an add-on? Maybe I'm not familiar with the terminology, as I'm a newb to DSP, but the only thing I see listed on the Xilinx site is "audio codec included". I have a little under a year to develop this idea, and I think I can learn enough about FPGA programming to make it happen. Anyhow, I would be really interested an grateful to hear any advice you might have, and thanks in advance for reading over my long post!! Jordan Schultz______________________________
Jordan- > I have tried to post a few times, so if this message is redundant, > please ignore. > > I'm a E.E. in senior design, and I have an idea for a project that > will involve extremely fast convolution of audio signals. I have > found a few methods that I believe will work, and I am interested in > hearing your opinion on what flavor of DSP or FPGA would be suitable > for this task. Basically, I am designing a standalone device that > has to convolve an input audio signal with an impulse response > stored in memory, and have very low output latency, as this would be > geared towards musicians. > > That being said, I am looking at the Xilinx Spartan 3A, and I wanted > to ask if this would be a good platform to develop on, or if there > might be something more suitable for my application. Also, do most > of the available development boards come with A/D and D/A > conversion, or is that considered an add-on? Maybe I'm not familiar > with the terminology, as I'm a newb to DSP, but the only thing I see > listed on the Xilinx site is "audio codec included". > > I have a little under a year to develop this idea, and I think I can > learn enough about FPGA programming to make it happen. Anyhow, I > would be really interested an grateful to hear any advice you might > have, and thanks in advance for reading over my long post!! I might suggest you take a 'DSP centric' approach -- find a DSP vendor EVM or "starter kit" or "easy kit" board that includes audio codec I/O and basic, ready-to-use audio signal processing examples. Then find an FPGA coprocessor board that can interface to the DSP board, with a fast / high bandwidth interface between the FPGA and DSP. My thinking is that you don't want to spend time on audio I/O handling issues and you want to write your main program in C. Then the problem becomes focused on using the FPGA to implement very fast convolutions. Also you're probably going to need a lot of memory to store impulse response data and real-time, or near-real time If you go the other way and take an 'FPGA centric' approach, then this will involve System Generator and Simulink (MathWorks). This may be Ok, depending on tools UIC already has and available budget. However in my experience, this takes students on a 'less well traveled' path, and makes it a bit more difficult to get support from peer groups and practicing engineers. One of the reasons for this is that FPGA centric approaches are more widely used in high frequency applications, like software defined radio, than in audio applications, which are mature and have been addressed by DSPs for 20+ years. Here is one example that shows the FPGA board acting as a "daughtercard", connecting to the DSP board: http://www.xilinx.com/publications/xcellonline/xcell_51/xc_pdf/xc_avnet-dsp51.pd f The above link is old (2004); there should be something newer and cheaper, not necessarily offered by Xilinx/Avnet. -Jeff
All, Let me start by saying thank for the great advice!! I am currently researching a method that allows convolution to be done in incremetally large blocks that can be summed together at the output stage. It allows for faster convolution using this method and doing everything using FFT convolutions. I am basing this research on a paper "Efficient Convolution Without Input/Output Delay" by W.G. Gardner from M.I.T - It's actually a bit dated (1994), so I am going to do a lot of further searching to understand the best way to do this. If these types of algorithms already exist, and I can use a cut-and-paste method, mny next idea is to allow the device (effects pedal) to be able to take impulse responses of reverb circuits on amplifiers and store them into memory. That is contingent upon the first part of the idea being realized. I know it's going to be a lot of work, but I am up for a really good learning experience. When my other classes let up a bit, I am going to look further into all of your suggestions, and I really apreciate the quick replies. Thanks! Jordan --- In a...@yahoogroups.com, Jeff Brower <jbrower@...> wrote: > > Jordan- > > > I have tried to post a few times, so if this message is redundant, > > please ignore. > > > > I'm a E.E. in senior design, and I have an idea for a project that > > will involve extremely fast convolution of audio signals. I have > > found a few methods that I believe will work, and I am interested in > > hearing your opinion on what flavor of DSP or FPGA would be suitable > > for this task. Basically, I am designing a standalone device that > > has to convolve an input audio signal with an impulse response > > stored in memory, and have very low output latency, as this would be > > geared towards musicians. > > > > That being said, I am looking at the Xilinx Spartan 3A, and I wanted > > to ask if this would be a good platform to develop on, or if there > > might be something more suitable for my application. Also, do most > > of the available development boards come with A/D and D/A > > conversion, or is that considered an add-on? Maybe I'm not familiar > > with the terminology, as I'm a newb to DSP, but the only thing I see > > listed on the Xilinx site is "audio codec included". > > > > I have a little under a year to develop this idea, and I think I can > > learn enough about FPGA programming to make it happen. Anyhow, I > > would be really interested an grateful to hear any advice you might > > have, and thanks in advance for reading over my long post!! > > I might suggest you take a 'DSP centric' approach -- find a DSP vendor EVM or > "starter kit" or "easy kit" board that includes audio codec I/O and basic, > ready-to-use audio signal processing examples. Then find an FPGA coprocessor board > that can interface to the DSP board, with a fast / high bandwidth interface between > the FPGA and DSP. > > My thinking is that you don't want to spend time on audio I/O handling issues and you > want to write your main program in C. Then the problem becomes focused on using the > FPGA to implement very fast convolutions. Also you're probably going to need a lot > of memory to store impulse response data and real-time, or near- real time > > If you go the other way and take an 'FPGA centric' approach, then this will involve > System Generator and Simulink (MathWorks). This may be Ok, depending on tools UIC > already has and available budget. However in my experience, this takes students on a > 'less well traveled' path, and makes it a bit more difficult to get support from peer > groups and practicing engineers. One of the reasons for this is that FPGA centric > approaches are more widely used in high frequency applications, like software defined > radio, than in audio applications, which are mature and have been addressed by DSPs > for 20+ years. > > Here is one example that shows the FPGA board acting as a "daughtercard", connecting > to the DSP board: > > http://www.xilinx.com/publications/xcellonline/xcell_51/xc_pdf/xc_avn et-dsp51.pdf > > The above link is old (2004); there should be something newer and cheaper, not > necessarily offered by Xilinx/Avnet. > > -Jeff >______________________________
Jordan- > Let me start by saying thank for the great advice!! I am currently > researching a method that allows convolution to be done in > incremetally large blocks that can be summed together at the output > stage. It allows for faster convolution using this method and doing > everything using FFT convolutions. I am basing this research on a > paper "Efficient Convolution Without Input/Output Delay" by W.G. > Gardner from M.I.T - It's actually a bit dated (1994), so I am going > to do a lot of further searching to understand the best way to do > this. If these types of algorithms already exist, and I can use a > cut-and-paste method, mny next idea is to allow the device (effects > pedal) to be able to take impulse responses of reverb circuits on > amplifiers and store them into memory. > > That is contingent upon the first part of the idea being realized. > I know it's going to be a lot of work, but I am up for a really good > learning experience. When my other classes let up a bit, I am going > to look further into all of your suggestions, and I really apreciate > the quick replies. Sounds like you're off and running. About the Gardner paper, that is Bill Gardner who together with Lake DSP have one or more patents relating to partitioned convolution. If you put into Google: Lake DSP Gardner then you'll get a lot of hits and interesting reading. My suggestion would to research this carefully and cite all prior work that you can. As I mentioned below, DSP algorithms have been squarely aimed at audio applications for 25+ years, and lots of methods for faster, more efficient ways to do filtering and frequency domain analysis have been invented. A note on the convolution patents -- if they date from 1994 then they're getting close to expiring. -Jeff > --- In a...@yahoogroups.com, Jeff Brower <jbrower@...> wrote: > > > > Jordan- > > > > > I have tried to post a few times, so if this message is > redundant, > > > please ignore. > > > > > > I'm a E.E. in senior design, and I have an idea for a project > that > > > will involve extremely fast convolution of audio signals. I have > > > found a few methods that I believe will work, and I am > interested in > > > hearing your opinion on what flavor of DSP or FPGA would be > suitable > > > for this task. Basically, I am designing a standalone device > that > > > has to convolve an input audio signal with an impulse response > > > stored in memory, and have very low output latency, as this > would be > > > geared towards musicians. > > > > > > That being said, I am looking at the Xilinx Spartan 3A, and I > wanted > > > to ask if this would be a good platform to develop on, or if > there > > > might be something more suitable for my application. Also, do > most > > > of the available development boards come with A/D and D/A > > > conversion, or is that considered an add-on? Maybe I'm not > familiar > > > with the terminology, as I'm a newb to DSP, but the only thing I > see > > > listed on the Xilinx site is "audio codec included". > > > > > > I have a little under a year to develop this idea, and I think I > can > > > learn enough about FPGA programming to make it happen. Anyhow, I > > > would be really interested an grateful to hear any advice you > might > > > have, and thanks in advance for reading over my long post!! > > > > I might suggest you take a 'DSP centric' approach -- find a DSP > vendor EVM or > > "starter kit" or "easy kit" board that includes audio codec I/O > and basic, > > ready-to-use audio signal processing examples. Then find an FPGA > coprocessor board > > that can interface to the DSP board, with a fast / high bandwidth > interface between > > the FPGA and DSP. > > > > My thinking is that you don't want to spend time on audio I/O > handling issues and you > > want to write your main program in C. Then the problem becomes > focused on using the > > FPGA to implement very fast convolutions. Also you're probably > going to need a lot > > of memory to store impulse response data and real-time, or near- > real time > > > > If you go the other way and take an 'FPGA centric' approach, then > this will involve > > System Generator and Simulink (MathWorks). This may be Ok, > depending on tools UIC > > already has and available budget. However in my experience, this > takes students on a > > 'less well traveled' path, and makes it a bit more difficult to > get support from peer > > groups and practicing engineers. One of the reasons for this is > that FPGA centric > > approaches are more widely used in high frequency applications, > like software defined > > radio, than in audio applications, which are mature and have been > addressed by DSPs > > for 20+ years. > > > > Here is one example that shows the FPGA board acting as > a "daughtercard", connecting > > to the DSP board: > > > > > http://www.xilinx.com/publications/xcellonline/xcell_51/xc_pdf/xc_avn > et-dsp51.pdf > > > > The above link is old (2004); there should be something newer and > cheaper, not > > necessarily offered by Xilinx/Avnet. > > > > -Jeff > > >______________________________