• 大小: 3KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: Matlab
  • 标签: matlab  史密斯图  

资源简介

电子通信专业的同学应该对这个很熟悉吧。 有源码,有注释

资源截图

代码片段和文件信息

clear
title(‘Smith Chart‘)
hold on;
axis([-1.11.1-1.11.1])
xlabel(‘uthe real component of reflection coefficient‘)
ylabel(‘vthe imaginary component of reflection coefficient‘)
axis square
%以g為控制變數的部分 利用for loop控制各圓(弧)的間隔,讓佈局美觀,也方便使用%
sita=0:pi/50:2*pi;
for g=0:0.05:0.5
    radius=1/(g+1);
    plot(-(radius*cos(sita)+g/(g+1))-radius*sin(sita))
end
for g=0.5:0.1:2
    radius=1/(g+1);
    plot(-(radius*cos(sita)+g/(g+1))-radius*sin(sita))
end
for g=2:0.25:3
    radius=1/(g+1);
    plot(-(radius*cos(sita)+g/(g+1))-radius*sin(sita))
end
for g=3:0.5:4
    radius=1/(g+1);
    plot(-(radius*cos(sita)+g/(g+1))-radius*sin(sita))
end
for g=4:1:5
    radius=1/(g+1);
    plot(-(radius*cos(sita)+g/(g+1))-radius*sin(sita))
end
for g=5:2.5:20
    radius=1/(g+1);
    plot(-(radius*cos(sita)+g/(g+1))-radius*sin(sita))
end
g=50;
radius=1/(g+1);
plot(-(radius*cos(sita)+g/(g+1))-radius*sin(sita))
%以b為控制變數的部分,利用for loop控制各圓(弧)的間隔%
sita=0:pi/100:2*pi;
for b=0.05:0.05:0.5
    radius=1/b;
    plot(-(radius*cos(sita)+1)-(radius*sin(sita)+1/b)‘g‘)
end
for b=0.5:0.1:2
    radius=1/b;
    plot(-(radius*cos(sita)+1)-(radius*sin(sita)+1/b)‘g‘)
end
for b=2:0.25:3
    radius=1/b;
    plot(-(radius*cos(sita)+1)-(radius*sin(sita)+1/b)‘g‘)
end
for b=3:0.5:4
    radius=1/b;
    plot(-(radius*cos(sita)+1)-(radius*sin(sita)+1/b)‘g‘)
end
for b=4:1:5
    radius=1/b;
    plot(-(radius*cos(sita)+1)-(radius*sin(sita)+1/b)‘g‘)
end
for b=5:2.5:20
    radius=1/b;
    plot(-(radius*cos(sita)+1)-(radius*sin(sita)+1/b)‘g‘)
end
for b=-0.05:-0.05:-0.5
    radius=-1/b;
    plot(-(radius*cos(sita)+1)-(radius*sin(sita)+1/b)‘g‘)
end
for b=-0.5:-0.1:-2
    radius=-1/b;
    plot(-(radius*cos(sita)+1)-(radius*sin(sita)+1/b)‘g‘)
end
for b=-2:-0.25:-3
    radius=-1/b;
    plot(-(radius*cos(sita)+1)-(radius*sin(sita)+1/b)‘g‘)
end
for b=-3:-0.5:-4
    radius=-1/b;
    plot(-(radius*cos(sita)+1)-(radius*sin(sita)+1/b)‘g‘)
end
for b=-4:-1:-5
    radius=-1/b;
    plot(-(radius*cos(sita)+1)-(radius*sin(sita)+1/b)‘g‘)
end
for b=-5:-2.5:-20
    radius=-1/b;
    plot(-(radius*cos(sita)+1)-(radius*sin(sita)+1/b)‘g‘)
end
%使用fill function 把圓的外部填充為白色,只顯示 |reflection coefficient| < 1 的部分%
x=-1:0.01:1;
y1=(1-x.^2).^(1/2);
y2=-(1-x.^2).^(1/2);
fill([x1.11.1-1.1-1.1][y101.11.10]‘w‘)
fill([x1.11.1-1.1-1.1][y20-1.1-1.10]‘w‘)
%繪出u軸和v軸%
plot([00][-1.11.1]‘r‘)
plot([-1.11.1][00]‘r‘)
%添加标注%
%Conductance部分之標注%
text(0.8-0.02‘Conductance‘‘FontSize‘8); 
text(0.970.02‘0‘‘FontSize‘8); 
text(0.80.02‘0.1‘‘FontSize‘8); 
text(0.650.02‘0.2‘‘FontSize‘8);
text(0.520.02‘0.3‘‘FontSize‘8);
text(0.410.02‘0.4‘‘FontSize‘8);
text(0.310.02‘0.5‘‘FontSize‘8); 
text(-0.030.02‘1‘‘FontSize‘8); 
text(-0.360.02‘2‘‘FontSize‘8); 
text(-0.530.02‘3‘‘FontSize‘8); 
text(-0.620.02‘4‘‘FontSize‘8); 
text(-0.690.02‘5‘‘FontSize‘8); 
text(-0.930.02‘

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       9151  2008-12-16 17:06  smithchart_impedance.m

     文件       9263  2008-12-16 17:07  smithchart_admittance.m

----------- ---------  ---------- -----  ----

                18414                    2


评论

共有 条评论