
Araçlar
Hoparlör Gruplama için MATLAB Kodu
Aşağıdaki Matlab kodu yönlülüğü bilinen hoparlörlerin gruplanması durumunda ortaya çıkan dağılımları gösteriyor. Bu kodu basit anlatımlarda kullanmak üzere yazdım. Bu tip bir gösterimi hızlıca yapmaya imkan veren bir paket program bildiğim kadarıyla yok. (EASE yapıyor ancak frekans ölçeklemesi gerekli)
Yönlülük bilgisi için hoparlörün Common Loudspeaker Format dosyası ya da CATT yazılımının formatı olan SD2 dosyası kullanılabilir. Amacınız kardiyoid subwoofer tasarımı ise buna bile gerek olmayacaktır, kaynakları her yöne eş güçte tanımlayabilirsiniz.
%tüm birimler dm cinsinden %frekans için 25Hz birinci satır. Her bir satır 1/3 oktav ötesi. %nf frekans numarasını belirtir nf=1 25Hz olup diğer frekanslar 1/3 oktav ara ile sıralanmıştır %% Ortam Şartları c=3440;%dm/s %% Yatay Yönlülük Bilgisi (15°) dir.a.d(6,:)=[0 0 0 0 0 -1 -1 -1 -1 -2 -2 -3 -4]; dir.a.d(7,:)=[0 0 0 -1 -1 -1 -2 -2 -3 -4 -5 -6 -8]; dir.a.d(8,:)=[0 -1 -1 -2 -3 -4 -5 -6 -7 -9 -12 -16 -22]; dir.a.co=[0 15 30 45 60 75 90 105 120 135 150 165 180]; %% Kaynaklar %src[konum x,konum y,rot h,rot v,directivity dosyası,delay (ms),SPL@1m] src=[45,48,0,0,{dir.a},0,100; 36.4,50,0,0,{dir.a},-2.5,106; 45,52,0,0,{dir.a},0,100]; %% Hesaplama for nf=[6 7 8] f=25*2^((nf-1)/3) k=2*pi*f/c;%wave number for s=1:size(src,1), for x=1:100, for y=1:100; vect(y,x)=x-src{s,1}+i*(y-src{s,2}); end,end dirs=src{s,5}.d(nf,:); dirc=src{s,5}.co; dist=abs(vect); theta=abs(angle(vect)/pi*180); %abs çünkü kaynak simetrik sp(:,:,s)=(10^(src{s,7}/20))*(1./dist).*exp(i.*(dist+c*src{s,6}/1000)*k).*10.^(pchip(dirc,dirs,theta)/20); end spo(:,:,nf)=abs(conj(sum(sp,3)).*sum(sp,3)); db(:,:,nf)=10.*log10(spo(:,:,nf)); % Plot pause pcolor(db(:,:,nf)), colorbar title(['@' num2str(round(f)) 'Hz']) end
Bu kodun çalışması halinde çıkan üç grafik aşağıdaki gibidir. Burada yapılan, 100Hz’e ayarlı bir kardiyoid subwoofer array’idir.