[Date Index]
[Thread Index]
[Author Index]
Re: Re: Sound Spectrogram over time, in 3D, using Fourier?
*To*: mathgroup at smc.vnet.net
*Subject*: [mg95000] Re: [mg94993] Re: Sound Spectrogram over time, in 3D, using Fourier?
*From*: DrMajorBob <btreat1 at austin.rr.com>
*Date*: Fri, 2 Jan 2009 06:54:45 -0500 (EST)
*References*: <gjict6$c7k$1@smc.vnet.net> <200901020130.UAA23871@smc.vnet.net>
*Reply-to*: drmajorbob at longhorns.com
That's an excellent tutorial (to my ears) on DFT. Thanks!
Bobby
On Thu, 01 Jan 2009 19:30:35 -0600, Sjoerd C. de Vries
<sjoerd.c.devries at gmail.com> wrote:
> Hi Justin,
>
> A couple of remarks with respect to your question:
>
> 1. Fourier returns the discrete fourier transform (DFT) of a list of
> numbers. There is no way the Fourier function could know how these
> were sampled. The same list of numbers may be the result of sampling
> at a rate of one sample a day or at 44.1 KHz or whatever. Therefore,
> you cannot interpret the output in terms of frequencies. At least, not
> directly. If you know the duration of your set of samples (T) then a
> number at position s of the output list corresponds to a frequency of
> (s-1)/T Hz.
>
> 2. The value of a Fourier result at position s equals the complex
> conjugated value at position n-s+2 for 1<=s<=n/2, with n the number of
> samples. Look for instance at this:
>
> res = Fourier[Table[Sin[2 \[Pi] 1 t], {t, 0, 1, 1/99}]]
>
> Table[Conjugate[res[[i]]] - res[[Length[res] - i + 2]], {i, 2, Length
> [res]/2}]
>
> The DC term (the average value) of your samples is at position 1. So,
> the result can be expressed as the first n/2 complex numbers, the
> remainder of the output is redundant. Therefore, the highest
> representable frequency is n/2/T (Nyquist frequency). It therefore
> makes no sense to plot the whole range of the output of Fourier[ ].
> Half of it suffices. If Fs is the sample frequency, then n = Fs T and
> the highest representable frequency equals Fs/2.
>
> BTW: note that n/2 complex numbers contain the same amount of
> information as n real numbers, so no information is lost in the
> transformation.
>
> 3. The size of the numbers in the output depends on the choice of the
> normalization term in the fourier transform. Look for
> FourierParameters in the documentation.
>
> 4. The decibel scale is a relative scale in which values are related
> to a given reference level. You have to provide this reference level
> yourself (it will have a dB level of 0). Given a certain ref power
> level P0, the value of a power level P1 in dB is given by 10*Log10[P1/
> P0]. Often, power is related to the amplitude squared so the value of
> P1 in dB will be 20* Log10[A1/A0] when using amplitudes.
>
> 5. As to the 3D plot: should not be too difficult. Collect a number of
> DFTs of some windows in your data set. Add them all to a list and you
> have a 3D set that can be plotted by ListPlot3D.
>
> Cheers -- Sjoerd
>
>
> On Jan 1, 2:28 pm, Justin <carillona... at gmail.com> wrote:
>> I'm rather new to Mathematica, and am attempting to make a 3D plot
>> showin=
> g how the frequency profile of a sound sample changes over time. I've
> impor=
> ted a .5 second audio file:
>>
>> wave = Import["clip.wav","Data"]
>>
>> which returns a list of amplitude values of the wave (The file is
>> sampled=
> at 44.1 kHz, so there are about 22k numbers in the list). I can get a
> n=
> ice 2D plot of the frequency spectrum for the length of the whole clip
> with=
> :
>>
>> ListLinePlot[Take[Abs[Fourier[wave]],650],PlotRange -> {0,2.5}]
>>
>> where 650 is the max frequency shown (in Hz I think?) and 0-2.5 is the
>> in=
> tensity range (I'm not sure what these values mean, but I'd like to see
> it =
> in dB).
>>
>> What I would like to do is plot a 3 second long clip in 3D and show how
>> t=
> he frequency profile changes over those 3 seconds, so x=frequency, y=in=
> tensity, z=time.
>>
>> I understand that my above 2D plot is one fat slice, and that I need to
>> m=
> ake hundreds or thousands of similar slices over the 3 second clip to
> make =
> the 3D plot, I'm just not sure how to do it.
>>
>> Any help would be greatly appreciated, thanks!!!
>>
>> J
>
>
--
DrMajorBob at longhorns.com
Prev by Date:
**Re: Non-deterministic numerical inaccuracies in**
Next by Date:
**Shorthand for MapThread**
Previous by thread:
**Re: Non-deterministic numerical inaccuracies in Mathematica 7**
Next by thread:
**Shorthand for MapThread**
| |