Use CVX to design VFD (Variable fractional delay) filter

Uncategorized
Apr 16, 2015
C
%--------------------------------------------------------------------------
clear all
%--------------------------------------------------------------------------
M=20;
N=8;
Nw=32;
Np=10;
%--------------------------------------------------------------------------
for m=1:Nw
    w(1,m)=m/(Nw+1)*pi;
end
for m=1:M+1
    for n=1:Nw
        W(m,n)=exp(-i*(m-1)*w(1,n));
    end
end
%--------------------------------------------------------------------------
for n=1:Np
    p(1,n)=n/(Np+1);
end
for m=1:N+1
    for n=1:Np
        P(m,n)=p(1,n)^(m-1);
    end
end
%--------------------------------------------------------------------------
for m=1:Nw
    for n=1:Np
        Hd(m,n)=exp(-i*w(1,m)*p(1,n));
    end
end 
%--------------------------------------------------------------------------
cvx_begin
    variables h(M+1,N+1) t;
    minimize(t);
    subject to
    for m=1:Nw
        for n=1:Np
            abs(W(:,m)'*h*P(:,n)- Hd(m,n))<=t;
        end
    end
    cvx_end

but the result is meaningless,why?

M

I doubt you’ll find another VFD filter designer here on the forum. Unless you have specific reason to believe that CVX is to blame for the incorrect results—and not your modeling—we’re not going to be able to help you.