Article View: comp.dsp
Article #1066Creating Samples by stuffing & filtering
From: Dave Mc Mahan
Date: Tue, 06 Nov 1990 07:34
Date: Tue, 06 Nov 1990 07:34
50 lines
2827 bytes
2827 bytes
The Problem:
I have been given a task of smoothing an ECG (electro-cardiogram) signal that
needs to be sent to a strip chart recorder. Currently, the system outputs
250 samples, although the next generation will provide only 125 samples on
two channels. The goal is to provide two benefits: smoother strip chart
recordings and peak restoration. Current strip chart output shows definate
steps for each sample, especially when viewed at a high paper speed. The
current sampling does not always sample at the exact peak (obviously) and it
is desirable to re-create it. The signal is low pass filtered before sampling
to avoid aliasing. Although it isn't a great rolloff, the low pass filter
starts cutting off about 52 Hz and is 8 dB down at 62 Hz.
What I have done:
To create more samples, I assumed that I could just read in one sample,
duplicate it to the output the desired number of times for the proper
expansion factor (currently, an expansion factor of 4 samples out for each
sample in seems to be about right) and then pass the expanded data through
a digital filter to low pass filter it and smooth the final output. I am
using a 33 tap filter for this. I need to use an FIR filter because I need
to ensure linear phase response (and constant time delay) of all frequencies
in the signal. The final signal does look much better and original peaks
are restored, although I do get a bit of "Gibb's Phenomena" showing up in
areas where there is a very high rate of change in the input signal. I assume
this is due to using such a short FIR filter length and could be made to go
away if I increased the number of taps. The process will eventually have to
run on a 68000 in real time, so the number of taps (and the resulting number
of multiplications per second) is of concern.
My Question:
Does this make sense, or is there a better way? The results I get now look
pretty good, but I was wondering if there is a better or more efficient way
to generate the desired data samples. I plan on using as many tricks as
possible in software to actually implement the filter with minimum math
overhead. I thought about just doing straight line interpolation of the
samples, but then I wouldn't get any peak restoration.
All thoughts or ideas are appreciated.
-dave
--
Dave McMahan mcmahan@netcom.uucp
{apple,amdahl,claris}!netcom!mcmahan
Technical Details
Message-ID:
<16311@netcom.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!attcan!uunet!cs.utexas.edu!wuarchive!emory!att!pacbell.com!tandem!netcom!mcmahanShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!cs.utexas.edu!wuarchive!emory!att!pacbell.com!tandem!netcom!mcmahan From: mcmahan@netcom.UUCP (Dave Mc Mahan) Newsgroups: comp.dsp Subject: Creating Samples by stuffing & filtering Summary: Can I just duplicate and FIR filter? Message-ID: <16311@netcom.UUCP> Date: 6 Nov 90 07:34:56 GMT Organization: Dave McMahan @ NetCom Services Lines: 50