P=[];D=[];B=[];A=[];C=[]; % 初始化 P,D,B,A,C 五个数组
% 给数组C赋值---开始
for row=1:1:8 % 循环 行row = 1,2,3,4,5,6,7,8
for colum=1:1:7 % 循环 列colum = 1,2,3,4,5,6,7
if row==colum % 若 行row==列colum
C(row,colum)=-1; % 数组C 第row行,第colum列 = -1
elseif row==colum+1 % 若 行row==列colum+1
C(row,colum)=1; % 数组C 第row行,第colum列 = 1
else % 否则
C(row,colum)=0; % 数组C 第row行,第colum列 = 0
end % 结束 if
end % 结束 for
end %结束 for
% 给数组C赋值---结束
% 给C赋值后的结果如下:
% C = [ -1 0 0 0 0 0 0
% 1 -1 0 0 0 0 0
% 0 1 -1 0 0 0 0
% 0 0 1 -1 0 0 0
% 0 0 0 1 -1 0 0
% 0 0 0 0 1 -1 0
% 0 0 0 0 0 1 -1
% 0 0 0 0 0 0 1 ]
for w=1000:1000:10000000 % 循环 w = 1000,2000,3000,...,9999000,10000000
c=w; % 赋值 c = w
P=[P c]; % 把 c 的值加入 数组 P 中
s=j*w; % s = j * w ,这里未定义 j
b=19.8e-12*s; % b = 19.8*10^(-12) * s
a=b+1.214286e-9*s; % a = b + 1.214286*10^(-9) * s
% 给数组A赋值---开始
for i=1:7 % 循环 i = 1,2,3,4,5,6,7
for cj=1:7 % 循环 cj = 1,2,3,4,5,6,7 (cj 是一个变量,不是c*j)
if i==cj % 若 i = cj
A(i,cj)=0.041426*s; % 数组A 第i行,第cj列 = 0.041426*s
else % 否则
A(i,cj)=0; % 数组A 第i行,第cj列 = 0
end % 结束 if
end % 结束 for
end % 结束 for
% 给数组A赋值---结束
% 给A赋值后的结果如下:
% A = [ 0.041426*s 0 0 0 0 0 0
% 0 0.041426*s 0 0 0 0 0
% 0 0 0.041426*s 0 0 0 0
% 0 0 0 0.041426*s 0 0 0
% 0 0 0 0 0.041426*s 0 0
% 0 0 0 0 0 0.041426*s 0
% 0 0 0 0 0 0 0.041426*s]
% 给数组B赋值---开始
for ii=1:8 % 循环 ii = 1,2,3,4,5,6,7,8
for jj=1:8 % 循环 jj = 1,2,3,4,5,6,7,8
if ii==jj && ii<2 || ii==jj && ii>7 % 若 (ii==jj 且 ii<2) 或 (ii==jj 且 ii>7)
B(ii,jj)=a; % 数组B 第ii行,第jj列 = a (a在上面定义过 = b+1.214286e-9*s)
else if ii==jj && ii>1 && ii<8 % 若 ii==jj 且 ii>1 且 ii<8
B(ii,jj)=a+b; % 数组B 第ii行,第jj列 = a + b
else if ii+1==jj || ii==jj+1 % 若 ii+1==jj 或 ii==jj+1
B(ii,jj)=-b; % 数组B 第ii行,第jj列 = -b
else % 否组
B(ii,jj)=0; % 数组B 第ii行,第jj列 = 0
end % 结束 if
end % 结束 for
end % 结束 for
% 给数组B赋值---结束
% 给B赋值后的结果如下:
% B = [ a -b 0 0 0 0 0 0
% -b a+b -b 0 0 0 0 0
% 0 -b a+b -b 0 0 0 0
% 0 0 -b a+b -b 0 0 0
% 0 0 0 -b a+b -b 0 0
% 0 0 0 0 -b a+b -b 0
% 0 0 0 0 0 -b a+b -b
% 0 0 0 0 0 0 -b a]
M=C*inv(A)*C'+B; % M = C * A的逆矩阵 * C的复共轭转置 + B
M1=M([2:8],:); % M1 = M 数组 的 第2行到第8行 的所有元素组成的数组
N1=M1(:,1); % N1 = M1 数组第1列的所有元素组成的列向量
N=M1(:,2:8); % N = M1 数组 的 第2列到第8列 的所有元素组成的数组
U=-1*inv(N)*N1; % U = -1 * N的逆矩阵 * N1
H=20*log10(abs((U(7)))); % H = 20 * log10 ( 向量U的第七个元素的 绝对值 )
E=H; % E = H
D=[D,E]; % D = 把 E 加入 数组 D 中
end
semilogx(P,D); % 绘制 以 10 为底的对数函数,向量P 的值为x轴,向量D 的值为y轴
以上代码最终目的为了绘制 以 10 为底的对数函数的图