电压驻波比,英文称为 voltage standing wave ratio,简称VSWR,是射频领域中一个非常重要的概念。
随便拿一个射频器件来,其中肯定有一个驻波比的指标。
那为什么有驻波比这个指标呢?
当一个入射波,进入传输线进行传输时,如果传输线的负载阻抗不与传输线的特征阻抗不匹配,就会产生反射波。
入射波和反射波是行波,波随着时间的增长,向传输线的一端移动。
但是入射波和反射波叠加,会在传输线上形成驻波,驻波随着时间的增长,驻波无法行进,所以无法传输能量。
由传输线的电报方程,可以知道,传输线上的电压和电流表达式为:
因为在z=0处的反射系数为:
所以:
V(z)对应的幅度随时间的变化,就是传输线上的驻波随时间的变化。
而电压驻波比,即是Vmax和Vmin的比值。
负载阻抗为短路
当负载阻抗为短路时,ZL=0,终端反射系数为-1,电路中的驻波是这样的。此时驻波比为无穷大。
负载阻抗为开路
当负载阻抗为开路时,ZL=∞,终端反射系数为1,电路中的驻波是这样的。此时驻波比还是无穷大。
负载阻抗等于特征阻抗
当负载阻抗为特征阻抗时,ZL=50 ohm,终端反射系数为0,电路中的驻波是这样的。此时驻波比为1。
负载阻抗稍稍不匹配
当负载阻抗稍稍不匹配时,比如ZL=60ohm,电路中的驻波比是这样的。
所以,使用驻波比这个指标,是因为它反应了传输线上波的反射情况。
除了驻波比之外,还有一个和它等价的指标,那就是回波损耗。
回波损耗的定义为反射系数的log值:
也就是说,回波损耗是入射波功率与反射波功率的dB差值。
比如说,入射波的功率为50dBm,反射波的功率为10dBm,那么回波损耗就是40dB。
因为有回波损耗,所以在传输过程中,则会有由于该回波损耗产生的失配损耗(Mismatch loss)。
而失配损耗的定义为:
所以,反射系数,SWR,回波损耗,以及失配损耗有一一对应的关系。
常规情况下,会看到驻波比的指标<2,即对应的回波损耗为10dB左右,失配损耗为0.46dB左右。
附上matlab代码:
clc;
clear all;
close all;
omega=2*pi;%设置角频率
t=0;%设置时间变量初始值
z=-30:0.01:0;%传输距离
k=1;%波数
Z0=50;
V0_pos=1;
Zload=0;%0--short;10000-open;50--matched;60-a few unmatched
V0_neg=(Zload-Z0)/(Zload+Z0)*V0_pos;
v=VideoWriter('行波形成.avi');
v.FrameRate=10;
open(v);
for i=1:100
y1=V0_pos*cos(omega*t-k*z);
y2=V0_neg*cos(omega*t+k*z);
y=y1+y2;
figure(1);
p=plot(z,y1,'b',z,y2,'g');%
lgd=legend('入射波','反射波');%
p(1).LineWidth=2;
p(2).LineWidth=2;
lgd.FontSize=16;
axis([-30 0 -3 3]);
mov(i)=getframe(gcf);%捕捉当前图像作为一帧
writeVideo(v,mov(i));
pause(0.05);
t=t+0.05;
end;
close(v);
Zload=0;%0--short;10000-open;50--matched;60-a few unmatched
V0_neg=(Zload-Z0)/(Zload+Z0)*V0_pos;
v=VideoWriter('负载短路.avi');
v.FrameRate=10;
open(v);
for i=1:100
y1=V0_pos*cos(omega*t-k*z);
y2=V0_neg*cos(omega*t+k*z);
y=y1+y2;
figure(2);
p=plot(z,y1,'b',z,y2,'g',z,y,'r');%
lgd=legend('入射波','反射波','驻波');%
p(1).LineWidth=2;
p(2).LineWidth=2;
p(3).LineWidth=2;
lgd.FontSize=16;
axis([-30 0 -3 3]);
mov(i)=getframe(gcf);%捕捉当前图像作为一帧
writeVideo(v,mov(i));
pause(0.05);
t=t+0.05;
end;
close(v);
Zload=10000;%0--short;10000-open;50--matched;60-a few unmatched
V0_neg=(Zload-Z0)/(Zload+Z0)*V0_pos;
v=VideoWriter('负载开路.avi');
v.FrameRate=10;
open(v);
for i=1:100
y1=V0_pos*cos(omega*t-k*z);
y2=V0_neg*cos(omega*t+k*z);
y=y1+y2;
figure(3);
p=plot(z,y1,'b',z,y2,'g',z,y,'r');%
lgd=legend('入射波','反射波','驻波');%
p(1).LineWidth=2;
p(2).LineWidth=2;
p(3).LineWidth=2;
lgd.FontSize=16;
axis([-30 0 -3 3]);
mov(i)=getframe(gcf);%捕捉当前图像作为一帧
writeVideo(v,mov(i));
pause(0.05);
t=t+0.05;
end;
close(v);
Zload=50;%0--short;10000-open;50--matched;60-a few unmatched
V0_neg=(Zload-Z0)/(Zload+Z0)*V0_pos;
v=VideoWriter('负载匹配.avi');
v.FrameRate=10;
open(v);
for i=1:100
y1=V0_pos*cos(omega*t-k*z);
y2=V0_neg*cos(omega*t+k*z);
y=y1+y2;
figure(4);
p=plot(z,y1,'b',z,y2,'g',z,y,'r');%
lgd=legend('入射波','反射波','驻波');%
p(1).LineWidth=2;
p(2).LineWidth=2;
p(3).LineWidth=2;
lgd.FontSize=16;
axis([-30 0 -3 3]);
mov(i)=getframe(gcf);%捕捉当前图像作为一帧
writeVideo(v,mov(i));
pause(0.05);
t=t+0.05;
end;
close(v);
Zload=60;%0--short;10000-open;50--matched;60-a few unmatched
V0_neg=(Zload-Z0)/(Zload+Z0)*V0_pos;
v=VideoWriter('负载失配.avi');
v.FrameRate=10;
open(v);
for i=1:100
y1=V0_pos*cos(omega*t-k*z);
y2=V0_neg*cos(omega*t+k*z);
y=y1+y2;
figure(5);
p=plot(z,y1,'b',z,y2,'g',z,y,'r');%
lgd=legend('入射波','反射波','驻波');%
p(1).LineWidth=2;
p(2).LineWidth=2;
p(3).LineWidth=2;
lgd.FontSize=16;
axis([-30 0 -3 3]);
mov(i)=getframe(gcf);%捕捉当前图像作为一帧
writeVideo(v,mov(i));
pause(0.05);
t=t+0.05;
end;
close(v);