微芯片设计方案

时间:2013-09-16 16:33:55

标签: matlab for-loop

我正在为微芯片设计编写一个程序,但它给出了一个错误。有人可以帮我纠正吗? 这是我的代码:

clc;
clear all;
close all;
f=2.4*10^9;
er=4.4;
h=1.6*10^-3;
c=3*10^8;
w=c/(2*f*((er+1)/2)^(0.5));
eef=((er+1)/2+((er+1)/2)*(1+(12*h/w)))^-0.5;
lef=c/(2*f*(eef^0.5));
dl=(0.412*h)*(eef+0.3)*((w/h+0.264)/((eef-0.258)*((w/h)+0.8)));
l=lef-(2*dl);
lg=6*h+l;
wg=6*h+w;
%microstrip line design
zo=50;
A=(zo/99)*sqrt((er+1)/2)+(((er-1)/(er+1))*(0.23+(0.11*er)));
B=(377*pi)/(2*zo*sqrt(er));
wbd=(8*exp(A)/exp(2*(A))-2);
if(wbd>2)
    wbd=(2/pi)*((B-1-log(2*B-1)+((er-1)/(2*er))*log(B-1)+0.39-(0.61/er)));
end
w=wbd*h;
ko=(2*pi*f)/c;
Ll=pi/(sqrt(eef)*ko);
c=3*10^8;
la=c/f;
b=(2*pi*sqrt(er))/(la);
i=1;
for w=1:0.1:38
    i=i+1;
    rin(1,i)=round(((120*la)^2)+(((377*h)/(sqrt(er))*w*10^-3)^2)*(tan(b*w*10^-3)^2)/(240*w*10^-3*la)*(1+(tan(b*w*10^-3)^2)));
    if(rin(1,i)>45 && rin(1,i)<50)
        n=i;
    end
end
feed=n*0.1;
l=l*10^3;
w=w*10^3;
lg=lg*10^3;
wg=wg*10^3;
wl=wl*10^3;
Ll=Ll*10^3;
display(l);
display(w);
display(lg);
display(wg);
display(wl);
display(Ll);
display(feed);

错误如下:

??? Undefined function or variable 'n'.

Error in ==> Antenna at 37
feed=n*0.1;

1 个答案:

答案 0 :(得分:1)

n只有一个声明,它在if语句中。显然从未达成过这种说法。因此要么确保达到声明,要么在稍后在代码中引用之前提供n的一些默认定义。

相关问题