开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

Re: Some questions on digital filter design


 

Thanks to Jeff Anderson's kindness I have now created my first non-minimum phase causal filter. The emphasis on minimum phase is such a dominant part of DSP in the geophysics community that I was *very* confused to find almost no mention of it at all in the EE DSP literature. John H. Karl is a professor of Physics and Astronomy. His graphic showing the division of causal filters into minimum and non-minimum phase branches combined with Jeff's patient persistence resolved my confusion.

The filter example is centered on 12 kHz with 1 Hz frequency bins and 24 kHz Nyquist. Time domain is 48 kSa/s. The prototype skirts are the same width as the pass band and have a sine taper. I then truncated the central part of the time domain response which produced the sinc side lobes in the frequency domain. Log scale is amplitude so 20*log(abs) rather than the 10*log(abs) for power.

I used Octave on Debian 10 for the examples simply because I didn't want to go hunting for an FFT of which I have so many from which to choose on my Solaris 10_u8 research system. It is much too old to connect to the Internet. I've also not done any serious software development in nearly 10 years and am a Sun Forte diehard. Best debugger ever. The only one that will let you evaluate a long FORTRAN expression on the debugger command line. I use mixed C89 and FORTRAN 77 and switch languages whenever it is more convenient to use the other language. This provides absolute control of variable scope and memory allocation as well as access to a vast library of very thoroughly tested dusty deck numerical codes, e.g. SLATEC, etc. So I always know exactly what the computer is doing. None of the infinitely many layers of obfuscation inherent in C++ and modern FORTRAN. Also much more economical use of core. That really matters when your data arrays run into many GB and the input data is many TB. I no longer do that, but having had to work my way down through layer upon layer of C++ classes I prefer simplicity and economical use of resources.

Have Fun!
Reg

Join [email protected] to automatically receive all group messages.