Hello DSP community, Im attempting a band-splitter voice scrambler based on the FFT. I collect 64 samples of voice, take the FFT, shuffle the magnitudes of the frequency bins (i keep the phase intact), then take an inverse FFT and send it out to the speaker. And the cycle repeats. On the other side I do the inverse process. However Im getting a lot of "digital" noise and I am unable to recover my audio properly. Is this because Im not using the overlap-add method, or does that not matter? I fear that I might be getting time-domain aliasing when I process the data in the FFT domain. Any help would be greatly appreciated. --Shafik
Is FFT Overlap-add needed here?
Started by ●November 3, 2004
Reply by ●November 3, 20042004-11-03
Shafik wrote:> Hello DSP community, > > Im attempting a band-splitter voice scrambler based on the FFT. > > I collect 64 samples of voice, take the FFT, shuffle the magnitudes of > the frequency bins (i keep the phase intact), then take an inverse FFT > and send it out to the speaker. And the cycle repeats. > > On the other side I do the inverse process. However Im getting a lot of > "digital" noise and I am unable to recover my audio properly. Is this > because Im not using the overlap-add method,Yes> or does that not matter? I > fear that I might be getting time-domain aliasing when I process the > data in the FFT domain.Same thing. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by ●November 4, 20042004-11-04
If you dont mind me asking: How then, is the FFT used for filtering of images, where the FFT of an image is taken, modified in the frequency domain, then converted back. The same is done with time-domain signals as well. Why is the issue of aliasing not considered then? --Shafik
Reply by ●November 4, 20042004-11-04
"Shafik" <shafik@u.arizona.edu> wrote in message news:1099529183.380535.322790@z14g2000cwz.googlegroups.com...> Hello DSP community, > > Im attempting a band-splitter voice scrambler based on the FFT. > > I collect 64 samples of voice, take the FFT, shuffle the magnitudes of > the frequency bins (i keep the phase intact), then take an inverse FFT > and send it out to the speaker. And the cycle repeats. > > On the other side I do the inverse process. However Im getting a lot of > "digital" noise and I am unable to recover my audio properly. Is this > because Im not using the overlap-add method, or does that not matter? I > fear that I might be getting time-domain aliasing when I process the > data in the FFT domain. > Any help would be greatly appreciated. > --Shafik >Hi Shafik If your timing is exactly right and you have enough precision in your samples and in the arithmetic that you are doing then you should be o.k but only if the FFT periods in your receiver line up exactly with the boundaries that you established in the scrambler and the channel between is effectively noise-free,broadband and linear. Somehow I doubt that thats the case. Best of Luck - Mike
Reply by ●November 4, 20042004-11-04
Shafik wrote:> If you dont mind me asking: > > How then, is the FFT used for filtering of images, where the FFT of an > image is taken, modified in the frequency domain, then converted back. > The same is done with time-domain signals as well. > Why is the issue of aliasing not considered then? > > --ShafikFFT filtering is indirect convolution. Without special attention of some sort, it does circular convolution. Linear convolution is needed. When the signal (image) is treated piecemeal without accounting for circularity, artifacts are generated. Images filtered using FFTs are usually treated as a whole, so artifacts appear only around the edges. They are different from the edge-effect artifacts from linear convolution, but in the same place. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by ●November 5, 20042004-11-05
What you are doing implies the perfect synchronization between the FFT windows on both sides. That is not practical. Use the continious time filterbanks instead. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com Shafik wrote:> Hello DSP community, > > Im attempting a band-splitter voice scrambler based on the FFT. > > I collect 64 samples of voice, take the FFT, shuffle the magnitudes of > the frequency bins (i keep the phase intact), then take an inverse FFT > and send it out to the speaker. And the cycle repeats. > > On the other side I do the inverse process. However Im getting a lot of > "digital" noise and I am unable to recover my audio properly. Is this > because Im not using the overlap-add method, or does that not matter? I > fear that I might be getting time-domain aliasing when I process the > data in the FFT domain. > Any help would be greatly appreciated. > --Shafik >
Reply by ●November 6, 20042004-11-06
Thanks for all the help, I used the OLA method and the noise was reduced significantly. However, I still get a small "spike" on the edges of the time frames. This ends up sounding like a constant "buzzz". I cant figure out why that is happening. Any ideas why? --Shafik
Reply by ●November 6, 20042004-11-06
"Shafik" <shafik@u.arizona.edu> wrote in message news:1099733947.119860.302410@f14g2000cwb.googlegroups.com...> Thanks for all the help, I used the OLA method and the noise was > reduced significantly. However, I still get a small "spike" on the > edges of the time frames. This ends up sounding like a constant > "buzzz". I cant figure out why that is happening. > Any ideas why? > > --Shafik >No
Reply by ●November 6, 20042004-11-06
It sounds like a bug in your code. Have you checked to ensure that your buffers are being managed properly? In article <1099733947.119860.302410@f14g2000cwb.googlegroups.com>, "Shafik" <shafik@u.arizona.edu> wrote:>Thanks for all the help, I used the OLA method and the noise was >reduced significantly. However, I still get a small "spike" on the >edges of the time frames. This ends up sounding like a constant >"buzzz". I cant figure out why that is happening. >Any ideas why? > >--Shafik >