|
Hi all!
I would like to write the code for a software-based accoustic
echo-canceller, to cancel out the accoustic echo that occurs due to the speech coming out
of the speakers and in to the microphone of my PC. I would like to write this AEC in java. The
application is a VoIP-client. What I wonder is:
1) Is an ordinary PC-CPU(e.g. intel pentium) powerful enough
to handle this?
2) Which filter is best suited for this( e.g. LMS,rls,gradient
adaptive Lattice filter)?
3) Are there any Independent component analysis(BSS)-methods
that are fast enough?
4) What kind of additional components, besides the adaptive
filter, are required for best performance?
I will be happy for all the help I can get on the
subject.
best regards
Kurt
|
|
|
|
Kurt, If you would like I can send you a couple of documents based on some research I was apart of. One is a thesis you can reference and the other is an internal paper we generated which references that thesis in part. These may help answer question two. Let me know if you are interested. regards, Perry Howell Lead Design Engineer Vega Signaling Products Telex Communications, Inc 8601 East Cornhusker Hiway Lincoln NE, 68507-9702 402-465-6621 402-467-4003(fax)
I would like to write the code for a software-based accoustic echo-canceller, to cancel out the accoustic echo that occurs due to the speech coming out of the speakers and in to the microphone of my PC. I would like to write this AEC in java. The application is a VoIP-client. What I wonder is: 1) Is an ordinary PC-CPU(e.g. intel pentium) powerful enough to handle this? 2) Which filter is best suited for this( e.g. LMS,rls,gradient adaptive Lattice filter)? 3) Are there any Independent component analysis(BSS)-methods that are fast enough? 4) What kind of additional components, besides the adaptive filter, are required for best performance? I will be happy for all the help I can get on the subject. best regards Kurt _____________________________________ Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. |
|
Hello
Kurt,
Our firewall has problems at the moment, so this email may not
get through until you've received plenty of better suggestions. :)
The following
is off the top of my head, because it's been a while since I worked on stuff like
this.
1.
Ordinary, modern PC CPUs are *very* powerful in terms of their signal processing
capabilities, and often outperform commercial DSP processors despite these processors'
specialized features. In fact, modern PC CPUs tend to be *several times*
faster, and I'd imagine it's especially on long filters you'll see the speed
difference.
2. It
probably depends on your environment what kind of filter you need. If the speaker doesn't
change position frequently, such as not tending to turn his head fast while speaking, an LMS
filter is probably enough. (In fact, although many echo cancelers rely on the LMS filter,
I dare say they'd have been better off using filters with faster convergence
times.) If you need to have fast convergence times, look for RLS-based
filters, such as the GAL filter you mention below. However, because echo
canceling filters tend to have long impulse responses, a "true" RLS filter is out of the
question because it has O(N squared) complexity. Look for "fast" versions of
RLS filters with O(N) complexity; the GAL belongs to this category.
3. Um,
I don't know.
4.
Off-hand, I think the adaptive filter is all you need for *good* performance, so focus on that
to begin with. If you want *best* performance, you'll probably have to watch very closely
what happens in your particular application so you can tweak it where it happens to be
necessary.
--Ole
|