From: rsparks rsparks@..........

Date: Sat, 21 Jun 2008 08:15:41 -0700

Congratulations on writing your own recording software. Judging from your posted recordings, your software is performing well. Software filters can enhance the recording but certainly are not necessary. They can help dramatically to spot weak local quakes that have a high frequency signature, up to about 10 hz. I frequently see these small quakes "riding" on the much stronger microseims caused by the ocean waves which have a frequency in the 0.2 hz range. A high pass filter reduces the microseims leaving the quake much more visible. On the other hand, a low pass filter can do a lot to reduce the local environmental noise which tends to be high frequency. Too much LP filtering will hide any small local quakes that might occur. I have some code written in C++ but it was written a couple of years ago and it would take some time to tease it into something I could share and would be understandable to you. Briefly, an Infinite impulse response (IIR) filter is one of the easiest to use and implement. If you google "iir filter" you will get a multitude of references, many of which have detailed mathematical explanations. On the other hand, if you simply think of a filter as being an averaging device that takes samples and either finds the long term average (a low pass filter) or the short term difference (a high pass filter), you can make a surprisingly effective software filter very quickly. Use the formula y[n] = c0*x[n] + c1*x[n-1] + c2*y[n-1] (from Press) where y is the filtered value, n or n-1 is the data position where n is the most recent value and n-1 is the first past value, and x is the unfiltered data value. The constants c0, c1, and c2 are simply scaling values. The sum of the three constants should be 1.0 so that the filtered data will have the same magnitude as the unfiltered data. c2 determines the weight of the carryover term and a value of 1.0 gives infinite carry forward. You can play with the value of the constants as you write the software to see the different effects. Simply change the formula to y[n] = c0*x[n] - c1*x[n-1] + c2*y[n-1] to make a high pass filter. The relationship of constants to cutoff frequency is dependent upon the sample rate and is beyond my present knowledge. Roger psn-l-digest-request@.............. wrote: > .------ ------ ------ ------ ------ ------ ------ ------ ------ ------. > | Message 1 | > '------ ------ ------ ------ ------ ------ ------ ------ ------ ------' > Subject: Newbie trying to get started > From: Steinar Midtskogen> Date: Fri, 20 Jun 2008 22:07:01 +0200 > > Hello List, > > I'm in the process of setting up a seismometer. I was considering a > few options for building one based on internet descriptions, until I > found the SEP seismometer which at £315 seemed likely to turn out > cheaper than all parts needed to build one myself: > > http://www.mutr.co.uk/product_info.php?products_id=9047 > > So I got this seismometer and a quick start. I built a box for it, > and I set up a datalogger. For the datalogger I'm using a Linksys > NSLU2 which is running SlugOS Linux. It's a little box with a 266MHz > ARM processor and 32 MB RAM, plenty for the task. It has ethernet and > two USB ports. I've plugged a card reader into one port, to which > I've connected two flash cards which makes up the filesystem > configured as RAID 1 for added reliability, and the other is used to > connect to the seismometer by a serial cable. > > So far, so good. Now I only need to add some software. I've searched > a bit for existing software, but it turns out to be mostly Windows or > DOS applications with no source code provided, which wont run on an > ARM processor. I think that to use a full blown leftover pc running > Windows for the task is both impractical and expensive. I guess I > have to write some code myself. > > I wrote a small program which logs the data from the seismometer. I > currently plot what I get on this web page (using gnuplot): > > http://voksenlia.net/met/seismometer/ > > What's remaining is some processing prior to plotting. I most likely > need to process my data with a lowpass filter. But then I've run into > a problem. I know very little about signal processing, and I don't > know what type of filter I should use for the best results. Existing > software uses filters it seems, but I haven't found any source code > which could help me out. So I turn to this list. > > I have a 16 bit A/D converter sampling at 20 Hz. My seismometer has a > natural period of about 16 seconds. How should I process the data? > > __________________________________________________________ Public Seismic Network Mailing List (PSN-L)