點聲源模擬無限大障板活塞輻射 求空間指向型

2021-09-20 06:16:26 字數 2285 閱讀 8305

點聲源疊加模擬無限大障板活塞輻射 求指向型

圓形活塞所以使用極座標進行計算 只是為求指向型 可以忽略常係數

周長2*pi*r隨r擴充套件 所以針對不同半徑 點聲源個數與r成線性關係

數值求解與解析公式作圖對比

將平面指向型轉化為空間指向型

據我所知 matlab中無之間繪製球座標函式 於是轉化為直角座標後畫出

歡迎指正

clear all;close all;

f=20000;

w=f*2*pi; %頻率

k=w/343; %波數

a=0.05; %活塞半徑

r=10; %遠場距離

theta=(-90:0.5:90)*pi/180; %方向性

r=a/20:a/20:a ;%半徑

sum=zeros(1,length(theta));

sum1=zeros(1,length(theta));

for i=1:length(theta)

h=r;

sum(i)=sum(i)+w/h*exp(-1j*k*h);%中心位置

sum1(i)=sum(i);

for j=1:length(r)

l=j*80;

for n=1:l %迴圈個數 一圈內的個數

%不近似

h=sqrt(r*r+r(j)*r(j)-2*r*r(j)*sin(theta(i))*cos(n*2*pi/l));

sum(i)=sum(i)+w/h*exp(-1j*k*h);

%近似h1=r-r(j)*sin(theta(i))*cos(n*2*pi/l);

sum1(i)=sum(i)+w/r*exp(-1j*k*h);

endend

endsum=abs(sum);

sum=sum/max(sum);%歸一化

sum1=abs(sum1);

sum1=sum1/max(sum1);

figure

plot(theta,sum,'b');title('不近似')

plot(theta,sum1,'r');title('近似')

legend('不近似','近似');

figure

% subplot(1,2,1)

plot(theta,sum,'b');

hold on

d=zeros(1,length(theta));

for i=1:length(theta) %公式求解

d(i)=abs(2*besselj(1,k*a*sin(theta(i)))/(k*a*sin(theta(i))));

end% subplot(1,2,2)

plot(theta,d,'r');title('對比')

hold off

legend('疊加模擬','公式計算');

figure

% subplot(1,2,1)

polar(theta,sum,'b');

hold on

% subplot(1,2,2)

polar(theta,d,'r');title('極座標對比')

hold off

legend('疊加模擬','公式計算');

x=cos(theta)'*theta;%為2維旋轉成3維 生成座標

y=sin(theta)'*theta;

% figure %公式的二維旋轉

% surf(x,y,repmat(d,length(t),1));

% shading interp

figure

surf(x,y,repmat(sum,length(theta),1));

shading interp

% plot(cos(theta).*sum,sin(theta).*sum);%直角座標轉為極座標

figure%旋轉極座標圖 畫出

模擬 無限序列

題目描述 我們按以下方式產生序列 1 開始時序列是 1 2 每一次變化把序列中的 1 變成 10 0 變成 1 經過無限次變化,我們得到序列 1011010110110101101 總共有 q 個詢問,每次詢問為 在區間a和b之間有多少個1。任務 寫乙個程式回答q個詢問 輸入 第一行為乙個整數q,後...

CCF模擬 無線網路

無線網路 時間限制 1.0s 記憶體限制 256.0mb 問題描述 目前在乙個很大的平面房間裡有 n 個無線路由器,每個無線路由器都固定在某個點上。任何兩個無線路由器只要距離不超過 r 就能互相建立網路連線。除此以外,另有 m 個可以擺放無線路由器的位置。你可以在這些位置中選擇至多 k 個增設新的路...

2018 3 17 模擬賽 1 無限序列

我們按以下方式產生序列 1 開始時序列是 1 2 每一次變化把序列中的 1 變成 10 0 變成 1 經過無限次變化,我們得到序列 1011010110110101101 然後詢問q次,求a到b之間1的個數 首先,觀察一波 序列的變化為 1 10 101 10110 10110101 然後,我們發現...