📄 l4n_parameters.m
字号:
function [Hd_hat, Sd_hat, Cd_hat]= L4n_parameters(N, M1, M2, ws, wp, Vr_hat, x1, y1, x2, y2, x3, y3, xs_hat, phin, D)
% compute the parameters for the quadratic constraint for L4n
% Copyright (c) 2006 Yi Chen
syms w0 w1
Hd = zeros(size(Vr_hat'*Vr_hat));
Sd = zeros(length(Vr_hat(1,:)),1);
Cd = 0;
weight = weight_sep(N, M1, M2, wp, ws);
H_ideal = D*(1-diamond(N+1,N+1));
for w0n = -pi:2*pi/N:pi-2*pi/N
for w1n = -pi:2*pi/N:pi-2*pi/N
[Ny, Nx] = meshgrid(1:y1, 1:x1);
V1w = [reshape(2*cos((Nx-Ny-x1/2)*w0n+(Nx+Ny-x1/2-1)*w1n), [x1*y1,1]); zeros(x2*y2+x3*y3, 1)];
[Ny, Nx] = meshgrid(1:y2, 1:x2);
V2w = [zeros(x1*y1, 1); reshape(2*cos((Nx-Ny-x2/2)*w0n+(Nx+Ny-x2/2-1)*w1n), [x2*y2,1]); zeros(x3*y3, 1)];
[Ny, Nx] = meshgrid(1:y3, 1:x3);
V3w = [zeros(x1*y1+x2*y2, 1); reshape(2*cos((Nx-Ny-x3/2)*w0n+(Nx+Ny-x3/2-1)*w1n), [x3*y3,1])];
av = Vr_hat'*V1w;
bs = 1 + xs_hat'*V1w;
cs = 1 + xs_hat'*V2w*V3w'*xs_hat;
dv = Vr_hat'*(V2w*V3w'+V3w*V2w')*xs_hat;
em = Vr_hat'*V2w*V3w'*Vr_hat;
fv = Vr_hat'*V3w;
gs = xs_hat'*V3w;
A_delta = (av*phin'*em*phin + phin'*av*em*phin + phin'*av*em'*phin) + (av*dv' + bs*em + dv*av' + bs*em')*phin + (fv+av*cs+bs*dv);
b_delta = phin'*av*phin'*em*phin + phin'*(av*dv' + bs*em)*phin + phin'*(fv + av*cs + bs*dv) + gs + bs*cs;
b_temp(round((w0n+pi)/(2*pi/N))+1,round((w1n+pi)/(2*pi/N))+1) = b_delta;
const = (2*pi/N)^2*weight(round((w0n+pi)/(2*pi/N))+1,round((w1n+pi)/(2*pi/N))+1);
Hd = Hd + A_delta*A_delta'*const;
Sd = Sd + (A_delta+A_delta)*(b_delta - H_ideal(round((w0n+pi)/(2*pi/N))+1,round((w1n+pi)/(2*pi/N))+1))*const;
Cd = Cd + (b_delta - H_ideal(round((w0n+pi)/(2*pi/N))+1,round((w1n+pi)/(2*pi/N))+1))^2*const;
end
end
[Uhd,Shd,Vhd] = svd(Hd);
Hd_hat = sqrt(Shd)*Uhd';
Sd_hat = 0.5*pinv(Hd_hat')*Sd;
Cd_hat = Cd - Sd_hat'*Sd_hat;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -