On Wed, 23 Jan 2013 11:05:08 +0100
Zlatan Ribic <zlatan@xxxxxxxxxxx
> M. Hartley Jones: "Frequency Shifter for "Howl" Suppression", Wireless World, July 1973. 317-322
> ----- Original Message -----
> From: Siping Tao
> To: AUDITORY@xxxxxxxxxxxxxxx
> Sent: Wednesday, January 23, 2013 9:56 AM
> Subject: Frequency shift to alleviate acoustic feedback
> Dear experts,
> 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.