Re: [Alsa-user] multichannel multiband FFT-based equalizer - README
Brought to you by:
perex
|
From: fons a. <fon...@sk...> - 2006-01-03 00:19:38
|
On Tue, Jan 03, 2006 at 01:22:56AM +0200, Sergei Steshenko wrote: > - do you agree that if, say, I have an 8 point FFTW, the following > frequencies are represented in the FFTW output array C (the result of time -> > frequency conversion, i.e. direct FFT): > > C[0] <=> DC (only real part) > C[1], C[7] <=> 1 * Fs / 8; > C[2], C[6] <=> 2 * Fs / 8; > C[3], C[5] <=> 3 * Fs / 8; > C[4] <=> 4 * Fs / 8; Nyquist frequency (only imaginary part) Yes, except that it's the cosine (real) part of Fs/2, that is in C[4]. > If yes, do you agree that no SINGLE C-array element represents, say > 1.5 * Fs / 8 frequency ? Yes. > If yes, do you agree that changing simultaneously gain of > C[1], C[7] and C[2], C[6] pairs. i.e of the pairs that represent > (1 * Fs / 8) and (2 * Fs / 8) pairs I will not only change gain > of (1.5 * Fs / 8) frequency, but also of the whole > 1 * Fs / 8) .. (2 * Fs / 8) frequency range ? Yes. This is no different from changing only one value - it represents more than just the exact central frequency (you'd have a very bad equaliser otherwise !). The minimum bandwidth you can make is Fs/N, and a bit more with windowing. You may have some difficulty in believing that a 'non-integer' band could have the same bandwidth as an 'integer' one, but it *is* possible, and even quite straightforward. Look at it like this: there is no essential difference between the time and the frequency domains, they are 'duals'. Just as you can delay a sampled signal by half (or any fraction of) a sample by interpolation and without impairing bandwidth (i.e. resolution in the time domain), you can interpolate in the frequency domain without impairing resolution. The output of a DFT is just 'samples in the frequency domain', like the input is 'samples in the time domain'. Or one more variation: you say "no SINGLE C-array element represents, say 1.5 * Fs / 8 frequency", and that is correct. In the same way, in a sampled signal, no single sample represents the value of the original analog signal halfway between samples i and i+1. It is represented by all surrounding samples, with sin(x)/x weighting. And it can be reconstructed. The same is true in the frequency domain. -- FA |