A few final clarifying questions, inline below:

On Sun, Mar 18, 2018 at 8:35 PM, Maximilian Stiefel <
stiefel.maximil...@online.de> wrote:

> Hi Brad,
>
> > Taking a step back, maybe the mirroring is a product of the method I'm
> > using to interpret the output of the FFT.
>
> I really do not think so, because, as explained below and in the previous
> mail, the  phenomenon, we witness here, results from the physics behind
> signal theory.
>
> As I understand your code, you are calculating the Energy Spectrum Density
> (ESD), because you take the square of the magnitude of the FFT. The ESD
> gives you the energy distribution of the signal over the spectrum.
>
> https://en.wikipedia.org/wiki/Spectral_density#Definition
>
> It is legitimate to design audio signal analysis like that, from my point
> of view. To interpret your results one can say, that the ESD (let's call it
> Psi(w)) has the following properties:
>
> Psi(w) = Psi(-w) (even)
> Psi(w) >= 0
>
> This properties also accord to what I explained in my previous mail. A
> "natural real signal" such as the output from your wave file consists out
> of an odd and even part i.e.
>
> s(t) = se(t) + so(t).
>
> We said, that the even part corresponds to an even real part in the
> frequency domain and the odd part corresponds to an odd imaginary part in
> the frequency domain. However, by taking the square of the FFT's magnitude
> (this is what I saw in your code) you will make the whole spectrum even and
> real e.g.
>
> ( j*sin(x) )^2          =       -sin^2(x)
>      ^                             ^
> odd and imaginary             even and real
>
> Thus, your output corresponds to the underlying physics.
>

> > If we listen to a dial tone recording for example, we can clearly tell
> > that two and only two tones are present. Is FFT able to tell us the same
> > thing (exactly two spikes, at expected frequencies) if given floating
> > point samples rather than complex?  (Tried this using wx gui FFT plot
> > and I don't see mirroring, does the WX GUI FFT suppress the mirroring?)
>
> Yes, the DFT/FFT/"Fourier transform of the signal" is exactly what you
> need. Bin [-512 to -1] are the negative frequencies (which you do not seem
> to be interested in) and bin [0 to 511] are the positive frequencies you
> want evaluate.
>
> The sharpness of the frequency peaks you are expecting has something to do
> with the window you are using. I saw you used a Blackman-Harris window. Try
> playing around a bit with this setscrew if you are not happy with your
> results.
>

Thank you for the suggestion!


>
> Two further comments:
>
> 1) If your application is about loudness as perceived by humans you have
> to introduce a model for the ear as we do not hear linearly.
>

This is a good point that I will keep in mind, although my application of
this work is not intended for comparison with perceived amplitude, it may
be useful to process it that way so I will look into it.


>
> 2) It is impressive how you visualize your ESD on console, but why are you
> not using the mighty QT GUI Time Sink or a python plotting library like
> matplotlib to plot your result? (Played around with it recently
> https://gist.github.com/m3x1m0m/1d524d560ff2f3e0702ca6c5d73bcff1)
>
>
Thank you for the kind suggestion - I haven't explored the QT UI much but I
tried the time sink and found it useful. I went with ascii art initially so
that I could gain an intimate familiarity with the vector sink and its
behavior.


I have to confess I am struggling with the math descriptions provided. If I
may, I would like to ask a few questions simplified into terms that I I
think I can understand the responses to:

- Is it true then that if I have a 100-bin FFT, that each of the "left 50"
equals the negative of its corresponding right-side bin?

- Is there any use for "negative frequencies" if my goal is to simply
measure the ESD for each of the frequency bins?

- If I want to get 48 usable frequency bands, each corresponding to a 0-1k,
1k-2k, 2k-3k, etc do I actually need a 96 bin FFT due to the mirroring?

- Do the negative frequencies correspond to a phase difference compared to
the positive frequencies - in other words if I have two 2600Hz signals that
are out of phase by 180 degrees, would this be reflected in the negative vs
positive bin associated with 2600Hz?

Thanks!
Brad



> Regards,
>
> Max
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to