Reply by Eric Jacobsen February 1, 20162016-02-01
On Sun, 31 Jan 2016 14:53:36 -0800 (PST), Ken Martin
<ken.w.martin@gmail.com> wrote:

>Quite a few years ago (2004), I developed a Matlab toolbox for designing co= >mplex IIR filters. Recently, I had reason to revisit this toolbox, verified= > it still works, and made a couple of updates so it was compatible with mor= >e recent versions of Matlab (Copyright 1984-2016 Mathworks Inc.) (and fixed= > a bug when fixed poles are adjacent). Surprisingly (to me), it appears to = >me that the equivalent is not readily available (as far as I can tell). I h= >ave therefore pushed the routines to Github. > >They can be downloaded by changing to a desired download directory, and the= >n running >>git clone https://github.com/kwmartin/KM_ComplexFilterToolbox.git > >The routines are being released under an open source GPLv3 license. The rou= >tines 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 old paper describing the routines in a doc directory (it n= >eeds a bit of proof-reading - a to do task). I also included in the doc dir= >ectory 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 ad= >vances in this paper were lost. > >The routines currently only support a single passband, but they do allow fo= >r unequal stop bands, and the frequency of the passband can be anywhere; th= >ere is no requirement for conjugate symmetry as in real filters; for exampl= >e, the filters can be used to generate positive pass filters having only si= >gnal components at a positive frequency (i.e. analytic signals - see my oth= >er paper also included in the doc directory). The routines support both fix= >ed and moveable poles; for example, having a fixed pole at d.c. is useful i= >n wireless front-ends. The routines can also be used to design "real" IIR f= >ilters (that is filters with conjugate symmetry about d.c.) as a special ca= >se when symmetric specifications are given (again, surprisingly to me, I ha= >ve not even found good IIR design toolboxes for real filters; I would have = >thought this would be something pretty well standardised by now - if I just= > missed them, please let me know). > >I've always found signal processing with complex signals (i.e. two channels= > of real signals) an interesting area. If anyone finds any bugs, please get= > back to me; I'll fix them as much as my day-job commitments allows me to f= >ind time. If anyone finds them useful in actual applications, it would be n= >ice to know. >-Ken
Do you know whether it works in Octave? Eric Jacobsen Anchor Hill Communications http://www.anchorhill.com
Reply by January 31, 20162016-01-31
Thanks Ken, this is an important and often overlooked topic!

Bob Adams
Reply by Ken Martin January 31, 20162016-01-31
Quite a few years ago (2004), I developed a Matlab toolbox for designing complex IIR filters. Recently, I had reason to revisit this toolbox, verified it still works, and made a couple of updates so it was compatible with more recent versions of Matlab (Copyright 1984-2016 Mathworks Inc.) (and fixed a bug when fixed poles are adjacent). Surprisingly (to me), 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 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; for example, the filters can be used to generate positive pass filters having only signal components at a positive frequency (i.e. analytic signals - see my other paper also included in the doc directory). The routines support both fixed and moveable poles; for example, having a fixed pole at d.c. is useful in wireless front-ends. The routines can also be used to design "real" IIR filters (that is filters with conjugate symmetry about d.c.) as a special case when symmetric specifications are given (again, surprisingly to me, I have not even found good IIR design toolboxes for real filters; I would have thought this would be something pretty well standardised by now - if I just missed them, please let me know). I've always found signal processing with complex signals (i.e. two channels of real signals) an interesting area. 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 in actual applications, it would be nice to know. -Ken