DSPRelated.com
Forums

DSP development platfrom

Started by schultzjordan34 February 11, 2009
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.pdf

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..., Jeff Brower 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..., Jeff Brower 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
> >
>