Post Go back to editing

How to eliminate feedback in ADAU1701

Hi everyone,

I am using ADAU1701 for the application Voice Processing. Everything is working fine. But our problem is while speaking via microphone it is fine, but when it is in normal position we are getting whistle kind of sound.

How to eliminate the feedback which is coming from microphone with speakers. Please help to resolve this problem.

I have attached our setup.

Regards

Vishnu

attachments.zip
  • Hello Vishnu,

    With the speaker and the microphone close together this will be a problem. You may be able to improve this by shutting off the microphone when nobody is speaking. A squelch control. I have put together a project that does this in a simple way. It can be done in a way where you have more control of the switching time and detection characteristics but it would be much more complicated. This is a simple approach using the Signal Detect cell.

    The only downside of this cell is that the minimum time you can set it for is 2 seconds. This may be OK for you. The limitation is with the GUI in SigmaStudio and not in the DSP code. If you have a system controller then you can change this time parameter to be as short as you need.

    Once your product mechanical housings are complete and all the cabinet resonances and distance between the microphone and speakers are fixed, then you probably could add a notch filter or two right at the feedback frequencies. There is no point in doing it now since the frequencies will all change.

    So try this simple method and see how it works for you. I arbitrarily chose the threshold. You will need to adjust for your system. Also, make certain you add a DC block at the input of the DSP program. Electret mics and our ADCs all will have some DC offset which can be significant. Enough to trip a low threshold level.

    I think Sri is also working with you. Your post helped a lot since you showed me what the hardware configuration was and what the nature of the problem is.

    Here is a screenshot of the program. I will also attach it to this post.

      Thanks,

    Dave T

    ADAU1701SequelchControlusingSignalDetect.dspproj.zip
  • Hi Dave Thib,

    Thanks for your reply. The program is working fine.

    Yes, Sri is working with me. He is my colleague.

    Here i have attached a link. How can we smooth this kind of signal(Voice). Actually we have to process(smooth) this voice. Please help. Once again thanks for your continues help.

    https://www.youtube.com/watch?v=v55NAjqltEI

  • Hello Vishnu,

    Thanks for the video link. Now I understand better.

    Can you educate me on how these things function?

    It is clear to me that they drive a low frequency tone to excite a sound wave, with harmonics, that the user can manipulate with their mouth and tongue, etc., to produce speech. Is there a microphone that is picking up the sound and amplifying it out of a speaker?

    So the stimulus sound is being sent out of a driver and the microphone is picking it up and amplifying it?
    Is this stimulus being produced inside of the DSP?

    How accurate is the transducer? Does the transducer have a lot of distortion?

    The reason for the questions is that the NLMS filters need to know the stimulus signal to attempt to remove it from the output. If the stimulus signal in the DSP is not very close to the actual signal being heard then it will not be very effective. For instance, if the transducer is a poor quality piezo-electric element that produces a lot of harmonic distortion then the output signal that is driving the transducer is not the same as what it coming out of the transducer. So using the drive signal the DSP is producing will not be an accurate copy of the actual signal. So we would have to be creative.

    Is there a controller in your system that could boot up a DSP?

    Dave T

  • Hello Vishnu,

    I have some ideas. I will contact you directly since it is too much for the forum.

    Dave T