João, I found the same code <https://github.com/scipy/scipy/blob/master/scipy/signal/sigtoolsmodule.c#L229-L531> a few days ago, hoping it would give me a good starting point for a Julia implementation. But I understand it at all. A blind port wouldn't be feasible either considering all those GOTOs. So I gave up and decided to take another stab at understudying polyphase decomposition, which isn't going very well either.
Han's, I wouldn't be surprised if no one else is working on it. Here's <http://www.iowahills.com/A7ExampleCodePage.html#Parks%20Algorithm> another reference that may help. Click on the links under Parks McClellan C++ Source Code. On Tuesday, June 17, 2014 6:25:00 AM UTC-6, João Felipe Santos wrote: > > I wanted to do this for DSP.jl as this is used for filter design, but all > opensource implementations I could find to use as a reference just wrapped > the same old piece of Fortran code or a low-level translation of it to C > (this is the case in Scipy). As I am not terribly familiar with the > algorithm's internal workings and had other priorities at the moment, I > ended up never working on it. I think that we could benefit from a nice and > clean Julia rewrite of the algorithm, though. > > -- > João Felipe Santos > > > On Tue, Jun 17, 2014 at 8:13 AM, Hans W Borchers <hwbor...@gmail.com > <javascript:>> wrote: > >> >> *Is there an implementation of the Remez algorithm in Julia,or is someone >> working on this?* >> >> Sometimes it is important to have a (polynomial) *minmax approximation* >> to a curve or function (on a finite interval), i.e., an approximating >> polynomial of a certain maximum degree such that the maximum (absolute) >> error is minimized. >> >> A least-squares approach will not work. For example, given a hundred or >> more discrete points representing the Runge function on [-1, 1], package >> *CurveFit* will generate a polynomial of degree 10 that has a maximum >> distance of about 0.10..., while the true minimax solution will have a >> maximal distance of about 0.06... ! >> >> The Remez algorithm <http://en.wikipedia.org/wiki/Remez_algorithm> >> solves this problem applying an iterative procedure. As Nick Trefethen has >> once said about other implementations of this algorithm: >> >> "One can find a few other computer programs in circulation, but >> overall, it >> seems that there is no widely-used program at present for computing >> best >> approximations" >> >> The most reliable and accurate existing realization nowadays appears to >> be the one available in Trefethen's MATLAB toolbox *chebfun*, operating >> with Chebyshev approximations -- perhaps package *ApproxFun* would be a >> good starting point. >> >> I thought that Julia might be an appropriate scientific computing >> environment to realize an efficient and accurate version of the Remez >> algorithm. I am considering doing it myself, but would prefer if someone >> with a better command of Julia has already done this. >> > >