[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Frequency shift to alleviate acoustic feedback
Acoustic feedback can be removed by several methods: frequency shift, phase shift, notch filter, adaptive cancellation. I tried the simplest method I thought, frqeuency shift. However, it's not easy as I thought. In realtime processing scenario, I need to process every 10ms audio sample without significant delay, so I do the following implementation:
1. sampling rate is 16K, so I have 160 samples every 10ms.
2. do DFT for these 160 samples, the DFT length is 512, pending zeros since I only have 160 samples
3. shift the frequency by one fft coefficient, that is, shift 16000/512=31.25Hz (DC is not shifted)
4. do IDFT
After doing that, I can notice the spectrum is shifted in cool-edit, but with some processing noise (not the artifacts due to frequency shift). I guess this noise is caused by different processing for successive10ms data, I am not sure here. However, I try to use overlap processing in my code, hanning window, 50% overlap, then the processing noise is reduced much. Unfortunately, I found that overlap processing sometimes make the frequency shift useless (e.g. 75% overlap by blackman window), what I mean useless is I cannot notice spectrum shift in cool-edit.
Can anybody help me to understand why overlap processing hurts frequency shift? Or point out the incorrect parts of my implementation.