Filter design by convex iteration
From Wikimization
(Difference between revisions)
Line 63: | Line 63: | ||
\textrm{minimize} &\|\textrm{diag}(G)\|_\infty\\ | \textrm{minimize} &\|\textrm{diag}(G)\|_\infty\\ | ||
\textrm{subject~to} | \textrm{subject~to} | ||
- | & g = \left[ h\mathrm{H}(n) \,\, h\mathrm{H}(n-1) \,\, \ldots \,\, h\mathrm{H}(n-N)\right] &\\ | + | & g^\mathrm{H} = \left[ h^\mathrm{H}(n) \,\, h^\mathrm{H}(n-1) \,\, \ldots \,\, h^\mathrm{H}(n-N)\right] &\\ |
& R(\omega) = r(0)+\!\sum\limits_{n=1}^{N-1}2r(n)\cos(\omega n)\\ | & R(\omega) = r(0)+\!\sum\limits_{n=1}^{N-1}2r(n)\cos(\omega n)\\ | ||
&\frac{1}{\delta_1^2}\leq R(\omega)\leq\delta_1^2 &\omega\in[0,\omega_p]\\ | &\frac{1}{\delta_1^2}\leq R(\omega)\leq\delta_1^2 &\omega\in[0,\omega_p]\\ |
Revision as of 03:47, 24 August 2010
where
denotes impulse response.
For a low pass filter, frequency domain specifications are:
To minimize peak magnitude of , the problem becomes
But this problem statement is nonconvex.
So instead, a new vector
is defined by concatenation of time-shifted versions of .
Then
is a positive semidefinite rank 1 matrix.
Summing along each of subdiagonals gives entries of the autocorrelation function
of
.
In particular, the main diagonal of holds squared entries of
.
Minimizing is therefore equivalent to minimizing
.
Define ...
By spectral factorization, ,
an equivalent problem is:
Excepting the rank constraint, this problem is convex.
N = 32; delta1 = 0.01; delta2 = 0.01; cvx_begin variable h(N,1); variable x(N,1); G = h*h'; minimize(norm(diag(G),inf)); r = xcorr(h); R = fftcc(r); 1/delta1^2 <= R <= delta1^2; %%% range? cvx_end