APPENDICE
COSTRUZIONE DEL MODELLO E METODO UNFOLD CON
SOTTOCAMPIONAMENTO UNIFORME E STIME DEGLI ERRORI ASSOLUTO E RELATIVO
%Rappresentazione in asse corto della fetta media del cuore.
%Vista orizzontale:miocardio(corona esterna),ventricolo sinistro(area interna) % e ventricolo destro(mezza luna laterale)
clear all; clc; close all;
%intervallo R-R del ciclo cardiaco caratterizzato %da 30 frame complessivi
w=zeros(256,256); m=zeros(256,256,30); c=[150,127]; C=[127,127]; A=[97,75]; R1=50; R2=75;
% % fase sistolica caratterizzata dai primi 12 frame %
for t=1:4 for i=1:256 for j=1:256
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R1 m(i,j,t)=214; end end end end R3=[47,45.7,43.2,41.5,38.4,36.1,34.3,29]; R2=75; for i=1:256 for j=1:256 for t=5:12 for l=1:8
l=t-4;
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73; end if sqrt( (j-c(1)).^2+(i-c(2)).^2)<R3(l) m(i,j,t)=214; end end end end end
% % fase diastolica caratterizzata dai rimanenti 18 frame R4=[30.3,32.5,33.7,35,36.3,37.7,39,40.5,42.2,43.8,44.9,46.8] R2=75; for i=1:256 for j=1:256 for t=13:24 for l=1:12 l=t-12;
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73; end if sqrt( (j-c(1)).^2+(i-c(2)).^2)<R4(l) m(i,j,t)=214; end end end end end for t=25:30 for i=1:256 for j=1:256
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R1 m(i,j,t)=214; end end end
end figure(1); w=m(:,:,1); colormap(gray); imagesc(w); figure(2); w=m(:,:,2); colormap(gray); imagesc(w); figure(3); w=m(:,:,3); colormap(gray); imagesc(w); figure(4); w=m(:,:,4); colormap(gray); imagesc(w); figure(5); w=m(:,:,5); colormap(gray); imagesc(w); figure(6); w=m(:,:,6); colormap(gray); imagesc(w); figure(7); w=m(:,:,7); colormap(gray); imagesc(w); figure(8); w=m(:,:,8); colormap(gray); imagesc(w); figure(9); w=m(:,:,9); colormap(gray); imagesc(w); figure(10); w=m(:,:,10); colormap(gray); imagesc(w); figure(11); w=m(:,:,11); colormap(gray); imagesc(w); figure(12); w=m(:,:,12); colormap(gray); imagesc(w); figure(13); w=m(:,:,13);
colormap(gray); imagesc(w); figure(14); w=m(:,:,14); colormap(gray); imagesc(w); figure(15); w=m(:,:,15); colormap(gray); imagesc(w); figure(16); w=m(:,:,16); colormap(gray); imagesc(w); figure(17); w=m(:,:,17); colormap(gray); imagesc(w); figure(18); w=m(:,:,18); colormap(gray); imagesc(w); figure(19); w=m(:,:,19); colormap(gray); imagesc(w); figure(20); w=m(:,:,20); colormap(gray); imagesc(w); figure(21); w=m(:,:,21); colormap(gray); imagesc(w); figure(22); w=m(:,:,22); colormap(gray); imagesc(w); figure(23); w=m(:,:,23); colormap(gray); imagesc(w); figure(24); w=m(:,:,24); colormap(gray); imagesc(w); figure(25); w=m(:,:,25); colormap(gray); imagesc(w); figure(26); w=m(:,:,26);
colormap(gray); imagesc(w); figure(27); w=m(:,:,27); colormap(gray); imagesc(w); figure(28); w=m(:,:,28); colormap(gray); imagesc(w); figure(29); w=m(:,:,29); colormap(gray); imagesc(w); figure(30); w=m(:,:,30); colormap(gray); imagesc(w);
% trasformazione nello spazio k M=fftshift(fft2(m));
%si esegue adesso un sottocampionamento uniforme sui vari frame del fantoccio fs=2; L=256; N=256; T=30; S = zeros (L,N,T); for t = 1:T for i=t:2:256 S(i,:,t)=1; end Mc(:,:,t)=S(:,:,t).*M(:,:,t); end
% trasformazione nel dominio spaziale mc=ifft2(ifftshift(Mc));
% trasformazione nel dominio frequenziale zpad=30;
ma = mc;
Ma = fft(ma,zpad,3);
% filtraggio passabasso per eliminare l'aliasing Mr = zeros(L,N,T); h=fftshift(hanning(30)); figure(35); plot(abs(h)); for t=1:zpad Mr(:,:,t)=Ma(:,:,t)*h(t);
end mr =ifft(Mr,[],3); % creazione video figure(31); videoo = moviein(T); for j=1:T imshow(m(:,:,j),[]) videoo(:,j)=getframe; end figure(32); videoa = moviein(T); for j=1:T imshow(abs(mc(:,:,j)),[]) videoa(:,j)=getframe; end figure(33); videor = moviein(T); for j=1:T imshow(abs(mr(:,:,j)),[]) videor(:,j)=getframe; end movie2avi(videoo,['videooriginale','.avi'],'fps',10,'compression','none'); movie2avi(videoa,['videoaliasing','.avi'],'fps',10,'compression','none'); movie2avi(videor,['videoricostruito','.avi'],'fps',10,'compression','none'); m=m/(256*256*30); mr=mr/(256*256*30);
errtot=sum(sum(sum((abs(m)-abs(mr)).^2))); %errore complessivo err=sum(sum((abs(m)-abs(mr)).^2),2); %errore relativo ai vari frame for t=1:30 e(t)=err(1,1,t); errore(t)=e(t); end figure(34); plot(errore);
COSTRUZIONE DEL MODELLO E METODO UNFOLD CON
SOTTOCAMPIONAMENTO NON UNIFORME E STIME DEGLI ERRORI ASSOLUTO E RELATIVO
%Rappresentazione in asse corto della fetta media del cuore.
%Vista orizzontale:miocardio(corona esterna),ventricolo sinistro(area interna) % e ventricolo destro(mezza luna laterale)
clear all; clc; close all;
%intervallo R-R del ciclo cardiaco caratterizzato %da 30 frame complessivi
w=zeros(256,256); m=zeros(256,256,30); c=[150,127]; C=[127,127]; A=[97,75]; R1=50; R2=75;
% % fase sistolica caratterizzata dai primi 12 frame for t=1:4
for i=1:256 for j=1:256
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R1 m(i,j,t)=214; end end end end R3=[47,45.7,43.2,41.5,38.4,36.1,34.3,29]; R2=75; for i=1:256 for j=1:256 for t=5:12 for l=1:8 l=t-4;
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214;
end
if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73;
end if sqrt( (j-c(1)).^2+(i-c(2)).^2)<R3(l) m(i,j,t)=214; end end end end end
% % fase diastolica caratterizzata dai rimanenti 18 frame R4=[30.3,32.5,33.7,35,36.3,37.7,39,40.5,42.2,43.8,44.9,46.8] R2=75; for i=1:256 for j=1:256 for t=13:24 for l=1:12 l=t-12;
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73; end if sqrt( (j-c(1)).^2+(i-c(2)).^2)<R4(l) m(i,j,t)=214; end end end end end for t=25:30 for i=1:256 for j=1:256
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R1 m(i,j,t)=214; end end end end figure(1); w=m(:,:,1); colormap(gray);
imagesc(w); figure(2); w=m(:,:,2); colormap(gray); imagesc(w); figure(3); w=m(:,:,3); colormap(gray); imagesc(w); figure(4); w=m(:,:,4); colormap(gray); imagesc(w); figure(5); w=m(:,:,5); colormap(gray); imagesc(w); figure(6); w=m(:,:,6); colormap(gray); imagesc(w); figure(7); w=m(:,:,7); colormap(gray); imagesc(w); figure(8); w=m(:,:,8); colormap(gray); imagesc(w); figure(9); w=m(:,:,9); colormap(gray); imagesc(w); figure(10); w=m(:,:,10); colormap(gray); imagesc(w); figure(11); w=m(:,:,11); colormap(gray); imagesc(w); figure(12); w=m(:,:,12); colormap(gray); imagesc(w); figure(13); w=m(:,:,13); colormap(gray); imagesc(w); figure(14); w=m(:,:,14); colormap(gray);
imagesc(w); figure(15); w=m(:,:,15); colormap(gray); imagesc(w); figure(16); w=m(:,:,16); colormap(gray); imagesc(w); figure(17); w=m(:,:,17); colormap(gray); imagesc(w); figure(18); w=m(:,:,18); colormap(gray); imagesc(w); figure(19); w=m(:,:,19); colormap(gray); imagesc(w); figure(20); w=m(:,:,20); colormap(gray); imagesc(w); figure(21); w=m(:,:,21); colormap(gray); imagesc(w); figure(22); w=m(:,:,22); colormap(gray); imagesc(w); figure(23); w=m(:,:,23); colormap(gray); imagesc(w); figure(24); w=m(:,:,24); colormap(gray); imagesc(w); figure(25); w=m(:,:,25); colormap(gray); imagesc(w); figure(26); w=m(:,:,26); colormap(gray); imagesc(w); figure(27); w=m(:,:,27); colormap(gray);
imagesc(w); figure(28); w=m(:,:,28); colormap(gray); imagesc(w); figure(29); w=m(:,:,29); colormap(gray); imagesc(w); figure(30); w=m(:,:,30); colormap(gray); imagesc(w);
% trasformazione nello spazio k M=fftshift(fft2(m));
%si esegue adesso,sui vari frame del fantoccio, un sottocampionamento non uniforme più fitto %nella zona centrale di interesse e più rado in quelle periferiche
fs=2; L=256; N=256; T=30; S = zeros (L,N,T); for t = 1:T for i=t:8:54 S(i,:,t)=1; end for i=55+t:2:225 S(i,:,t)=1; end for i=226+t:8:256 S(i,:,t)=1; end Mc(:,:,t)=S(:,:,t).*M(:,:,t); end
% trasformazione nel dominio spaziale mc=ifft2(ifftshift(Mc)); z=zeros(256,256); figure(35); z=abs(mc(:,:,1)); colormap(gray); imagesc(z);
% trasformazione nel dominio frequenziale zpad=30;
ma = mc;
Ma = fft(ma,zpad,3);
% filtraggio passabasso per eliminare l'aliasing Mr = zeros(L,N,T); h=fftshift(hanning(30)); for t=1:zpad Mr(:,:,t)=Ma(:,:,t)*h(t); end mr = ifft(Mr,[],3); p=zeros(256,256); figure(36); p=abs(mr(:,:,1)); colormap(gray); imagesc(p); % creazione video figure(31); videoo = moviein(T); for j=1:T imshow(m(:,:,j),[]) videoo(:,j)=getframe; end figure(32); videoa = moviein(T); for j=1:T imshow(abs(mc(:,:,j)),[]) videoa(:,j)=getframe; end figure(33); videor = moviein(T); for j=1:T imshow(abs(mr(:,:,j)),[]) videor(:,j)=getframe; end movie2avi(videoo,['videooriginale','.avi'],'fps',10,'compression','none'); movie2avi(videoa,['videoaliasing','.avi'],'fps',10,'compression','none'); movie2avi(videor,['videoricostruito','.avi'],'fps',10,'compression','none'); m=m/(256*256*30); mr=mr/(256*256*30);
errtot=sum(sum(sum((abs(m)-abs(mr)).^2)));
err=sum(sum((abs(m)-abs(mr)).^2),2); %errore relativo ai vari frame for t=1:30 e(t)=err(1,1,t); errore(t)=e(t); end figure(34); plot(errore);
SOMMA DEL RUMORE AL MODELLO, APPLICAZIONE DEL METODO UNFOLD CON CAMPIONAMENTO UNIFORME E STIMA DEGLI ERRORI ASSOLUTO E
RELATIVO.
%Rappresentazione in asse corto della fetta media del cuore.
%Vista orizzontale:miocardio(corona esterna),ventricolo sinistro(area interna) % e ventricolo destro(mezza luna laterale)
clear all; clc; close all;
%intervallo R-R del ciclo cardiaco caratterizzato %da 30 frame complessivi
w=zeros(256,256); m=zeros(256,256,30); c=[150,127]; C=[127,127]; A=[97,75]; R1=50; R2=75;
% % fase sistolica caratterizzata dai primi 12 frame for t=1:4
for i=1:256 for j=1:256
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R1
m(i,j,t)=214; end end end end R3=[47,45.7,43.2,41.5,38.4,36.1,34.3,29]; R2=75; for i=1:256 for j=1:256 for t=5:12 for l=1:8 l=t-4;
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73; end if sqrt( (j-c(1)).^2+(i-c(2)).^2)<R3(l) m(i,j,t)=214; end end end end end
% % fase diastolica caratterizzata dai rimanenti 18 frame R4=[30.3,32.5,33.7,35,36.3,37.7,39,40.5,42.2,43.8,44.9,46.8] R2=75; for i=1:256 for j=1:256 for t=13:24 for l=1:12 l=t-12;
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73; end if sqrt( (j-c(1)).^2+(i-c(2)).^2)<R4(l) m(i,j,t)=214; end end end end end for t=25:30 for i=1:256
for j=1:256
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R1 m(i,j,t)=214; end end end end
% visualizzazione di un immagine reale P=256; Q=256; I=zeros(P,Q); I=dicomread('SAFIESTA-005-128-8619.dcm'); figure(37); imagesc(I);
% si considera adesso una sottomatrice dell'immagine,parte periferica in alto,
%e se ne stima la deviazione standard rappresentante il contributo di rumore rispetto %all'informazione contenuta nella parte centrale dell'immagine che per noi
%è quella di interesse A=zeros(38,40); for p=2:40 for q=70:110 A(p,q)=I(p,q); end end f=std(A(:)); %g=std(f); l=1.53.*f;
% si calcola,nella zona centrale dell'immagine,il valor medio per noi % informazione sul segnale di interesse
B=zeros(50,70); for p=100:150 for q=80:150 B(p,q)=I(p,q); end end b=mean(B);
e=mean(b);
%si stima infine il rapporto segnale rumore comprensivo del termine %correttivo pari a 1.53 relativo al rumore di risonanza magnetica(rumore %Riceano)
SNR=e/l;
% generazione di una matrice di rumore bianco gaussiano delle stesse dim. delle immagini %analizzate con deviazione standard calcolata precedentemente
A2=l*randn(256,256); figure(38);
imagesc(A2);
% somma del rumore ai vari frame del fantoccio z=zeros(256,256); U=zeros(256,256,30); U=m+l*randn(256,256,30); figure(44); z=U(:,:,1); colormap(gray); imagesc(z); figure(45); z=U(:,:,2); colormap(gray); imagesc(z); figure(46); z=U(:,:,3); colormap(gray); imagesc(z); figure(47); z=U(:,:,4); colormap(gray); imagesc(z); figure(48); z=U(:,:,5); colormap(gray); imagesc(z); figure(49); z=U(:,:,6); colormap(gray); imagesc(z); figure(50);
z=U(:,:,7); colormap(gray); imagesc(z); figure(51); z=U(:,:,8); colormap(gray); imagesc(z); figure(52); z=U(:,:,9); colormap(gray); imagesc(z); figure(53); z=U(:,:,10); colormap(gray); imagesc(z); figure(54); z=U(:,:,11); colormap(gray); imagesc(z); figure(55); z=U(:,:,12); colormap(gray); imagesc(z); figure(56); z=U(:,:,13); colormap(gray); imagesc(z); figure(57); z=U(:,:,14); colormap(gray); imagesc(z); figure(58); z=U(:,:,15); colormap(gray); imagesc(z); figure(59); z=U(:,:,16); colormap(gray); imagesc(z); figure(60); z=U(:,:,17); colormap(gray);
imagesc(z); figure(61); z=U(:,:,18); colormap(gray); imagesc(z); figure(62); z=U(:,:,19); colormap(gray); imagesc(z); figure(63); z=U(:,:,20); colormap(gray); imagesc(z); figure(64); z=U(:,:,21); colormap(gray); imagesc(z); figure(65); z=U(:,:,22); colormap(gray); imagesc(z); figure(66); z=U(:,:,23); colormap(gray); imagesc(z); figure(67); z=U(:,:,24); colormap(gray); imagesc(z); figure(68); z=U(:,:,25); colormap(gray); imagesc(z); figure(69); z=U(:,:,26); colormap(gray); imagesc(z); figure(70); z=U(:,:,27); colormap(gray); imagesc(z);
figure(71); z=U(:,:,28); colormap(gray); imagesc(z); figure(72); z=U(:,:,29); colormap(gray); imagesc(z); figure(73); z=U(:,:,30); colormap(gray); imagesc(z);
% trasformazione nello spazio k Z=fftshift(fft2(U));
%si esegue adesso un sottocampionamento uniforme sui vari frame %(le matrici ad essi relative hanno come elementi la somma degli %valori random della matrice di rumore gaussiano e di quelli %delle matrici del fantoccio)
fs=2; L=256; N=256; T=30; S = zeros (L,N,T); for t = 1:T for i=t:2:256 S(i,:,t)=1; end Zc(:,:,t)=S(:,:,t).*Z(:,:,t); end
% trasformazione nel dominio spaziale zc=ifft2(ifftshift(Zc));
% trasformazione nel dominio frequenziale za = zc; zpad=30; Za = fft(za,zpad,3); Zr = zeros(L,N,T); h=fftshift(hanning(30)); for t=1:zpad
Zr(:,:,t)=Za(:,:,t)*h(t); end
zr = ifft(Zr,[],3);
%filtraggio passabasso per eliminare l'aliasing %Zr(:,:,1:ceil(T/fs/2))=Za(:,:,1:ceil(T/fs/2)); %Zr(:,:,T-floor(T/fs/2)+1:T)=Za(:,:,T-floor(T/fs/2)+1:T); %zr = ifft(Zr,[],3); % creazione video figure(74); videoor = moviein(T); for j=1:T imshow(U(:,:,j),[]) videoor(:,j)=getframe; end figure(75); videoar= moviein(T); for j=1:T imshow(abs(zc(:,:,j)),[]) videoar(:,j)=getframe; end figure(76); videorr = moviein(T); for j=1:T imshow(abs(zr(:,:,j)),[]) videorr(:,j)=getframe; end movie2avi(videoor,['videooriginale','.avi'],'fps',10,'compression','none'); movie2avi(videoar,['videoaliasing','.avi'],'fps',10,'compression','none'); movie2avi(videorr,['videoricostruito','.avi'],'fps',10,'compression','none'); U=U/(30*256*256); zr=zr/(256*256*30); %errore complessivo ertot=sum(sum(sum((abs(U)-abs(zr)).^2))); %errore relativo ai vari frame
er=sum(sum((abs(U)-abs(zr)).^2),2); for t=1:30
e1(t)=er(1,1,t); errorerum(t)=e1(t); end
figure(77); plot(errorerum);
SOMMA DEL RUMORE AL MODELLO, APPLICAZIONE DEL METODO UNFOLD CON CAMPIONAMENTO NON UNIFORME E STIMA DEGLI ERRORI ASSOLUTO E
RELATIVO.
%Rappresentazione in asse corto della fetta media del cuore.
%Vista orizzontale:miocardio(corona esterna),ventricolo sinistro(area interna) % e ventricolo destro(mezza luna laterale)
clear all; clc; close all;
%intervallo R-R del ciclo cardiaco caratterizzato %da 30 frame complessivi
w=zeros(256,256); m=zeros(256,256,30); c=[150,127]; C=[127,127]; A=[97,75]; R1=50; R2=75;
% % fase sistolica caratterizzata dai primi 12 frame for t=1:4
for i=1:256 for j=1:256
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R1 m(i,j,t)=214; end end end end R3=[47,45.7,43.2,41.5,38.4,36.1,34.3,29]; R2=75; for i=1:256
for j=1:256 for t=5:12 for l=1:8 l=t-4;
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73; end if sqrt( (j-c(1)).^2+(i-c(2)).^2)<R3(l) m(i,j,t)=214; end end end end end
% % fase diastolica caratterizzata dai rimanenti 18 frame R4=[30.3,32.5,33.7,35,36.3,37.7,39,40.5,42.2,43.8,44.9,46.8] R2=75; for i=1:256 for j=1:256 for t=13:24 for l=1:12 l=t-12;
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73; end if sqrt( (j-c(1)).^2+(i-c(2)).^2)<R4(l) m(i,j,t)=214; end end end end end for t=25:30 for i=1:256 for j=1:256
if (j-C(1)).^2./A(1).^2+ (i-C(2)).^2 ./A(2).^2 < 1 m(i,j,t)=214; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R2 m(i,j,t)=73; end if sqrt( (j-c(1)).^2+ (i-c(2)).^2 ) < R1 m(i,j,t)=214;
end end end end
% visualizzazione di un immagine reale P=256; Q=256; I=zeros(P,Q); I=dicomread('SAFIESTA-005-128-8619.dcm'); figure(37); imagesc(I);
% si considera adesso una sottomatrice dell'immagine,parte periferica in alto , %e se ne stima la deviazione standard rappresentante il contributo di rumore rispetto %all'informazione contenuta nella parte centrale dell'immagine che per noi
%è quella di interesse A=zeros(38,40); for p=2:40 for q=70:110 A(p,q)=I(p,q); end end f=std(A); g=std(f); l=1.53.*g;
% si calcola,nella zona centrale dell'immagine,il valor medio per noi % informazione sul segnale di interesse
B=zeros(50,70); for p=100:150 for q=80:150 B(p,q)=I(p,q); end end b=mean(B); e=mean(b);
%si stima infine il rapporto segnale rumore comprensivo del termine %correttivo pari a 1.53 relativo al rumore di risonanza magnetica(rumore %Riceano)
SNR=e/l;
% generazione di una matrice di rumore bianco gaussiano delle stesse dim. delle immagini %analizzate con deviazione standard calcolata precedentemente
figure(38); imagesc(A2);
% somma del rumore ai vari frame del fantoccio z=zeros(256,256); U=zeros(256,256,30); U=m+l*randn(256,256,30); figure(44); z=U(:,:,1); colormap(gray); imagesc(z); figure(45); z=U(:,:,2); colormap(gray); imagesc(z); figure(46); z=U(:,:,3); colormap(gray); imagesc(z); figure(47); z=U(:,:,4); colormap(gray); imagesc(z); figure(48); z=U(:,:,5); colormap(gray); imagesc(z); figure(49); z=U(:,:,6); colormap(gray); imagesc(z); figure(50); z=U(:,:,7); colormap(gray); imagesc(z); figure(51); z=U(:,:,8); colormap(gray); imagesc(z); figure(52); z=U(:,:,9); colormap(gray); imagesc(z);
figure(53); z=U(:,:,10); colormap(gray); imagesc(z); figure(54); z=U(:,:,11); colormap(gray); imagesc(z); figure(55); z=U(:,:,12); colormap(gray); imagesc(z); figure(56); z=U(:,:,13); colormap(gray); imagesc(z); figure(57); z=U(:,:,14); colormap(gray); imagesc(z); figure(58); z=U(:,:,15); colormap(gray); imagesc(z); figure(59); z=U(:,:,16); colormap(gray); imagesc(z); figure(60); z=U(:,:,17); colormap(gray); imagesc(z); figure(61); z=U(:,:,18); colormap(gray); imagesc(z); figure(62); z=U(:,:,19); colormap(gray); imagesc(z); figure(63);
z=U(:,:,20); colormap(gray); imagesc(z); figure(64); z=U(:,:,21); colormap(gray); imagesc(z); figure(65); z=U(:,:,22); colormap(gray); imagesc(z); figure(66); z=U(:,:,23); colormap(gray); imagesc(z); figure(67); z=U(:,:,24); colormap(gray); imagesc(z); figure(68); z=U(:,:,25); colormap(gray); imagesc(z); figure(69); z=U(:,:,26); colormap(gray); imagesc(z); figure(70); z=U(:,:,27); colormap(gray); imagesc(z); figure(71); z=U(:,:,28); colormap(gray); imagesc(z); figure(72); z=U(:,:,29); colormap(gray); imagesc(z); figure(73); z=U(:,:,30); colormap(gray);
imagesc(z);
% trasformazione nello spazio k Z=fftshift(fft2(U));
%si esegue adesso,sui vari frame del fantoccio, un sottocampionamento non uniforme più fitto %nella zona centrale di interesse e più rado in quelle periferiche
fs=2; f=0; L=256; N=256; T=30; S = zeros (L,N,T); for t = 1:T for i=t:8:54 S(i,:,t)=1; end for i=55+t:2:225 S(i,:,t)=1; end for i=226+t:8:256 S(i,:,t)=1; end Zc(:,:,t)=S(:,:,t).*Z(:,:,t); end
% trasformazione nel dominio spaziale zc=ifft2(ifftshift(Zc));
% trasformazione nel dominio frequenziale za = zc;
Za = fft(za,[],3);
%filtraggio passabasso per eliminare l'aliasing Zr(:,:,1:ceil(T/fs/3))=Za(:,:,1:ceil(T/fs/3)); Zr(:,:,T-floor(T/fs/3)+1:T)=Za(:,:,T-floor(T/fs/3)+1:T); zr = ifft(Zr,[],3); % creazione video figure(74); videoor = moviein(T); for j=1:T imshow(U(:,:,j),[]) videoor(:,j)=getframe; end figure(75); videoar = moviein(T);
for j=1:T imshow(abs(zc(:,:,j)),[]) videoar(:,j)=getframe; end figure(76); videorr = moviein(T); for j=1:T imshow(abs(zr(:,:,j)),[]) videorr(:,j)=getframe; end figure(77); for d=1:5 videoor=moviein(t); for c=1:30 imshow(U(:,:,c),[]) videoor(:,c)=getframe; end end figure(78); for d=1:5 videoar=moviein(t); for c=1:30 imshow(abs(zc(:,:,c)),[]) videoar(:,c)=getframe; end end figure(79); for d=1:5 videorr=moviein(t); for c=1:30 imshow(abs(zr(:,:,c)),[]) videorr(:,c)=getframe; end end movie2avi(videoor,['videooriginale','.avi'],'fps',10,'compression','none'); movie2avi(videoar,['videoaliasing','.avi'],'fps',10,'compression','none'); movie2avi(videorr,['videoricostruito','.avi'],'fps',10,'compression','none'); % si stima sull'immagine reale il livello di grigio del ventricolo sx R=zeros(256,256); for p=120:135 for q=120:135 R(p,q)=I(p,q); end end figure(80);
imagesc(R); h=zeros(15,15); for i=1:15 for j=1:15 for p=120:135 for q=120:135 h(i,j)=R(p,q); end end end end o=mean(h); livgrigvent=mean(o);
% si stima sull'immagine reale il livello di grigio del miocardio B=zeros(256,256); for p=120:150 for q=148:160 B(p,q)=I(p,q); end end figure(81); imagesc(B); h1=zeros(30,12); for i=1:30 for j=1:12 for p=120:150 for q=148:160 h1(i,j)=B(p,q); end end end end o1=mean(h1); livgrigmio=mean(o1); end U=U/(30*256*256); zr=zr/(256*256*30); %errore complessivo ertot=sum(sum(sum((abs(U)-abs(zr)).^2))); %errore relativo ai vari frames
er=sum(sum((abs(U)-abs(zr)).^2),2); for t=1:30 e1(t)=er(1,1,t); errorerum(t)=e1(t); end figure(77); plot(errorerum);
APPLICAZIONE DEL METODO UNFOLD AD UNA SEQUENZA DI IMMAGINI REALI CON CAMPIONAMENTO UNIFORME.
% Prove del metodo unfold su una sequenza di trenta immagini reali con uso % di campionamento uniforme clear all; clc; close all; M = 256; N = 256; T = 30; fs=2;
% Presentazione dei 30 frames v=zeros(M,N,T);
for i=1:T
j=num2str(mod(i,30)+1,'%02g');
v(:,:,i) = dicomread(['4C-004-0',j,'-7713.dcm']); end;
% trasformazione nello spazio k V=fftshift(fft2(v));
%si esegue adesso un sottocampionamento uniforme sui vari frame fs=2; L=256; N=256; T=30; S = zeros (L,N,T); for t = 1:T for i=t:2:256 S(i,:,t)=1; end Vc(:,:,t)=S(:,:,t).*V(:,:,t); end
% trasformazione nel dominio spaziale vc=ifft2(ifftshift(Vc));
% trasformazione nel dominio frequenziale dei singoli punti del vettore zpad=30;
va = vc;
Va = fft(va,zpad,3);
% filtraggio passabasso per eliminare l'aliasing Ve= zeros(L,N,T); h=fftshift(hanning(30)); for t=1:T Ve(:,:,t)=Va(:,:,t)*h(t); end ve = ifft(Ve,[],3); %creazione video figure(1); videoo = moviein(T); for j=1:T imshow(v(:,:,j),[]) videoo(:,j)=getframe; end figure(2); videoa = moviein(T); for j=1:T imshow(abs(vc(:,:,j)),[]) videoa(:,j)=getframe; end figure(3); videor = moviein(T); for j=1:T imshow(abs(ve(:,:,j)),[]) videor(:,j)=getframe; end movie2avi(videoo,['videooriginale','.avi'],'fps',10,'compression','none'); movie2avi(videoa,['videoaliasing','.avi'],'fps',10,'compression','none'); movie2avi(videor,['videoricostruito','.avi'],'fps',10,'compression','none'); v=v/(256*256*30); ve=ve/(256*256*30);
%errore complessivo
errunfoldtot=sum(sum(sum((abs(v)-abs(ve)).^2))); %errore relativo ai vari frames
errunf=sum(sum((abs(v)-abs(ve)).^2),2); for t=1:30 e(t)=errunf(1,1,t); erroreunf(t)=e(t); end figure(4); plot(erroreunf);
APPLICAZIONE DEL METODO UNFOLD AD UNA SEQUENZA DI IMMAGINI REALI CON CAMPIONAMENTO NON UNIFORME
% Prove del metodo unfold su una sequenza di trenta immagini reali con uso % di campionamento non uniforme
clear all; clc; close all; M = 256; N = 256; T = 30; fs=2;
% Presentazione dei 30 frames v=zeros(M,N,T);
for i=1:T
j=num2str(mod(i,30)+1,'%02g');
v(:,:,i) = dicomread(['4C-004-0',j,'-7713.dcm']); end;
% trasformazione nello spazio k V=fftshift(fft2(v));
%si esegue adesso un sottocampionamento non uniforme sui vari frames fs=2; L=256; N=256; T=30; S = zeros (L,N,T); for t = 1:T
for i=t:8:54 S(i,:,t)=1; end for i=55+t:2:225 S(i,:,t)=1; end for i=226+t:8:256 S(i,:,t)=1; end Vc(:,:,t)=S(:,:,t).*V(:,:,t); end
% trasformazione nel dominio spaziale vc=ifft2(ifftshift(Vc));
% trasformazione nel dominio frequenziale dei singoli punti del vettore zpad=30;
va = vc;
Va = fft(va,zpad,3);
% filtraggio passabasso per eliminare l'aliasing Ve= zeros(L,N,T); h=fftshift(hanning(30)); for t=1:T Ve(:,:,t)=Va(:,:,t)*h(t); end ve = ifft(Ve,[],3); %creazione video figure(1); videoo = moviein(T); for j=1:T imshow(v(:,:,j),[]) videoo(:,j)=getframe; end figure(2); videoa = moviein(T); for j=1:T imshow(abs(vc(:,:,j)),[]) videoa(:,j)=getframe;
end figure(3); videor = moviein(T); for j=1:T imshow(abs(ve(:,:,j)),[]) videor(:,j)=getframe; end movie2avi(videoo,['videooriginale','.avi'],'fps',10,'compression','none'); movie2avi(videoa,['videoaliasing','.avi'],'fps',10,'compression','none'); movie2avi(videor,['videoricostruito','.avi'],'fps',10,'compression','none'); v=v/(256*256*30); ve=ve/(256*256*30); %errore complessivo errunfoldtot=sum(sum(sum((abs(v)-abs(ve)).^2))); %errore relativo ai vari frames
errunf=sum(sum((abs(v)-abs(ve)).^2),2); for t=1:30 e(t)=errunf(1,1,t); erroreunf(t)=e(t); end figure(4); plot(erroreunf);
SOMMA DEL RUMORE ALLA SEQUENZA DI IMMAGINI REALI, APPLICAZIONE DEL METODO UNFOLD CON CAMPIONAMENTO UNIFORME E STIMA DEGLI
ERRORI ASSOLUTO E RELATIVO.
clear all; clc; close all; M = 256; N = 256; T = 30; fs=2; w=zeros(256,256);
% Presentazione dei 30 frames v=zeros(M,N,T);
for i=1:T
v(:,:,i) = dicomread(['4C-004-0',j,'-7713.dcm']); end; P=256; Q=256; I=zeros(P,Q); I=dicomread('SAFIESTA-005-128-8619.dcm'); figure(37); imagesc(I);
% si considera adesso una sottomatrice dell'immagine,parte periferica in alto,
%e se ne stima la deviazione standard rappresentante il contributo di rumore rispetto %all'informazione contenuta nella parte centrale dell'immagine che per noi
%è quella di interesse A=zeros(38,40); for p=2:40 for q=70:110 A(p,q)=I(p,q); end end f=std(A(:)); %g=std(f); l=1.53.*f;
% si calcola,nella zona centrale dell'immagine,il valor medio per noi % informazione sul segnale di interesse
B=zeros(50,70); for p=100:150 for q=80:150 B(p,q)=I(p,q); end end b=mean(B); e=mean(b);
%si stima infine il rapporto segnale rumore comprensivo del termine %correttivo pari a 1.53 relativo al rumore di risonanza magnetica(rumore %Riciano)
SNR=e/l;
% generazione di una matrice di rumore bianco gaussiano delle stesse dim. delle immagini %analizzate con deviazione standard calcolata precedentemente
A2=l*randn(256,256); figure(38);
% somma del rumore ai vari frame del fantoccio z=zeros(256,256); U=zeros(256,256,30); U=v+l*randn(256,256,30); figure(44); z=U(:,:,1); colormap(gray); imagesc(z); figure(45); z=U(:,:,2); colormap(gray); imagesc(z); figure(46); z=U(:,:,3); colormap(gray); imagesc(z); figure(47); z=U(:,:,4); colormap(gray); imagesc(z); figure(48); z=U(:,:,5); colormap(gray); imagesc(z); figure(49); z=U(:,:,6); colormap(gray); imagesc(z); figure(50); z=U(:,:,7); colormap(gray); imagesc(z); figure(51); z=U(:,:,8); colormap(gray); imagesc(z); figure(52); z=U(:,:,9); colormap(gray); imagesc(z);
figure(53); z=U(:,:,10); colormap(gray); imagesc(z); figure(54); z=U(:,:,11); colormap(gray); imagesc(z); figure(55); z=U(:,:,12); colormap(gray); imagesc(z); figure(56); z=U(:,:,13); colormap(gray); imagesc(z); figure(57); z=U(:,:,14); colormap(gray); imagesc(z); figure(58); z=U(:,:,15); colormap(gray); imagesc(z); figure(59); z=U(:,:,16); colormap(gray); imagesc(z); figure(60); z=U(:,:,17); colormap(gray); imagesc(z); figure(61); z=U(:,:,18); colormap(gray); imagesc(z); figure(62); z=U(:,:,19); colormap(gray); imagesc(z); figure(63); z=U(:,:,20);
colormap(gray); imagesc(z); figure(64); z=U(:,:,21); colormap(gray); imagesc(z); figure(65); z=U(:,:,22); colormap(gray); imagesc(z); figure(66); z=U(:,:,23); colormap(gray); imagesc(z); figure(67); z=U(:,:,24); colormap(gray); imagesc(z); figure(68); z=U(:,:,25); colormap(gray); imagesc(z); figure(69); z=U(:,:,26); colormap(gray); imagesc(z); figure(70); z=U(:,:,27); colormap(gray); imagesc(z); figure(71); z=U(:,:,28); colormap(gray); imagesc(z); figure(72); z=U(:,:,29); colormap(gray); imagesc(z); figure(73); z=U(:,:,30); colormap(gray);
imagesc(z);
% trasformazione nello spazio k Z=fftshift(fft2(U));
%si esegue adesso un sottocampionamento uniforme sui vari frame %(le matrici ad essi relative hanno come elementi la somma degli %valori random della matrice di rumore gaussiano e di quelli %delle matrici del fantoccio)
fs=2; L=256; N=256; T=30; S = zeros (L,N,T); for t = 1:T for i=t:2:256 S(i,:,t)=1; end Zc(:,:,t)=S(:,:,t).*Z(:,:,t); end
% trasformazione nel dominio spaziale zc=ifft2(ifftshift(Zc));
% trasformazione nel dominio frequenziale za = zc; zpad=30; Za = fft(za,zpad,3); Zr = zeros(L,N,T); h=fftshift(hanning(30)); for t=1:zpad Zr(:,:,t)=Za(:,:,t)*h(t); end zr = ifft(Zr,[],3);
%filtraggio passabasso per eliminare l'aliasing %Zr(:,:,1:ceil(T/fs/2))=Za(:,:,1:ceil(T/fs/2)); %Zr(:,:,T-floor(T/fs/2)+1:T)=Za(:,:,T-floor(T/fs/2)+1:T); %zr = ifft(Zr,[],3); % creazione video figure(74); videoor = moviein(T); for j=1:T
imshow(U(:,:,j),[]) videoor(:,j)=getframe; end figure(75); videoar= moviein(T); for j=1:T imshow(abs(zc(:,:,j)),[]) videoar(:,j)=getframe; end figure(76); videorr = moviein(T); for j=1:T imshow(abs(zr(:,:,j)),[]) videorr(:,j)=getframe; end movie2avi(videoor,['videooriginale','.avi'],'fps',10,'compression','none'); movie2avi(videoar,['videoaliasing','.avi'],'fps',10,'compression','none'); movie2avi(videorr,['videoricostruito','.avi'],'fps',10,'compression','none'); U=U/(30*256*256); zr=zr/(256*256*30); %errore complessivo ertot=sum(sum(sum((abs(U)-abs(zr)).^2))); %errore relativo ai vari frame
er=sum(sum((abs(U)-abs(zr)).^2),2); for t=1:30 e1(t)=er(1,1,t); errorerum(t)=e1(t); end figure(77); plot(errorerum);
SOMMA DEL RUMORE ALLA SEQUENZA DI IMMAGINI REALI, APPLICAZIONE DEL METODO UNFOLD CON CAMPIONAMENTO NON UNIFORME E STIMA
DEGLI ERRORI ASSOLUTO E RELATIVO.
clear all; clc; close all;
M = 256; N = 256; T = 30; fs=2;
% Presentazione dei 30 frames v=zeros(M,N,T);
for i=1:T
j=num2str(mod(i,30)+1,'%02g');
v(:,:,i) = dicomread(['4C-004-0',j,'-7713.dcm']); end;
% visualizzazione di un immagine reale P=256; Q=256; I=zeros(P,Q); I=dicomread('SAFIESTA-005-128-8619.dcm'); figure(37); imagesc(I);
% si considera adesso una sottomatrice dell'immagine,parte periferica in alto , %e se ne stima la deviazione standard rappresentante il contributo di rumore rispetto %all'informazione contenuta nella parte centrale dell'immagine che per noi
%è quella di interesse A=zeros(38,40); for p=2:40 for q=70:110 A(p,q)=I(p,q); end end f=std(A(:)); l=1.53.*f;
% si calcola,nella zona centrale dell'immagine,il valor medio per noi % informazione sul segnale di interesse
B=zeros(50,70); for p=100:150 for q=80:150 B(p,q)=I(p,q); end end b=mean(B); e=mean(b);
%si stima infine il rapporto segnale rumore comprensivo del termine %correttivo pari a 1.53 relativo al rumore di risonanza magnetica(rumore %Riceano)
SNR=e/l;
% generazione di una matrice di rumore bianco gaussiano delle stesse dim. delle immagini %analizzate con deviazione standard calcolata precedentemente
A2=l*randn(256,256); figure(38);
imagesc(A2);
% somma del rumore ai vari frame del fantoccio z=zeros(256,256); U=zeros(256,256,30); U=v+l*randn(256,256,30); figure(44); z=U(:,:,1); colormap(gray); imagesc(z); figure(45); z=U(:,:,2); colormap(gray); imagesc(z); figure(46); z=U(:,:,3); colormap(gray); imagesc(z); figure(47); z=U(:,:,4); colormap(gray); imagesc(z); figure(48); z=U(:,:,5); colormap(gray); imagesc(z); figure(49); z=U(:,:,6); colormap(gray); imagesc(z); figure(50); z=U(:,:,7); colormap(gray); imagesc(z); figure(51); z=U(:,:,8);
colormap(gray); imagesc(z); figure(52); z=U(:,:,9); colormap(gray); imagesc(z); figure(53); z=U(:,:,10); colormap(gray); imagesc(z); figure(54); z=U(:,:,11); colormap(gray); imagesc(z); figure(55); z=U(:,:,12); colormap(gray); imagesc(z); figure(56); z=U(:,:,13); colormap(gray); imagesc(z); figure(57); z=U(:,:,14); colormap(gray); imagesc(z); figure(58); z=U(:,:,15); colormap(gray); imagesc(z); figure(59); z=U(:,:,16); colormap(gray); imagesc(z); figure(60); z=U(:,:,17); colormap(gray); imagesc(z); figure(61); z=U(:,:,18); colormap(gray); imagesc(z);
figure(62); z=U(:,:,19); colormap(gray); imagesc(z); figure(63); z=U(:,:,20); colormap(gray); imagesc(z); figure(64); z=U(:,:,21); colormap(gray); imagesc(z); figure(65); z=U(:,:,22); colormap(gray); imagesc(z); figure(66); z=U(:,:,23); colormap(gray); imagesc(z); figure(67); z=U(:,:,24); colormap(gray); imagesc(z); figure(68); z=U(:,:,25); colormap(gray); imagesc(z); figure(69); z=U(:,:,26); colormap(gray); imagesc(z); figure(70); z=U(:,:,27); colormap(gray); imagesc(z); figure(71); z=U(:,:,28); colormap(gray); imagesc(z); figure(72);
z=U(:,:,29); colormap(gray); imagesc(z); figure(73); z=U(:,:,30); colormap(gray); imagesc(z);
% trasformazione nello spazio k Z=fftshift(fft2(U));
%si esegue adesso,sui vari frame del fantoccio, un sottocampionamento non uniforme più fitto %nella zona centrale di interesse e più rado in quelle periferiche
fs=2; f=0; L=256; N=256; T=30; S = zeros (L,N,T); for t = 1:T for i=t:8:54 S(i,:,t)=1; end for i=55+t:2:225 S(i,:,t)=1; end for i=226+t:8:256 S(i,:,t)=1; end Zc(:,:,t)=S(:,:,t).*Z(:,:,t); end
% trasformazione nel dominio spaziale zc=ifft2(ifftshift(Zc));
% trasformazione nel dominio frequenziale za = zc;
Za = fft(za,[],3);
%filtraggio passabasso per eliminare l'aliasing Zr(:,:,1:ceil(T/fs/3))=Za(:,:,1:ceil(T/fs/3)); Zr(:,:,T-floor(T/fs/3)+1:T)=Za(:,:,T-floor(T/fs/3)+1:T); zr = ifft(Zr,[],3); % creazione video figure(74); videoor = moviein(T);
for j=1:T imshow(U(:,:,j),[]) videoor(:,j)=getframe; end figure(75); videoar = moviein(T); for j=1:T imshow(abs(zc(:,:,j)),[]) videoar(:,j)=getframe; end figure(76); videorr = moviein(T); for j=1:T imshow(abs(zr(:,:,j)),[]) videorr(:,j)=getframe; end figure(77); for d=1:5 videoor=moviein(t); for c=1:30 imshow(U(:,:,c),[]) videoor(:,c)=getframe; end end figure(78); for d=1:5 videoar=moviein(t); for c=1:30 imshow(abs(zc(:,:,c)),[]) videoar(:,c)=getframe; end end figure(79); for d=1:5 videorr=moviein(t); for c=1:30 imshow(abs(zr(:,:,c)),[]) videorr(:,c)=getframe; end end movie2avi(videoor,['videooriginale','.avi'],'fps',10,'compression','none'); movie2avi(videoar,['videoaliasing','.avi'],'fps',10,'compression','none'); movie2avi(videorr,['videoricostruito','.avi'],'fps',10,'compression','none'); % si stima sull'immagine reale il livello di grigio del ventricolo sx
R=zeros(256,256); for p=120:135 for q=120:135 R(p,q)=I(p,q); end end figure(80); imagesc(R); h=zeros(15,15); for i=1:15 for j=1:15 for p=120:135 for q=120:135 h(i,j)=R(p,q); end end end end o=mean(h); livgrigvent=mean(o);
% si stima sull'immagine reale il livello di grigio del miocardio B=zeros(256,256); for p=120:150 for q=148:160 B(p,q)=I(p,q); end end figure(81); imagesc(B); h1=zeros(30,12); for i=1:30 for j=1:12 for p=120:150 for q=148:160 h1(i,j)=B(p,q); end end end end o1=mean(h1); livgrigmio=mean(o1); end
U=U/(30*256*256); zr=zr/(256*256*30); %errore complessivo
ertot=sum(sum(sum((abs(U)-abs(zr)).^2))); %errore relativo ai vari frames
er=sum(sum((abs(U)-abs(zr)).^2),2); for t=1:30 e1(t)=er(1,1,t); errorerum(t)=e1(t); end figure(77); plot(errorerum);