david@mplvax.nosc.MIL (David Almagor) (11/09/88)
Hi there all you hardware gurus, I need to design a variable bandwidth low pass filter, whose programmed pass band will span 10kHz to 1MHz. The field is open for analog, digital, or any other form of implementation. The input's dynamic range is about 40dB, and the filter should have the properties of a 6 pole Butterworth. Budget should be kept at a min. Any ideas out there? Thanks in advance, David. -- David Almagor | Phone 619-534-1813 | The Marine Physical lab| or: 619-442-3451 ext. 3173 | UCSD, San Diego, | |david@mplvax.ucsd.edu Ca 92152 | |
gmg@hcx.uucp (Greg M. Garner) (11/10/88)
In article <787@mplvax.nosc.MIL>, david@mplvax.nosc.MIL (David Almagor) writes: > > I need to design a variable bandwidth low pass filter, whose > programmed pass band will span 10kHz to 1MHz. The field is > open for analog, digital, or any other form of implementation. > The input's dynamic range is about 40dB, and the filter should > have the properties of a 6 pole Butterworth. Budget should > be kept at a min. Any ideas out there? How about using a digital filter. You can take the s equation of a analog 6 pole butterworth filter, and then transform it to digital form by replacing all the s factors with this: s= 2 * [1-Z^(-1)] ------------- T * [1+Z^(-1)] T is usually set to 1, as it cancels out later in the calculations. The steps for doing this transformation are fairly clearly presented in the book "Fundamentals of Digital Signal Processing" by Lonni C. Ludeman. The book is published by Harper & Row, Publishers, Inc. (c) 1986. They describe in chapter 3 how to design analog butterworth filters, and then in chapter 4 they go into how to use the bilinear transform to change the s equations into Z equations. The Z equations are simply delay elements, so if you have a Z^(-1) it is a sample that is one time unit old, and Z^(-2) is two time units old. They show in the book how to design the digital filters when you have a known cutoff frequency, but I messed around a bit with their equations to come up with with a form that had a variable cutoff. The math involved got pretty harry for a simple first order lowpass filter, but I ended up with a lowpass digital filter that I could run a picture through, and then I could adjust the cutoff value and see what the effect was. Here is the portion of C code that did the actual filter, note that I passed the cutoff frequency to this subroutine as a double. The value passed in f represents the digital cutoff frequency in radians, I think. redraw(fp,f) FILE *fp; double f; { double ran(); double y,y1,x,x1; long j,k; int cc; for (j=1; j<=128; j++) { x1=0; y1=0; for (k=1; k<=128; k++) { fscanf(fp,"%d",&cc); /* Read in picture data here. */ x=cc; /* Here is the actual butterworth lowpass filter. */ /* Note how it uses memory and the current input value. */ y=(f*x+f*x1+(2-f)*y1)/(2+f); y1=y; x1=x; /* Save the current values of x and y for the */ cc=y; /* Memory so they will contribute to filter next time. */ if (cc>255) cc=255; if (cc<0) cc=0; cc=cc/16+16; /* My machine only has 16 gray levels (Amiga). */ SetAPen(rp,cc); WritePixel(rp,k,j); } } } It took me some time to wade through all this, but it is possible. the only problem may be that you need to run this filter in realtime, and you are going to have trouble finding something that will execute the floating point multiplies and divides fast enough to keep up. maybe a floating point DSP chip could do it. Note that the math to implement the 6th order butterworth will probably take you about 1 day to get all worked out, so send me the results if you do it! > > Thanks in advance, David. > Your Welcome! Greg Garner gmg@hcx.uucp path: ...!uunet!harris.cis.ksu.edu!hcx!gmg 501-442-4847
bill@videovax.Tek.COM (William K. McFadden) (11/12/88)
In article <787@mplvax.nosc.MIL> david@mplvax.nosc.MIL (David Almagor) writes: >I need to design a variable bandwidth low pass filter, whose >programmed pass band will span 10kHz to 1MHz. >The input's dynamic range is about 40dB, and the filter should >have the properties of a 6 pole Butterworth. Budget should >be kept at a min. Any ideas out there? Sounds like a switched-capacitor filter would work. The filter's cutoff frequency is proportional to the input clock frequency. Monolithic devices are available from National Semiconductor, Linear Technology, Maxim, and others. Unfortunately, none of them will work up to 1 MHz. The closest I know of is the new MAX260 series from Maxim. Some devices in this family offer cutoff frequencies up to 140 KHz. Switched capacitor technology makes it possible to implement highpass, lowpass, bandpass, and notch functions simultaneously. However, achieving a 1 MHz response will probably require a discrete design (I don't know if this is feasible). In any case, check out the data sheets and app. notes from the manufacturers listed above. It should be educational and useful information. The only other alternative I know of is a voltage controlled filter (VCF). Again, I don't know how feasible a 1 MHz passband would be. Good luck! -- Bill McFadden Tektronix, Inc. P.O. Box 500 MS 58-639 Beaverton, OR 97077 UUCP: bill@videovax.Tek.COM, {hplabs,uw-beaver,decvax}!tektronix!videovax!bill GTE: (503) 627-6920 Funniest new cartoon title: Teenage Mutant Ninja Turtles