Announcement

Collapse
No announcement yet.

Responses to Oversampled Signal Question

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Responses to Oversampled Signal Question

    Here are the responses to the posting listed below. Thanks to all of those
    who responded.

    My question involves determining the resampling frequency of a
    > signal that has been oversampled initially. My end goal is to determine
    > the first derivative of this signal with respect to time.
    >
    > I am collecting data and sending control signals from an A/D board at
    > 1000Hz, the rate at which the control signals need to be generated.
    > Unfortunately, the tasks on the board can not be split with respect to
    > event speed and as a result, data is collected at 1000Hz as well.
    >
    > The problem is that for the data I am collecting, a 1000Hz collection
    rate
    > results in an oversampled signal. Giannis Giakas has suggested
    > that the resampling frequency can be found by determining the frequency
    > content of the signal, then finding the frequency where x% of the signal
    > is contained.

    When this is done, the first derivative of the resultant signal will
    > dramatically change when resampled at frequencies corresponding to 99.0,
    > 99.5 and 99.9% of signal content (i.e. 3Hz, 16 Hz and 30 Hz
    respectively).
    >
    > Can anyone:
    > 1] recommend another method of determining the resampling
    > frequency?
    >
    > and/or
    >
    > 2] provide a rationale for why the resampling frequency
    should
    > be taken at a specific percentage of signal content?
    >
    > Thank you in advance. I will publish a summary of any responses.
    >
    > __________________________________________________ __________________
    > Greg Kawchuk D.C., M.Sc.
    > Clinician, University Health Services
    > Ph.D. Candidate, McCaig Centre for Joint Injury and Arthritis Research




    you must filter your acquired signal before you resample it. Since the
    signal
    includes already noise when you resample it this noise is included in your
    new
    signal.
    Vassilios Vardaxis
    ************************************************** ***************

    Woltring dealt with this issue in great detail and was able to take highly
    accurate first and second derivatives after over-sampling displacement
    data.
    Look up his paper on instataneous helical axis of joints and determining
    3d
    location and orientation data (first auther Veldpaus).

    In brief, the method is to resample the data over intervals by calculating
    an
    average value for the interval of oversampled data. This also has a
    smoothing
    effect. As long as your final sampling frequency pays appropriate homage
    to
    the Nyquist frequency of your raw data, you will do just fine. Woltring
    consulted with me on my thesis data before his passing. Woltring was able
    to
    reproduce bang-bang accelerations and excellent representation of the
    accelerations from gravity from displacement data.

    Hope you are doing well.

    Jay Triano
    ************************************************** ***********

    Part of the measurement is noise,This noise is usually white, which means
    it is spread evenly in the frequency domain.
    In the spectrum you should see a distinct increase if
    you look at the graph from the highest frequency down .
    And another kind of interference is a distinct frequency
    Like the power line ( 50 HZ in Europe), it should appear as a big spike.
    You should set your resampling frequency below all of them if possible, or
    if not do it until the effect of white noise decay and uses notch filter
    on
    the power line interference.
    One of the things you must do is filter the signal before resampling
    (usually done by an FIR filter).
    Another idea is just to build a derivative filter.
    The idea is that at high frequency derivative of :
    sin(w*t) is W*sin(w*t) and therefor noise causes error
    (becouse he is the dominant party at higher frequencies.
    The frequency response of a perfect derivative is a straight line going up
    (j*w), you must create a filter that doesn't have a high response in high
    frequencies,
    This the best solution, instead of resampling .

    sin(w*t) is W*sin(w*t) and therefor noise causes error
    (becouse he is the dominant party at higher frequencies.
    The frequency response of a perfect derivative is a straight line going up
    (j*w), you must create a filter that doesn't have a high response in high
    frequencies,
    This the best solution, instead of resampling .

    Ran Ravhon
    Biomed. Dept.
    Technion Israel
    ************************************************** ***************8

    Here's my two cents worth of thoughts and suggestions related to your
    resampling question.

    > My end goal is to determine the first derivative of this signal
    with respect to time.

    > Giannis Giakas has suggested that the resampling frequency can be
    found by determining the frequency content of the signal, then finding
    the frequency where x% of the signal is contained.

    Since I am not familiar with the method of Giakas I will not comment on
    that in particular, but rather give my own "independent" view of
    how you could proceed.

    In taking the derivative of the signal, you amplify the higher frequency
    components of the signal relatively to the lower ones (since what you're
    actually doing is to multiply each signal component's amplitude by its
    own frequency). This means, of course, that the "frequency content" of
    the derivative signal will be different from that of the original signal;
    its power spectrum will be displaced towards the higher frequencies.
    If I am right in interpreting your posting, you state that 99.0% of the
    original signal's power is present at frequencies below 3Hz,
    99.5% is below 16Hz and so on. This, then, will NOT be the case for the
    derivative of the signal; you might have to go to considerably higher
    frequencies to cover the same percentage of the signal power.

    Another matter which you do not mention is Nyquist's sampling theorem,
    which implies that the data acquisition frequency (sampling rate) must be
    AT LEAST twice that of the highest frequency component you want to
    capture.
    Signal components with requencies above half the sampling rate will be
    "aliased";
    they will appear in the digitized signal as having LOWER frequencies.

    Unless I have misinterpreted your posting, here's what I suggest:

    1. Be sure to low-pass filter the original signal so that the A/D board
    "sees" a signal with no/little power at frequencies above 500Hz
    (=1000Hz/2)
    to avoid aliasing.
    2. Take the derivative of the digitized signal, and determine the
    frequency
    where x% of this signal is contained.
    3. Optional step: Numerically low-pass filter the derivative signal to
    remove/
    attenuate the frequency components above the "x% frequency"; this reduces
    the
    aliasing effect induced by the next step, which is to...
    4. re-sample the derivative signal at TWICE the "x% requency" (ref.
    Nyquist)

    Depending on how keen you are to make analog filters, you could also
    differentiate
    the signal _prior_to_sampling_ by means of an analog element like
    h(s) = Ks/(1+Ts)
    to avoid potential problems associated with numerical differentiation. In
    this
    case
    a good ("high"-order) anti-aliasing filter is crucial. The factor 1/(1+Ts)
    serves
    to band-limit the differentiation process, and in fact just adds one to
    the
    order
    of the anti-aliasing filtering. However, this factor should be implemented
    in
    the same

    If you settle for a re-sampling frequency which is an integer fraction of
    the
    original sampling frequency, the re-sampling
    is straightforward; you pick every N'th sample and discard the rest.
    Otherwise you should first decimate the signal in order to artificially
    increase
    the sampling rate to the lowest possible integer multiple of your
    re-sampling
    frequency. This issue is described in several textbooks on digital signal
    processing.
    Ignoring the need for decimation will distort your signal and essentially
    add a

    bunch
    of noise.

    Numerical differentiation is a hard subject - in which I am not an expert
    myself.
    Nevertheless, you're welcome to write back if you want to discuss it.

    I hope some of my thoughts can prove useful, and I am looking forward to
    reading
    your summary.

    Humbly, with the best wishes,
    Oyvind Stavdahl (M.Sc., Ph.D. student)
    Department of Engineering Cybernetics
    NTNU, The Norwegian University of
    Science and Technology Direct line: +47 73 59 43 77
    O. Bragstads plass 8 Switchboard: +47 73 59 43i 76
    N-7034 TRONDHEIM Fax: +47 73 59 43 99
    NORWAY Email: Oyvind.Stavdahl@itk.ntnu.no
    http://www.itk.ntnu.no/ansatte/Stavdahl_Oyvind


    ************************************************** *********8

    to sample a signal you have to follow the shannon theorem, which says
    that your sampling frequency (Fs) must be greater than
    twice the frequency of the measured signal (Fm) (Fs>2*Fm).

    If you do a Fourieranalysis (FFT) of your signal, you will see in the
    frequency-domain the highest frequency components of your signal.
    With this information it is possible to select the resampling
    frequency.

    It would be helpful to compare the signal with different
    sampling frequencies (oversampling in different steps
    Fs=3*Fm,Fs=4*Fm,Fs=5*Fm,...). So you will find the optimized sampling
    frequency.

    I hope this information helps.
    Good luck
    Christian Peham

    ************************************************** *****************8

    Oversampling is not a problem; undersampling produces aliasing, which is
    impossible to adjust for post-facto.

    There is no need to resample in order to compute the first derivative.
    What
    you need to do is to filter your data first in order to smooth out the
    noise
    and then apply a simple three-point differencing scheme (e.g., V1 =
    (X2-X0)/
    (2delT) ). Check out David Winters' 1990 book on Biomechanics for an
    intro
    to this topic. A fairly simple approach is to use a digital filter such
    as
    a Butterworth filter with a cutoff frequency above the frequencies of
    interest in your raw data. You can't pick the frequency corresponding to
    a
    percentage of the energy in the signal because that will depend on how
    noisy
    your signal is. Winters describes an approach based on estimating where
    the
    amount of signal you throw away is equal to the amount of noise you
    accept.
    Woltring has a more theoretically rigorous approach to this question using
    the technique of generalized cross-validation (other names to look up
    include Trujillo and Busby). You can also look up a paper I wrote about
    four years ago (http://www.mech.ubc.
    ca/~ahodgson/Research/Publications/publicat.htm).


    Good luck!

    Tony Hodgson
    UBC Mechanical Engineering

    -------------------------------------------------------------------
    To unsubscribe send UNSUBSCRIBE BIOMCH-L to LISTSERV@nic.surfnet.nl
    For information and archives: http://www.bme.ccf.org/isb/biomch-l
    -------------------------------------------------------------------
Working...
X