Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

How many ways to determine signal frequency?

  1. Dec 27, 2011 #1
    Hi,

    Does anyone have idea on how to determine signal frequency?

    I am a first year graduate student in biomedicine and previously studied some general engineering, not really very versed in mathematics. We have lots of data measured from human to analysis, including EEG, heart pulse and others.

    I would like to know what is the appropriate method to determine the frequency of a signal? For example, if you know a person’s heart is beating regularly which a man could count, how to count it with machine?

    Since I just started working in this area, I would like to gather as much information as possible to do a comparison. For example, I heard from people that Discrete Fourier Transform might be used to determine frequency. DFT is of course in the undergraduate curriculum, but how to do that?

    What about wavelet transform? I frequently saw its name associated with image processing, but most of the signals we process, such as EEG, are 1-D rather than 2-D image data. Does wavelet also apply to 1-D data? Can it be used for frequency determination?

    And what about other types of transforms such as discrete cosine transform and Hankel transform? I would very much like to know how many methods already exist there.

    Sincerely wish someone could give a survey on this topic, particularly for 1-D data.



    Tim
     
  2. jcsd
  3. Dec 27, 2011 #2

    berkeman

    User Avatar

    Staff: Mentor

    Welcome to the PF, Tim.

    If the waveform is simple and centered about zero volts, then you can just count the time between zero crossings and do a little math to give you a running frequency number.

    If the waveform is more complicated like an EKG waveform, then you will need to do more processing to distinguish the P-Q-R-S-T parts of the waveform, and do some other processing to calculate the heart rate.

    If your signal has a number of frequency components in it (like an EEG waveform), then yes, a transform method like an FFT is more what you would look at using.

    I did a quick Google search on Biomedical Instrumentation, and got some good hits. You could look through them to find some good books or online sources of information on the typical signal processing that is done on biomedical signals:

    http://www.google.com/search?source...entation&gs_upl=0l0l0l5777lllllllllll0&aqi=g5

    .
     
  4. Dec 27, 2011 #3
    berkeman,

    I just learned that DFT can be used to calculate frequency. The method is simply finding the DFT coefficient with the maximum magnitude (not including the average component), which corresponds to the frequency.

    Among the other transforms listed:
    1. Wavelet
    2. cosine/sine
    3. Hankel
    Do you have any idea of which are applicable?


    Tim
     
  5. Dec 28, 2011 #4
    If you only want to know the pulse rate then I don't believe transforms are the right approach. Use a filter to "simplify" the waveform and then a counter to measure the time between pulses.
    If you want to use more complicated techniques like transforms then have a look at LabVIEW.
     
  6. Dec 28, 2011 #5
    Do you just want to derive the frequency from existing data or do you want to measure the frequency as you are taking the data? If the former, I recommend using the Fast Fourier Transform instead of the Discrete Fourier Transform. The differences are that the FFT is much faster but the data must be in packets of integral powers of 2. If the last packet doesn't work out to and integral power of 2, you can fill the rest of the packet with 0s.

    If you input a large amount of data taken over minutes or longer, the pulse rate may vary somewhat and the result may show the pulse rate smeared over a small range of frequencies. By taking the data in smaller packets and using the FFT, not only will the processing be a lot faster but the frequency representation of each packet will be cleaner.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook