Digital Signal Processing

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Sebouh
    New Member
    • Feb 2007
    • 77

    Digital Signal Processing

    Hi all.

    I've been busy with DSP in the past few days and i'd like to ask you guys some questions about it.

    First of all, let me explain what i did. I built a java program which records sound and stores the samples in an array. All simple. What i want to do now, is analyze this signal and see which frequencies are present in it.

    As i understand, i need to use FFT to transform this signal from time domain to a frequency domain. What i do is i get the samples, pass them to this program, which in turn, gives out imaginary and real values of my signal.

    My question is, what are these values supposed to represent? Are they the power of the signal at certain frequencies? More over, i'm confused about the polarities. I have positive and negative values in my samples, i pass them to this program and it returns positive and negative, real and imaginary values. Am i supposed to take their absolute values at some point?

    Thanks a lot.
  • MarshMallow
    New Member
    • Nov 2007
    • 52

    #2
    Originally posted by Sebouh
    Hi all.
    What i want to do now, is analyze this signal and see which frequencies are present in it.

    As i understand, i need to use FFT to transform this signal from time domain to a frequency domain. What i do is i get the samples, pass them to this program, which in turn, gives out imaginary and real values of my signal.

    My question is, what are these values supposed to represent? Are they the power of the signal at certain frequencies? More over, i'm confused about the polarities. I have positive and negative values in my samples, i pass them to this program and it returns positive and negative, real and imaginary values. Am i supposed to take their absolute values at some point?

    Thanks a lot.
    Let me give you a brief introduction to the frequency domain signal analysis.
    Fuorier transform basically gives you a frequency domain representation of a time domain function .
    Why do we do that?
    Basically the function we want to transform is an input electric signal;most of the times, this signal is a sinusoidal function.
    From the Signal Theory class we know that the response of a linear system to a sinusoidal input(e.g. something like A*cos(omega*t + phi) is itself a sinusoidal function with the same omega but different A and phi;through Fourier analysis we can get information about how A and phi change according to omega;A is the magnitude of the signal;phi is the phase of the signal.
    Going back to Mathematical Analysis class,we know that a complex number of the form a + b*j can be exactly represented in the polar form : A*e^(j*phi)
    do you see them?they are A and phi!
    A= sqrt(a^2+b^2) and phi = atan(b/a) if a >=0; atan(b/a)+3.14 if a <0
    there is a close relation between real & imaginary parts and magnitude & phase.
    I hope you understood what that real and imaginary numbers mean!

    Comment

    • MarshMallow
      New Member
      • Nov 2007
      • 52

      #3
      I posted the same message twice,sorry
      Last edited by MarshMallow; Dec 1 '07, 04:45 PM. Reason: double posting

      Comment

      • Sebouh
        New Member
        • Feb 2007
        • 77

        #4
        Yeh, i now know what they mean. So in my case, i only need to know the magnitudes of the frequencies, right? I don't need the phase to determine which frequencies are present in a signal. So i get A, and as i understand it, the frequency range covered by FFT will be half of the sampling rate, and each A will represent the magnitude of a 'bandwidth' = sampling rate / (N/2), correct?

        Comment

        Working...