|
From: | Quentin Spencer |
Subject: | Suggestion |
Date: | Fri, 05 Nov 2004 10:47:16 +0000 |
User-agent: | Mozilla Thunderbird 0.9 (X11/20041103) |
In MATLAB 7, the filter design function remez has been deprecated in favor of a function called "firpm" (the letters PM meaning Parks-McLellan). In addition, a new filter function has been added called "firls", which uses a least-squares design approach. The functions firpm and firls use similar calling conventions to the old remez function. I think it would make sense to eventually move "remez" to "firpm", with perhaps a remez.m script that calls firpm (this is what appears to happen in MATLAB 7).
I have found the firls function to be quite useful, for reasons described below. Writing the code for the firls function could be a bit of a project. I have found a pretty decent description of how it works at http://cnx.rice.edu/content/m10577/latest/ . It appears to me that unlike the Parks-McLellan algorithm, this approach is non-iterative, so I think it could be reasonable fast written as an m file.
While these filters do not satisfy the equiripple constraint of the Parks-McLellan approach, there are situations in which they can be desirable. One case is where the specifications make it difficult for the Parks-McLellan algorithm to converge. In my experience least squares filters tend to achieve a better average stop band attenuation for the same filter length than their equiripple Parks-McLellan counterparts, which makes them desirable in situations where exactly meeting a certain ripple level is not critical.
regards, Quentin
[Prev in Thread] | Current Thread | [Next in Thread] |