>Are you using floating point calculations? If so, does your embedded
>system have a hardware floating point unit or is it emulating floating
>point instructions in software?
The hardware is emulating floating point, so I was trying to convert the
code to fixed point, but seem to be having some trouble. Is there any
information on implementing biquad cascades in fixed point? I tried it and
seem to be getting horrible quantization errors. Do you know of any
information where I can see a good implementation of a fixed point biquad
implementation?
Thanks
Reply by Erik de Castro Lopo●July 1, 20082008-07-01
baeksan wrote:
> The linux machine can handle around 20-30 biquads with no problem, but the
> embedded system craps out using only 2.
Are you using floating point calculations? If so, does your embedded
system have a hardware floating point unit or is it emulating floating
point instructions in software?
Erik
--
-----------------------------------------------------------------
Erik de Castro Lopo
-----------------------------------------------------------------
"C++ is like jamming a helicopter inside a Miata and expecting
some sort of improvement." -- Drew Olbrich
Reply by baeksan●July 1, 20082008-07-01
I was wondering what the most computationally efficient way of implementing
a biquad cascade would be? I've implemented an alsa application to
generate the filter coefficients and process some audio. This works great
on my linux machine, but when I put the same code on a less powerful
embedded system, it sounds horrible and takes almost all the cpu.
The linux machine can handle around 20-30 biquads with no problem, but the
embedded system craps out using only 2.
Is there something I am doing wrong with the cascade? I basically have a
for loop which processes the audio buffer a certain number of times,
depending on how many biquads are used. Is there some way to process the
audio in parallel to save some processing time?
Thanks in advance