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.
>>
>
>

Reply via email to