respuestafourier calcula la respuesta no lineal cuando la transformacion lineal es Fourier USO: r = respuestafourier(bloque,lcuan,H,k1,k2);
0001 function r=respuestafourier(bloque,lcuan,H,k1,k2); 0002 0003 % respuestafourier calcula la respuesta no lineal cuando la transformacion 0004 % lineal es Fourier 0005 % 0006 % USO: r = respuestafourier(bloque,lcuan,H,k1,k2); 0007 0008 0009 % rectificación y paso a contraste 0010 0011 %cub=2*abs(cub)/abs(cub(1,1)); 0012 0013 0014 0015 M=lcuan; 0016 0017 ang = linspace(0,pi/2,5); 0018 v = [reverse(cos(ang)) ones(1,M-2*5) cos(ang)]; 0019 pesos = v'*v; 0020 0021 observado2 = bloque.*pesos + (1-pesos).*mean(mean(bloque)); 0022 0023 0024 %cub=fft2(0.001*(observado2-mean(observado2(:)))/M^2); 0025 0026 cub = fft2(observado2);cub = 2*cub/cub(1,1);cub = abs(cub); 0027 0028 cub(1,1)=0; 0029 0030 cub=fftshift(cub); 0031 0032 M=size(cub,1); 0033 0034 % zigzageo 0035 0036 cublin=zigzag(cub); 0037 0038 0039 cubcub=cublin.^2; 0040 0041 % Modelo no lineal con interacción con los vecinos (H no es diagonal) 0042 0043 num = k1.*cubcub; 0044 den = k2 + H*cubcub; 0045 0046 %r=k1/20+num./den; 0047 0048 r=num./den; 0049 0050 0051 %num = dezigzag(num); 0052 %den = dezigzag(den); 0053 %num(M/2+1,M/2+1)=0; 0054 %den(M/2+1,M/2+1)=0; 0055 %figure,subplot(1,3,1),colormap(gray);imagesc(num.^0.3);title('Numerador');axis image 0056 %subplot(1,3,2),colormap(gray);imagesc(den.^0.3);title('Denominador');axis image 0057 %subplot(1,3,3),colormap(gray);imagesc(dezigzag(r).^0.3);title('Respuesta');axis image 0058 %pause(0.5) 0059 %close 0060 0061 r=dezigzag(r); 0062 0063 0064 %subplot(1,2,1);colormap(Gray);imagesc(r.^0.3);axis square 0065 %subplot(1,2,2);colormap(Gray);imagesc(dezigzag(cub).^0.2);axis square 0066 %pause;close;