Hi Alan ons, 26 01 2011 kl. 17:01 -0500, skrev Alan J. Greenberger: > I am requesting registration as an octave developer. My sourceforge username > is ajgreenberger.
I am sorry for the extremely late reply; your mail has been on my Octave-TODO for a while, but that list seems to grow faster than I can handle... > I needed to design a multiband filter, so I looked at the literature > and programmed the Feyh, Franchitti, Mullis [FFM] algorithm in Octave. > I wish to submit this but have some issues: I guess I should know stuff about filter design, but I'm really not an expert... > 1 There is a matlab function iirlp2mb for this described in > http://www.mathworks.com/help/toolbox/filterdesign/ref/iirlp2mb.html > [matl]. It has four forms of invocation: > [Num,Den,AllpassNum,AllpassDen] = iirlp2mb(B,A,Wo,Wt) > [Num,Den,AllpassNum,AllpassDen]=iirlp2mb(B,A,Wo,Wt,Pass) > [G,AllpassNum,AllpassDen] = iirlp2mb(Hd,Wo,Wt) > [G,AllpassNum,AllpassDen] = iirlp2mb(...,Pass) > I have implemented the first two. I don't understand the last two, > which are related to dfilt. I don't think Octave supports dfilt. > Should I call my implementation iirlp2mb or name it something else? If your implementation supports part of the Matlab API than that is better than nothing. I have no issues with your implementation being called the same as the Matlab counterpart as long as you work the same way in the supported cases. > 2 [matl] says, "Wo | Frequency value to be transformed from the > prototype filter". I interpreted this to be the cutoff frequency of > the prototype low pass filter defined by B,A. In the [FFM] algorithm, > the low pass cutoff must be .5 . So if Wo is not "close" to .5, I > perform an initial transformation of the low pass to a low pass with > cutoff of .5 . If I run either > [b, a] = ellip(3, 0.1, 30, 0.409); > [num2, den2] = iirlp2mb(b, a, 0.409, [2 4 6 8]/10, 'pass'); > [num2, den2] = iirlp2mb(b, a, 0.409, [2 4 6 8]/10, 'stop'); > or > [b, a] = ellip(3, 0.1, 30, 0.5); > [num2, den2] = iirlp2mb(b, a, 0.5, [2 4 6 8]/10, 'pass'); > [num2, den2] = iirlp2mb(b, a, 0.5, [2 4 6 8]/10, 'stop'); > I get figures similar to that shown in [matl]. But if I run their example > [b, a] = ellip(3, 0.1, 30, 0.409); > [num2, den2] = iirlp2mb(b, a, 0.5, [2 4 6 8]/10, 'pass'); > [num2, den2] = iirlp2mb(b, a, 0.5, [2 4 6 8]/10, 'stop'); > I get nonsense. Is there someone in this group that has access to a > matlab license and is willing to run some tests of mine against > theirs? I have access to Matlab on the university servers, so I guess I can run some tests if you send me the code to run. Søren ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev _______________________________________________ Octave-dev mailing list Octave-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/octave-dev