Está en la página 1de 5

Una imagen es una matriz mxn con dimensiones f(x,y), compuesta de un

numero finito de elementos, cada elemento con un valor particular


llamados pixeles.

A continuación, al graficar las frecuencias, con la función linspace que


genera un vector espaciado linealmente, especificamos el vector de las
frecuencias sinusoidales. Con números arbitrarios.
En la variable sinefreq, guardaremos un vector de con cincuenta datos que
irán desde el intervalo de 0.0001 hasta 0.2:

% specify vector of sine frequencies


sinefreq = linspace(.0001,.2,50); % arbitrary units

como dato general tendremos la fase de la señal, con un ángulo recto que
nos servirá para graficar la señal

% leave this fixed for now


sinephas = pi/2;

los datos para la señal de onda, crearemos un vector llamado lims donde
almacenará los datos expuestos, en una nueva variable crearemos una
matriz x,y donde almacenaremos datos en 2D, creando una cuadricula con
los datos de lims, con la función ndgrid, creamos la cuadrícula en 2D.
en xp creamos nuestra señal.
% sine wave initializations
lims = [-91 91];
[x,y] = ndgrid(lims(1):lims(2),lims(1):lims(2));
xp = x*cos(sinephas) + y*sin(sinephas);
clim = [0 1000];

Como sabemos el color de una imagen representa un conjunto de datos, las


imágenes expuestas a continuación son el resultado de llamar a los datos
de la matriz (x,y), en tal caso la matriz esta en 2D, y al tomar los
valores de la fila x de números randómicos obtendremos valores entre 0 y
1 dependiendo de la longitud de x, así representando cada combinación un
color de pixel diferente.

% setup plot
figure(1), clf
subplot(121)
imageh = imagesc(rand(length(x)));
axis square, axis off, axis xy
title('Space domain')

subplot(222)
amph = imagesc(rand(length(x)));
axis square, axis off, axis xy
set(gca,'xlim',[lims(2)-30 lims(2)+30],'ylim',[lims(2)-30
lims(2)+30],'clim',clim)
title('Amplitude spectrum')

subplot(224)
phaseh = imagesc(rand(length(x)));
axis square, axis off, axis xy
set(gca,'xlim',[lims(2)-30 lims(2)+30],'ylim',[lims(2)-30 lims(2)+30])
title('Phase spectrum')

Al ejecutarse el programa nos aparecerá en forma de video las imágenes


graficadas en 2D por el ciclo for que observaremos a continuación

La variable img guarda el valor del cálculo de la onda senosoidal, donde


en imgX aplicamos la fft-2D, de ahí partiremos a extraer los datos para
espectros de potencia y fase de la gráfica.
La onda senosoidal se unirá con la señal randomica antes expuesta, la
amplitud de valores randomics con la potencia de la fft-2D y la fase con
valores randomicos se unirá con la fase en 2D

Para las gráficas de las fases utilizamos un ciclo for

% now loop over phases


for si=1:length(sinefreq)

% compute sine wave


img = sin( 2*pi*sinefreq(si)*xp );

% 2D FFT and extract power and phase spectra


imgX = fftshift(fft2(img));

powr2 = abs(imgX);
phas2 = angle(imgX);

% update plots
set(imageh,'CData',img);
set(amph ,'CData',powr2);
set(phaseh,'CData',phas2);

pause(.2)
end

An image is an mxn matrix with dimensions f (x, y), composed of a finite


number of elements, each element with a particular value called
pixels.\medskip

Next, when plotting the frequencies, with the linspace function that
generates a linearly spaced vector, we specify the vector of the
sinusoidal frequencies. With arbitrary numbers.
In the sinefreq variable, we will save a vector with fifty data that will
range from 0.0001 to 0.2,as a general data we will have the phase of the
signal, with a right angle that will serve to graph the signal:
\begin{figure} [h!]
\centering
\includegraphics[scale=0.3]{a.jpg}
\caption{}
\end{figure}

\end{methodology}
A continuación, al graficar las fases, con la función linspace que genera
un vector espaciado linealmente, especificamos el vector de las phases
sinusoidales.
En la variable sinefreq le daremos un valor de 0.05 unidades arbitrarias.

% specify vector of sine phases


sinephas = linspace(0,pi,50);

% leave this fixed for now


sinefreq = .05; % arbitrary units

% sine wave initializations


lims = [-91 91];
[x,y] = ndgrid(lims(1):lims(2),lims(1):lims(2));
clim = [0 1000];

% setup plot
figure(2), clf
subplot(121)
imageh = imagesc(rand(length(x)));
axis square, axis off, axis xy
title('Space domain')

subplot(222)
amph = imagesc(rand(length(x)));
axis square, axis off, axis xy
set(gca,'xlim',[lims(2)-30 lims(2)+30],'ylim',[lims(2)-30
lims(2)+30],'clim',clim)
title('Amplitude spectrum')

subplot(224)
phaseh = imagesc(rand(length(x)));
axis square, axis off, axis xy
set(gca,'xlim',[lims(2)-30 lims(2)+30],'ylim',[lims(2)-30 lims(2)+30])
title('Phase spectrum')

En este caso solo jugaremos con las señales en el ciclo ‘for’. Para las
gráficas, mostramos cada señal individualmente. Con CData se definen datos de imagen
indexados. Cada elemento define un color para un píxel de la imagen. Y con set guardamos la
imagen en la propiedad CData como podemos observar a continuación.

% now loop over phases


for si=1:length(sinephas)
% x-coordinate values (based on rotating x and y)
xp = x*cos(sinephas(si)) + y*sin(sinephas(si));

% compute 2D sine patch


img = sin( 2*pi*sinefreq*xp );

% 2D FFT and extract power and phase spectra


imgX = fftshift(fft2(img));
powr2 = abs(imgX);
phas2 = angle(imgX);

% update plots
set(imageh,'CData',img);
set(amph ,'CData',powr2);
set(phaseh,'CData',phas2);

pause(.2)
end

Para las gráficas, mostramos cada señal individualmente. Con CData se definen datos de imagen
indexados. Cada elemento define un color para un píxel de la imagen. Y con set guardamos la
imagen en la propiedad CData como podemos observar a continuación.

axes(handles.axes9)
subplot(244)
plot(xp)
axis square, axis off, axis xy

axes(handles.axes7)
subplot(245)
plot(img)
axis square, axis off, axis xy

axes(handles.axes4)
subplot(246)
plot(powr2)
axis square, axis off, axis xy
%% physical location

lims = [-91 91];


[x,y] = ndgrid(lims(1):lims(2),lims(1):lims(2));
width = 20; % width of gaussian

centlocs = linspace(-80,80,50);

% setup plot
figure(3), clf
subplot(121)
imageh = imagesc(rand(length(x)));
axis square, axis off, axis xy
title('Space domain')

subplot(222)
amph = imagesc(rand(length(x)));
axis square, axis off, axis xy
title('Amplitude spectrum')
set(gca,'clim',[0 200])

subplot(224)
phaseh = imagesc(rand(length(x)));
set(gca,'xlim',[lims(2)-30 lims(2)+30],'ylim',[lims(2)-30 lims(2)+30])
axis square, axis off, axis xy
title('Phase spectrum')

% now loop over locations (center locations)

También podría gustarte