2013-09-16 49 views
-1

我正在寫微芯片設計程序,但它給出了一個錯誤。有人可以幫我糾正它嗎? 這裏是我的代碼:微芯片設計程序

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; 
+0

你認爲'n'應該是什麼值? –

+0

feed = n * 0.1;在這一行中matlab沒有找到n的值,爲了糾正這個錯誤,給變量n賦了一個值 –

+0

n必須從上面得到它的值for循環na? –

回答

1

只有n的單個聲明,這是一個if語句中。顯然這個聲明從來沒有達到過。因此,要麼確保達到聲明,要麼在代碼稍後引用它之前提供一些n的默認定義。

+0

@SidharthaRamachandran這個回答對您有幫助嗎? – Schorsch