• Non ci sono risultati.

98 Di seguito viene riportato il listato del programma in IDL: Appendice

N/A
N/A
Protected

Academic year: 2021

Condividi "98 Di seguito viene riportato il listato del programma in IDL: Appendice"

Copied!
9
0
0

Testo completo

(1)

Appendice

Di seguito viene riportato il listato del programma in IDL:

pro prodottonew ;prodotto tra immagine e pattern di campo common varia, x,y,z,a,tr

M0=double(1.26E-6) k=M0/(4.0*!dpi)

READ, 'inserisci il raggio delle spire, in millimetri ',input a=float(input)/1000.

print,'a=',a

READ, 'inserisci il valore della corrente, in Ampere ',input I=input

print,'I=',I

READ, 'inserisci la coordinata z, in millimetri ',input z=float(input)/1000 print,'z=',z Bvett=dblarr(256,256) xvett=dblarr(256) yvett=dblarr(256) tr=0.5 for w=1,255 do begin x=(1./256.)*w xvett[w]=100*x for p=1,255 do begin y=(1./256.)*p yvett[p]=100*y Bx1=k*I*(QSIMP('ICS1',0.0,!DPI/2,eps=1.E-3,/double)+QSIMP('ICS1',!DPI/2,!DPI,eps=1.E-3,/double)+$ QSIMP('ICS1',!DPI,(3./2)*!DPI,eps=1.E-3,/double)+QSIMP('ICS1',(3./2)*!DPI,2.*!DPI,eps=1.E-3,/double)) By1=k*I*(QSIMP('IPSILON1',0.0,!DPI/2,eps=1.E-3,/double)+QSIMP('IPSILON1',!DPI/2,!DPI,eps=1.E-3,/double)+$ QSIMP('IPSILON1',!DPI,(3./2)*!DPI,eps=1.E-3,/double)+QSIMP('IPSILON1',(3./2)*!DPI,2.*!DPI,eps=1.E-3,/double)) Bz1=k*I*(QSIMP('ZETA1',0.0,!DPI/2,eps=1.E-3,/double)+QSIMP('ZETA1',!DPI/2,!DPI,eps=1.E-3,/double)+$ QSIMP('ZETA1',!DPI,(3./2)*!DPI,eps=1.E-3,/double)+QSIMP('ZETA1',(3./2)*!DPI,2.*!DPI,eps=1.E-3,/double))

(2)

Bx=Bx1 By=By1 Bz=Bz1 Bvett[p,w]=SQRT(Bx^2+By^2+Bz^2) endfor endfor ;Bvett=Bvett[28:100,28:100] Bvett=Bvett/max(Bvett) aa=dblarr(256,256) ;fantoccio aa(1:254,1:254)=0 aa(20:234,20:234)=250 aa(70:184,70:184)=180 aa(120:136,120:136)=230 window,1 tv,aa Bvett=congrid(Bvett,512,512) ;campo Bvett1=Bvett(0:255,0:255) Bvett2=Bvett(0:255,256:511) Bvett3=Bvett(256:511,256:511) Bvett4=Bvett(256:511,0:255)

a1=aa*Bvett1 ;prodotto fantoccio campo1 a1=a1*255/max(a1)

window,2 pippo1=fix(a1)

tvscl,congrid(pippo1,256,256)

a2=aa*Bvett2 ;prodotto fantoccio campo2 a2=a2*255/max(a2)

window,3 pippo2=fix(a2)

tvscl,congrid(pippo2,256,256)

a3=aa*Bvett3 ;prodotto fantoccio campo3 a3=a3*255/max(a3)

window,4 pippo3=fix(a3)

tvscl,congrid(pippo3,256,256)

a4=aa*Bvett4 ;prodotto fantoccio campo4 a4=a4*255/max(a4)

window,5 pippo4=fix(a4)

(3)

window,6 contour,1.0E4*Bvett1,xvett,yvett,nlevels=20,isotropic=1,/fill,xtitle='x(cm)',y title='y(cm)' contour,1.0E4*Bvett1,xvett,yvett,nlevels=20,isotropic=1,/follow,/overplot window,7 contour,1.0E4*Bvett2,xvett,yvett,nlevels=20,isotropic=1,/fill,xtitle='x(cm)',y title='y(cm)' contour,1.0E4*Bvett2,xvett,yvett,nlevels=20,isotropic=1,/follow,/overplot window,8 contour,1.0E4*Bvett3,xvett,yvett,nlevels=20,isotropic=1,/fill,xtitle='x(cm)',y title='y(cm)' contour,1.0E4*Bvett3,xvett,yvett,nlevels=20,isotropic=1,/follow,/overplot window,9 contour,1.0E4*Bvett4,xvett,yvett,nlevels=20,isotropic=1,/fill,xtitle='x(cm)',y title='y(cm)' contour,1.0E4*Bvett4,xvett,yvett,nlevels=20,isotropic=1,/follow,/overplot white=!p.color window,10 plot,xvett,a1[*,128],background=white,color=0,xtitle='dimensione immagine (pixel)',ytitle='intensità di segnale' noised=40*abs(randomn(seed,256,256))

ns1=(a1+noised) ;somma del rumore1 window,16

tvscl,ns1 iimage,ns1

ns2=a2+1.5*noised ;somma del rumore2 window,17

tvscl,ns2 iimage,ns2

ns3=a3+2*noised ;somma del rumore3 window,18

tvscl,ns3 iimage,ns3

ns4=a4+2.5*noised ;somma del rumore4 window,19

tvscl,ns4 iimage,ns4

ss1=dblarr(256,256) ;calcolo SOS ss1=ns1*ns1

(4)

ss2=ns2*ns2 ss3=dblarr(256,256) ss3=ns3*ns3 ss4=dblarr(256,256) ss4=ns4*ns4 sq=dblarr(256,256) sq=ss1+ss2+ss3+ss4 sos=dblarr(256,256) sos=sqrt(sq) window,15 tvscl,sos iimage,sos

ns1q=dblarr(256,256) ;SOS equalizzata ns1q=ns1*ns1 ns2q=dblarr(256,256) ns2q=ns2*ns2 ns3q=dblarr(256,256) ns3q=ns3*ns3 ns4q=dblarr(256,256) ns4q=ns4*ns4 nnss=dblarr(256,256) nnss=(ns1q+0.45*ns2q)+0.26*ns3q+0.17*ns4q) sose=dblarr(256,256) sose=sqrt(nnss) window,20 tvscl,sose iimage,sose

diff=dblarr(256,256) ;differenza tra sos e sos equalizzata diff=sos-sose

window,21 tvscl,diff

sma=smooth(ns1,20) ;filtro di smoothing sulla prima immagine

smb=smooth(ns2,20) ;filtro di smoothing sulla seconda immagine

smc=smooth(ns3,20) ;filtro di smoothing sulla terza immagine

(5)

smd=smooth(ns4,20) ;filtro di smoothing sulla quarta immagine sma=float(sma) smb=float(smb) smc=float(smc) smd=float(smd) window,22 wset=22 tvscl,sma iimage,sma window,23 wset=23 tvscl,smb window,24 wset=24 tvscl,smc window,25 wset=25 tvscl,smd smaq=dblarr(256,256) for i=0,255 do begin for j=0,255 do begin

smaq[i,j]=sma[i,j]*sma[i,j] ;quadrato dell'immagine a smoothata (campo di s1)

endfor endfor

smbq=dblarr(256,256) for i=0,255 do begin for j=0,255 do begin

smbq[i,j]=smb[i,j]*smb[i,j] ;quadrato dell'immagine b smoothata (campo di s2)

endfor endfor

smcq=dblarr(256,256) for i=0,255 do begin for j=0,255 do begin

smcq[i,j]=smc[i,j]*smc[i,j] ;quadrato dell'immagine a smoothata (campo di s3)

endfor endfor

(6)

for i=0,255 do begin for j=0,255 do begin

smdq[i,j]=smd[i,j]*smd[i,j] ;quadrato dell'immagine a smoothata (campo di s4) endfor endfor num1=dblarr(256,256) num1=sma*ns1+smb*ns2+smc*ns3+smd*ns4 den1=sqrt(smaq+smbq)+smcq+smdq) risu1=dblarr(256,256) for i=0,255 do begin for j=0,255 do begin

if (den1[i,j] gt 0.0) then begin

risu1[i,j]=num1[i,j]/den1[i,j] ;formula SoS super end else begin

; ;fina[i,j]=a[i,j] endelse endfor endfor window,26 wset=26 tvscl,risu1 numeq=dblarr(256,256) numeq=sma*ns1+smb*ns2*0.24+smc*ns3*0.11+smd*ns4*0.069 den1=sqrt(smaq+smbq)+smcq+smdq) risueq=dblarr(256,256) for i=0,255 do begin for j=0,255 do begin

if (den1[i,j] gt 0.0) then begin

risueq[i,j]=numeq[i,j]/den1[i,j] ;formula SoS super equalizzata end else begin

; ;fina[i,j]=a[i,j] endelse endfor endfor window,27 wset=27 tvscl,risueq diff1=dblarr(256,256) diff1=risueq-risu1 window,28 wset=28 tvscl,diff1

(7)

xxvett=dblarr(256) for m=0,255 do begin xxvett[m]=m endfor white=!p.color window,29 wset=29 plot,xxvett,risu1[*,128],background=white,color=0,xtitle='dimensione immagine (pixel)',ytitle='intensità di segnale'

oplot,z[*,128],color=255 ;rossa oplot,risueq[*,128],color=255*255 ;celeste white=!p.color window,30 wset=30 p1=sma[45:211,128] p2=Bvett1[45:211,128] save,p1,p2 plot,xxvett,p1/max(p1),background=white,color=0,xtitle='dimensione immagine (pixel)',ytitle='intensità di segnale'

oplot,p2/max(p2),color=255*255 ;celeste

equ1=0.24 equ2=0.11

equ3=0.069 ;rapporto di equalizzazione lh=8 ;larghezza finestra di Hanning h=hanning(lh,lh,alpha=0.5) ;filtro di Hanning ns2=ns2*equ1

ns3=ns3*equ2

ns4=ns4*equ3 ;equalizzazione immagini ae=dblarr(256+lh,256+lh) be=dblarr(256+lh,256+lh) ce=dblarr(256+lh,256+lh) de=dblarr(256+lh,256+lh) ae[lh/2:255+lh/2,lh/2:255+lh/2]=ns1 ;zero-filling be[lh/2:255+lh/2,lh/2:255+lh/2]=ns2 ce[lh/2:255+lh/2,lh/2:255+lh/2]=ns3 de[lh/2:255+lh/2,lh/2:255+lh/2]=ns4 ahe=convol(ae,h) ;convoluzioni bhe=convol(be,h) che=convol(ce,h)

(8)

dhe=convol(de,h)

ah=ahe[lh/2:255+lh/2,lh/2:255+lh/2] ;immagini filtrate (campi delle bobine) window,27 tvscl,ah bh=bhe[lh/2:255+lh/2,lh/2:255+lh/2] window,28 tvscl,bh ch=che[lh/2:255+lh/2,lh/2:255+lh/2] window,29 tvscl,ch dh=dhe[lh/2:255+lh/2,lh/2:255+lh/2] window,30 tvscl,dh num2=dblarr(256,256) den2=dblarr(256,256) num2=ah*ns1+bh*ns2+ch*ns3+dh*ns4 den2=sqrt(ah*ah+bh*bh)+ch*ch+dh*dh) sup=dblarr(256,256)

for i=0,255 do begin for j=0,255 do begin

if (den2[i,j] gt 0.0) then begin

sup[i,j]=num2[i,j]/den2[i,j] ;formula SoS super equalizzata con Hanning endif endfor endfor window,31 tvscl,sup iimage,sup end function ICS1,T

common varia, x,y,z,a,tr

return, (a*z*cos(T))/((x-a*cos(T)-tr)^2+(y-a*sin(T)-tr)^2+z^2)^(3./2) end

function IPSILON1,T common varia, x,y,z,a,tr

return, (a*z*sin(T))/((x-a*cos(T)-tr)^2+(y-a*sin(T)-tr)^2+z^2)^(3./2) end

function ZETA1,T

(9)

return, (a^2-a*(y-tr)*sin(T)-a*(x-tr)*cos(T))/((x-a*cos(T)-tr)^2+(y-a*sin(T)-tr)^2+z^2)^(3./2)

Riferimenti

Documenti correlati

tale matrice ha dimensione (numero voli x 222), ed ogni elemento è composto da 1 in tutti quegli slot time iniziali e finali del turnaround di ogni volo in cui

C Calcolo del carico di collasso al momento in cui la fessura raggiunge l'instabilità; C si tratta di una valutazione conservativa,dato che il carico di collasso diminuisce C

[r]

Lai, Ibba, Massidda, Mannino, Deidda, Onnis, Angius, Floris e Mereu - Proposta di deliberazione n.. Lai, Ibba, Massidda, Mannino, Deidda, Onnis, Angius, Floris, Mereu e del

Dal 2003 al 2020, a Roma, ha diretto il Silvano Toti Globe Theatre , sorto grazie ad una sua grande idea che sosteneva la necessità della nascita di un teatro elisabettiano a Roma,

• Ipotizziamo di aver acquistato al premio di 0,5€ una opzione call su una azione FIAT con data di esercizio 15.3.14 e strike price 5,5... Tracciamo sul piano cartesiano il

permette di disegnare le curva dell’errore massimo e dell’errore medio in funzione del minuto di previsione, la curva di distribuzione dell’errore e di visualizzare una

% Numero di immagini del fantoccio per la fase di training (deve essere un multiplo % di 4 per come verrà costruita l'immagine da campionare