On Tue, 3 Jan 2006, fons adriaensen wrote:
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].
It depends on how your particular fourier transform stores the elements.
If yes, do you agree that no SINGLE C-array element represents, say
1.5 * Fs / 8 frequency ?
It does not exist. A discrete fourier transform has only integer parts.
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 ?
What do you mean by those? They do not exist in the discrete transform. If
you want to define them, then that transform depends on all of the discrete
transforms.
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.
Sure you can interpolate. but that is not very useful. You could extend the
range (eg doubling it with zeros) and get an interpolation. But that
interpolation is a fourier transform of your signal extrapolated by zeros.
It is NOT the value the transform would have if you had actually recorded
twice as much of the signal.
The output of a DFT is just 'samples in the frequency domain', like the
input is 'samples in the time domain'.
Well, no. it is no. The discrete transform of a finite range of a signal is
not the same as a discrete sample of the transform of a longer span of the
signal. It is NOT just "samples in the frequency 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.
No and No.
Once you have made teh discrete sampling you have lost the original signal.
It is gone. You cannot reconstruct it.
IF you assume that the original signal is frequency limited, then you may
be able to reconstruct it.
--
William G. Unruh | Canadian Institute for| Tel: +1(604)822-3273
Physics&Astronomy | Advanced Research | Fax: +1(604)822-5324
UBC, Vancouver,BC | Program in Cosmology | [EMAIL PROTECTED]
Canada V6T 1Z1 | and Gravity | www.theory.physics.ubc.ca/
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Alsa-user mailing list
Alsa-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user