About 12 years ago, I developed a Matlab toolbox for designing complex IIR filters. Recently, I had reason to revisit this toolbox and made a couple of updates so it was compatible with more recent versions of Matlab (and fixed a bug when fixed poles are adjacent). Surprisingly, it appears to me that the equivalent is not readily available (as far as I can tell). I have therefore pushed the routines to Github. They can be downloaded by changing to a desired download directory, and then running
>git clone https://github.com/kwmartin/KM_ComplexFilterToolbox.git
The routines are being released under an open source GPLv3 license. The routines require Matlab's Control Toolbox and Signal Processing Toolbox. I had to add a workaround as Matlab's zpk models don't properly support complex coefficients. There is an example directory to help one get started, and I also included my very old paper describing the routines in a doc directory (it needs a bit of proof-reading - a to do task). I also included in the doc directory a paper written by Martin Snelgrove and others that the routines are based on. This paper was never published and it would be a shame if the advances in this paper were lost. The routines currently only support a single passband, but they do allow for unequal stop bands, and the frequency of the passband can be anywhere; there is no requirement for conjugate symmetry as in real filters. The routines support both fixed and moveable poles; for example, having a fixed pole at d.c. is useful in wireless front-ends. If anyone finds any bugs, please get back to me; I'll fix them as much as my day-job commitments allows me to find time. If anyone finds them useful, it would be nice to know.
-Ken
>git clone https://github.com/kwmartin/KM_ComplexFilterToolbox.git
The routines are being released under an open source GPLv3 license. The routines require Matlab's Control Toolbox and Signal Processing Toolbox. I had to add a workaround as Matlab's zpk models don't properly support complex coefficients. There is an example directory to help one get started, and I also included my very old paper describing the routines in a doc directory (it needs a bit of proof-reading - a to do task). I also included in the doc directory a paper written by Martin Snelgrove and others that the routines are based on. This paper was never published and it would be a shame if the advances in this paper were lost. The routines currently only support a single passband, but they do allow for unequal stop bands, and the frequency of the passband can be anywhere; there is no requirement for conjugate symmetry as in real filters. The routines support both fixed and moveable poles; for example, having a fixed pole at d.c. is useful in wireless front-ends. If anyone finds any bugs, please get back to me; I'll fix them as much as my day-job commitments allows me to find time. If anyone finds them useful, it would be nice to know.
-Ken