% -------------SISTEMA DE CONTROL 2 - LAB 1---------------------- % ESTE ARCHIVO OBTIENE LA FFT DE UNA SEÑAL DIGITAL (SEÑAL CONTINUA % MUESTREADA), OBTIENE EL THD Y GRAFICA EL ESPECTRO EN FRECUENCIA. close all; clear all; clc data=load('ensayo_002.txt'); % OJOOOO!!! Acá va el nombre del archivo .txt var_m=data(:,2); Nm=length(var_m); % Cantidad de puntos del vector (1000) f1=50; % OJOOOO!!! COLOCAR LA frecuencia fundamental de la señal. T1=1/f1; % Periodo de la señal fm=50*4; % OJOOOO!!! COLOCAR EL VALOR de la frecuencia de muestreo. Tm=1/fm; % Periodo del muestreo np=T1/Tm; % Cantidad de muestras en 1 periodo Ttotal=Nm*Tm; % Tiempo total Num_periodos=Ttotal/T1; % Nro de periodos tiempo=(Tm:Tm:Ttotal)'; % Vector tiempo % se puede usar data(:,1) % Grafico del vector de amplitud figure; plot(tiempo,var_m); grid; xlabel('Tiempo [seg.]'); ylabel('Amplitud [Vots]'); % <<-- DEFINIR UNIDADES CORRESPONDIENTES % En la siguiente figura se verifica que se tiene 1 periodo de la señal figure; stem(tiempo(Nm-np:Nm-1),var_m(Nm-np:Nm-1)); grid;xlabel('Tiempo [seg.]'); ylabel('Amplitud [Vots]'); axis([tiempo(Nm-np-1) tiempo(Nm) -10 10]) % CALCULO DE LA FFT FFT_senial_m=2*abs(fft(var_m(Nm-np:Nm-1)))/(np); FFT_senial_m(1)=FFT_senial_m(1)/2; % componente en continua % FFT normalizada respecto a la fundamental FFT_senial_m_N=FFT_senial_m/FFT_senial_m(2); % FFT normalizada respecto al aporte de todo el espectro FFT_senial_m_N2(2:np)=FFT_senial_m(2:np)*100/(sum(FFT_senial_m(2:np/2))); armonicas=(0:1:length(FFT_senial_m_N)-1)'; % Nro de armónica armonicas_f=f1*(0:1:length(FFT_senial_m_N(1:(np)))-1)'; % Frecuencia ordenadas=FFT_senial_m(1:(np)); % Amplitud sin normalizar ordenadas_N=FFT_senial_m_N(1:(np)); % Amplitud normalizada % % En la siguiente figura se presenta el grafico de barras del espectro en % % frecuencia normalizado de la señal muestreada en función del orden del % % armónico % figure; % bar(armonicas(1:(np)),ordenadas_N,0.25) % axis([0 np/2 0 1.1*max(ordenadas_N)])% <- np/2 para mitad del espectro % % PARA LAS SEÑALES CON TASA DE MUESTREO ELEVADO COLOCAR np/10 % % REALIZAR ZOOM PARA MEJOR VISUALIZACION % xlabel('Frecuencia Normalizada'); ylabel('Amplitud Normalizada'); % En la siguiente figura se presenta el grafico de barras del espectro en % frecuencia normalizada de la señal muestreada en función del orden de la % frecuencia del armónico figure bar(armonicas_f,ordenadas,0.25) axis([0 (f1*1.2*np/2) 0 1.1*max(ordenadas)]) % <- np/2 para mitad del espectro % PARA LAS SEÑALES CON TASA DE MUESTREO ELEVADO COLOCAR np/10 % REALIZAR ZOOM PARA MEJOR VISUALIZACION xlabel('Frecuencia [Hz]'); ylabel('Amplitud'); % <<-- DEFINIR LAS UNIDADES % CALCULO DE LA THD THD=100*sqrt(sum(FFT_senial_m(3:ceil((np+1)/2)).^2))/FFT_senial_m(2); formatSpec = 'THD* de %4.2f%% \n*NO VALIDO PARA 2fm \n'; fprintf(formatSpec,THD) % IMPRIME EN PANTALLA EL VALOR THD%