1. 程式人生 > 實用技巧 >2.6.1-無限長導體圓柱散射的分離變數法求解

2.6.1-無限長導體圓柱散射的分離變數法求解

1 概述

2.6.1節,無限長導體圓柱散射的分離變數法求解

2 程式

 1 close all;clear all;clc
 2 
 3 phi=0:360;%入射角度
 4 ka=(0.01:0.01:1)'*2*pi;%歸一化頻率
 5 n=-80:80;%bessel展開的項個數
 6 
 7 jn=@(n,x)besselj(n,x);%n階第一類貝塞爾函式
 8 hn=@(n,x)besselh(n,2,x);%n階第二類漢克函式
 9 jd=@(n,x)besselj(n-1,x)-n./x.*besselj(n,x);%n階第一類貝塞爾函式導數
10 hd=@(n,x)besselh(n-1,2,x)-n./x.*besselh(n,2
,x);%n階第二類漢克函式導數 11 12 jn=bsxfun(jn,n,ka);%n為[1 161],ka為[100 1],擴充為jn[100 161] 13 hn=bsxfun(hn,n,ka); 14 jd=bsxfun(jd,n,ka); 15 hd=bsxfun(hd,n,ka); 16 17 tmp_tm=-2*exp(1j*pi/4)./sqrt(ka*pi)*(-1).^n.*jn./hn; 18 tmp_tm(isnan(tmp_tm))=0;%NaN變0 19 tmp_te=-2*exp(1j*pi/4)./sqrt(ka*pi)*(-1).^n.*jd./hd; 20 tmp_te(isnan(tmp_te))=0
; 21 22 rcs_tm=tmp_tm*exp(1j*n'*phi*pi/180); 23 rcs_te=tmp_te*exp(1j*n'*phi*pi/180); 24 25 figure 26 plot(ka,20*log10(abs(rcs_tm(:,1))),ka,20*log10(abs(rcs_te(:,1))));%取第一列 27 xlabel('歸一化頻率'); 28 ylabel('RCS/dBm'); 29 legend('phi=0,RCS TM與ka的關係','phi=0,RCS TE與ka的關係','location','southwest'); 30 31 figure 32 plot(phi,20
*log10(abs(rcs_tm(end,:))),phi,20*log10(abs(rcs_te(end,:))));%取最後一行 33 xlabel('雙站角Phi/deg'); 34 ylabel('RCS/dBm'); 35 legend('ka=2*pi,RCS TM與phi的關係','ka=2*pi,RCS TE與phi的關係','location','southwest'); 36 37 figure 38 plot(ka,angle(rcs_tm(:,1))*180/pi,ka,angle(rcs_te(:,1))*180/pi); 39 xlabel('歸一化頻率'); 40 ylabel('RCS相位/deg'); 41 legend('phi=0,RCS TM與ka的關係(相位)','phi=0,RCS TE與ka的關係(相位)','location','southwest'); 42 43 figure 44 plot(phi,angle(rcs_tm(end,:))*180/pi,phi,angle(rcs_te(end,:))*180/pi); 45 xlabel('雙站角Phi/deg'); 46 ylabel('RCS相位/deg'); 47 legend('ka=2*pi,RCS TM與phi的關係(相位)','ka=2*pi,RCS TE與phi的關係(相位)','location','southwest');

3 結果

4 NaN的剔除

比較NaN時,不能用find函式,而應用isnan代替

1 close all;clear all;clc
2 m=zeros(4);
3 m(2,2)=NaN;
4 
5 % m(find(m==NaN)) = 2;
6 m(find(isnan(m))) = 2;