Thanks, very useful information.
8 coefficients sounds very realistic. I got optimal results more or less
regularly for a 16-tap FIR, but I think that's where it ends.
An alternative I'll try - not because of real need but curiosity - is some
Round-Robin scheme for iterative reweighted least-squares in a cascade of
filters. The idea is that for small weight changes, each filter should
'attract' the weight at frequencies where the LS solver can improve more
easily than the other stages.
But, whether this works, remains to be seen.

Reply by gretzteam●August 8, 20122012-08-08

>interesting, thanks.
>I might just plug in my existing objective function and give it a go.
>
>How many parameters can it handle, and still give "good" results?
>
>A generic solver would be very convenient if it can optimize a cascade of
>filters.
>But it needs to be better than designing each stage on its own with a
>conventional method and then just running fminsearch to optimize locally.
>But I think what I'm asking is impossible, as the number of parameters

gets

>too large.
>

I have used it for exactly that (quantization for a cascade of multirate
filters), but the number of coefficients was low (<8) since it was based on
the bireciprocal lattice (wave filters). Honestly a long exhaustive search
around the ideal solution worked better.
However I thought it was extremely impressive that even given a random
starting point, DE would find a near optimal solution in about 10 minutes.

Reply by mnentwig●August 6, 20122012-08-06

interesting, thanks.
I might just plug in my existing objective function and give it a go.
How many parameters can it handle, and still give "good" results?
A generic solver would be very convenient if it can optimize a cascade of
filters.
But it needs to be better than designing each stage on its own with a
conventional method and then just running fminsearch to optimize locally.
But I think what I'm asking is impossible, as the number of parameters gets
too large.

Reply by gretzteam●August 6, 20122012-08-06

>On Mar 19, 2:02 am, "steph_tsf" <stephanecnocka...@hotmail.com> wrote:
>> Hello,
>>
>> Can somebody indicate some Matlab code, where IIR filters do get
>> synthezised based on a target magnitude curve and optionally a target
>> phase curve also ?
>>
>> There are interesting publications, like from :
>>
>> - Baicher
>> - Juang-Kong
>> - Kakaboga-Cetinkaya
>>
>> I'd like experiment on that idea using Matlab. Especially comparing the
>> results with the Yule-Walker method and with the FDLS-Bechin method.
>> Any clue welcome.
>
>Also try the search terms "differential evolution",
>a genetic algorithm. There's Matlab code for it on a
>berkeley.edu web site.
>
>

There is a very nice 'generic' Matlab toolbox version of the DE algorithm
on FileExchange. I've used it from time to time and always served me well.
It's trivial to write your own objective function with cost function, so I
find it more flexible than the fiwiz software. It supports quantizing at
the same time, which is nice.
http://www.mathworks.com/matlabcentral/fileexchange/18593-differential-evolution%20
Dave

Reply by mnentwig●August 6, 20122012-08-06

preliminary conclusion from some weekend hacking, if anybody is
interested:
- DE finds global optimum regularly (maybe 9 times out of 10) for a 16 tap
peak-limited FIR within ~1 min of CPU time
- results for a 32-tap filter didn't look to promising, but were meaningful
(local optimum)
- strategy 2 "local-to-best" (see web page and example code) converges
faster than strategy 1 "random" but is more greedy and thus gets easier
stuck in a local optimum.
- Intuition tells me that the problem gets substantially harder for the DE
algorithm with an increasing number of parameters, and results seem to
confirm this.

Reply by mnentwig●August 4, 20122012-08-04

found the answer under the 'practical advice' section:
- change few parameters if they aren't tightly coupled (tends to search
along the axes)
- change more parameters if they are highly inter-dependent. The latter is
probably the case for digital filters, as optimizing tap-by-tap makes no
sense at all.

Reply by mnentwig●August 4, 20122012-08-04

Hello,
I tried the DE method on a 16-tap FIR design problem, and got pretty good
results.
- The 'technical report' explains a crossover algorithm near Fig. 2 (link
on the DE page above): The number of updated parameters is effectively
drawn from a geometrical distribution.
- The Matlab code implements this as option, and uses a binominal
distribution instead for the number of changed parameters.
- So far so good, but the default settings are set in such a way that ALL
parameters are updated.
What would be the motivation behind these methods? I can try and compare,
but maybe there is a good reason to use one or the other.
BTW, I'm using 'strategy 2' (local-to-best), updating all parameters for
now. Population size 100 and weight 0.85 seem to work well.
-markus

Reply by zainab_asudeh●August 1, 20122012-08-01

hello
i need some matlab or c or c++ cod for IIR filter design with DE algoritm, some one can help me.
tank you

On Mar 19, 2:02 am, "steph_tsf" <stephanecnocka...@hotmail.com> wrote:

> Hello,
>
> Can somebody indicate some Matlab code, where IIR filters do get
> synthezised based on a target magnitude curve and optionally a target
> phase curve also ?
>
> There are interesting publications, like from :
>
> - Baicher
> - Juang-Kong
> - Kakaboga-Cetinkaya
>
> I'd like experiment on that idea using Matlab. Especially comparing the
> results with the Yule-Walker method and with the FDLS-Bechin method.
> Any clue welcome.

Also try the search terms "differential evolution",
a genetic algorithm. There's Matlab code for it on a
berkeley.edu web site.
IMHO. YMMV.
--
rhn A.T nicholson d.0.t C-o-M