?? linear_const34.m
字號:
function [Aeq, beq] = linear_const34(A1c, A2c, Np, Nd)
% linear constrains on the first two lifting steps for filter banks with
% more than two lifting steps
% Aeq*[p' u'] = beq
% Copyright (c) 2006 Yi Chen
format short
p_coeff = A1c;
u_coeff = A2c;
% linear constraints
% predict filter
sizep = size(p_coeff);
[cp, bp] = solv_quin(sizep(2)/2, sizep(1)/2, Nd);
% update filter
sizeu = size(u_coeff);
[cu, bu] = solv_quin(sizeu(2)/2, sizeu(1)/2, Np);
% combine them together
cp1 = [cp zeros(length(cp(:,1)),length(cu(1,:)))];
cu1 = [zeros(length(cu(:,1)),length(cp(1,:))) cu];
% linear equality
beq = [-bp; 0.5*bu];
Aeq = [cp1; cu1];
if [size(p_coeff) size(u_coeff)] == [4 4 2 2]
Aeq = [Aeq;
0 0 0 0 1 0 0 0 0 0;
0 0 0 0 0 0 0 1 0 0];
beq = [beq; 0; 0];
end
if [size(p_coeff) size(u_coeff)] == [4 4 4 4]
Aeq = [Aeq;
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1];
beq = [beq; 0; 0; 0; 0];
end
if [size(p_coeff) size(u_coeff)] == [6 6 2 2]
A_temp = zeros(6, 20);
A_temp(1,7) = 1;
A_temp(2,12) = 1;
A_temp(3,13) = 1;
A_temp(4,14) = 1;
A_temp(5,17) = 1;
A_temp(6,18) = 1;
Aeq = [Aeq; A_temp];
beq = [beq; 0; 0; 0; 0; 0; 0];
end
if [size(p_coeff) size(u_coeff)] == [6 6 4 4]
A_temp = zeros(8, 26);
A_temp(1,7) = 1;
A_temp(2,12) = 1;
A_temp(3,13) = 1;
A_temp(4,14) = 1;
A_temp(5,17) = 1;
A_temp(6,18) = 1;
A_temp(7,23) = 1;
A_temp(8,26) = 1;
Aeq = [Aeq; A_temp];
beq = [beq; zeros(8,1)];
end
if [size(p_coeff) size(u_coeff)] == [6 6 6 6]
A_temp = zeros(12, 36);
A_temp(1,7) = 1;
A_temp(2,12) = 1;
A_temp(3,13) = 1;
A_temp(4,14) = 1;
A_temp(5,17) = 1;
A_temp(6,18) = 1;
A_temp(7,7+18) = 1;
A_temp(8,12+18) = 1;
A_temp(9,13+18) = 1;
A_temp(10,14+18) = 1;
A_temp(11,17+18) = 1;
A_temp(12,18+18) = 1;
Aeq = [Aeq; A_temp];
beq = [beq; zeros(12, 1)];
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -