🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.dsp
Article #1066

Creating Samples by stuffing & filtering

#1066
From: Dave Mc Mahan
Date: Tue, 06 Nov 1990 07:34
50 lines
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!mcmahan

Show 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