Escolar Documentos
Profissional Documentos
Cultura Documentos
PROYECTO FINAL
ANALISIS DE SEÑALES
TRANSFORMADA DE FOURIER
La transformada de Fourier, denominada así por Joseph Fourier, es una transformación matemática
empleada para transformar señales entre el dominio del tiempo (o espacial) y el dominio de la
frecuencia, que tiene muchas aplicaciones en la física y la ingeniería. Es reversible, siendo capaz de
transformarse en cualquiera de los dominios al otro. El propio término se refiere tanto a la
operación de transformación como a la función que produce.
En el caso de una función periódica en el tiempo, la transformada de Fourier se puede simplificar
para el cálculo de un conjunto discreto de amplitudes complejas, llamado coeficientes de las series
de Fourier. Ellos representan el espectro de frecuencia de la señal del dominio-tiempo original.
La transformada de Fourier así definida goza de una serie de propiedades de continuidad que
garantizan que puede extenderse a espacios de funciones mayores e incluso a espacios de funciones
generalizadas.
Sus aplicaciones son muchas, en áreas de la ciencia e ingeniería como la física, la teoría de los
números, la combinatoria, el procesamiento de señales (electrónica), la teoría de la probabilidad, la
estadística, la óptica, la propagación de ondas y otras áreas. En procesamiento de señales la
transformada de Fourier suele considerarse como la descomposición de una señal en componentes
de frecuencias diferentes, es decir corresponde al espectro de frecuencias de la señal.
Para transformar una función del dominio temporal al frecuencial, es necesario hacer la
transformada de Fourier de dicha función. En el caso de una señal contínua la
transformada recibe el nombre de Transformada de Fourier mientras que si es de caracter
discreto o digital, se le conoce como DFT (Discrete Fourier Transform).
CODIGO MATLAB:
audio = audioread('audio.wav');
Fs = 16000;
L = length(audio);
NFFT = 2^nextpow2(L);
Y = fft(audio, NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
plot(f, 2*abs(Y(1:NFFT/2+1);
FIGURA 1. SEÑAL ANALÓGICA EN FUNCIÓN Y LA FRECUENCIA
subplot(2,1,1) % se utiliza el comando subplot para hacer graficos con mas de un sector
plot(data); % graficanado la señal en el dominio de los samples de tiempo
subplot(2,1,2)
a=abs(fft(data)); % calculamos la FFT
plot(a(1:end/2)); % graficando la mitad de la señal en el dominio de los samples de la frecuencia
void setup() {
// inicializar puerto serie
Serial.begin(9600);
}
void loop() {
// leer pines
out1 = analogRead(A0);
out2 = analogRead(A1);
// enviar
Serial.print(out1);
Serial.print(",");
Serial.println(out2);
// esperar
delay(20);
}
CODIGO MATLAB:
%borrar previos
delete(instrfind({'Port'},{'COM4'}));
%crear objeto serie
s = serial('COM4','BaudRate',9600,'Terminator','CR/LF');
warning('off','MATLAB:serial:fscanf:unsuccessfulRead');
%abrir puerto
fopen(s);
% parámetros de medidas
tmax = 10; % tiempo de captura en s
rate = 33; % resultado experimental (comprobar)
% preparar la figura
f = figure('Name','Captura');
a = axes('XLim',[0 tmax],'YLim',[0 5.1]);
l1 = line(nan,nan,'Color','r','LineWidth',2);
l2 = line(nan,nan,'Color','b','LineWidth',2);
xlabel('Tiempo (s)')
ylabel('Voltaje (V)')
title('Captura de voltaje en tiempo real con Arduino')
grid on
hold on
% inicializar
v1 = zeros(1,tmax*rate);
v2 = zeros(1,tmax*rate);
i = 1;
t = 0;