ANEXO IV ANEXO IV Se presenta a continuación (fig. AIV.1) el diagrama de flujo del programa Matlab que permite realizar un análisis preliminar de los períodos predominantes de los suelos mediante la técnica de Nakamura, así como el listado del programa utilizado. El programa Matlab se ha estructurado en tres pasos: obtención del movimiento de partícula, obtención de los espectros de amplitudes de Fourier y finalmente obtención de las ratios espectrales. En primer lugar se realiza una lectura del archivo que contiene los datos de entrada. Dichos datos son la componente Z, la componente NS y la componente EW de la señal registrada. Posteriormente se calculan componentes adicionales combinación de las anteriores: la componente h-aritmética y h-cuadrática. Se realiza un filtrado de todas las componentes obtenidas mediante la función filtfilt. Dicha función deja pasar las altas frecuencias de la señal. Para obtener el movimiento de partícula se grafica la componente NS versus la componente EW, tanto de los datos brutos como de los datos filtrados. El siguiente análisis realizado sobre la señal consiste en cálculo de los espectros de Fourier mediante la aplicación de la transformada rápida de Fourier (fft) sobre cada una de las componentes. Finalmente, se grafican los espectros de amplitudes de Fourier así obtenidos para cada una de las componentes. El siguiente paso realizado es la aplicación de la técnica de Nakamura. Para ello se calculan los cocientes espectrales dividiendo el espectro de amplitudes de Fourier por el espectro de amplitudes de Fourier de la componente Z. Posteriormente se grafican las ratios espectrales calculadas que permiten obtener un análisis preliminar de los períodos predominantes del suelo. 143 ANEXO IV Lectura señal (Componentes Z, NS y EW) Movimiento de partícula bruto Componente h-aritmética y Componente h-cuadrática Filtrado de todas las componentes Transformada Rápida de Fourier fft Movimiento de partícula filtrado Espectro de amplitudes de Fourier Cocientes espectrales (Técnica de Nakamura) ENTRADA Ratios Espectrales. Período Predominante del suelo. ANÁLISIS SALIDA Figura AIV 1. Diagrama de flujo del programa Matlab. Véase explicación en el texto. 144 ANEXO IV LISTADO DEL PROGRAMA MATLAB. ANALISIS DE RUIDO CON FILTRADO PASA ALTAS Lectura del archivo clear all close all clc [cabecera,senyal]=hdrload('temporal.txt'); npt=length(senyal) tiempo=senyal(:,2); compz=senyal(:,3); compnsi=senyal(:,4); compewi=senyal(:,5); compsa=compnsi+compewi; for k=1:npt comph(k)=sqrt(compnsi(k)*compnsi(k)+compewi(k)*compewi(k)); end dt=tiempo(2)-tiempo(1) df=1./(dt*npt) fc=1./(2.*dt) mensaje='pulsa tecla para continuar' pause clc Filtrado de datos filtro pasa altas norden=3; fl=0.1; fs=1/(2*dt); wa1=fl/fs; [b,a]=butter(norden,wa1,'high'); compz=filtfilt(b,a,senyal(:,3)); compns=filtfilt(b,a,senyal(:,4)); compew=filtfilt(b,a,senyal(:,5)); compsa=filtfilt(b,a,compsa); comph=filtfilt(b,a,comph); Movimiento de partícula figure (1) subplot(2,1,1), plot(compewi,compnsi,'k-') title('Parque Cervantes. Datos brutos') xlabel('EW') ylabel('NS') legend('Movimiento de particula',0) subplot(2,1,2), plot(compew,compns,'k-') title('Parque Cervantes. Datos filtrados') xlabel('EW') ylabel('NS') legend('Movimiento de particula',0) axis([-5*10^(-6),5*10^(-6),-5*10^(-6),5*10^(-6)]) mensaje='pulsa tecla para continuar' pause clc Cálculo de espectros freq=[0:npt-1]'*df; per=freq; 145 ANEXO IV np2=npt/2+1; xper=per(2:np2); Componente z xfz=fft(compz); xfzam=abs(xfz)*dt; xzff=xfzam(2:np2); Componente ns xfns=fft(compns); xfnsam=abs(xfns)*dt; xnsff=xfnsam(2:np2); Componente ew xfew=fft(compew); xfewam=abs(xfew)*dt; xewff=xfewam(2:np2); Componente hq xfhq=fft(comph); xfhqam=abs(xfhq)*dt; xhqff=xfhqam(2:np2); Componente sa xfsa=fft(compsa); xfsaam=abs(xfsa)*dt; xsaff=xfsaam(2:np2); Dibujo de trazas figure (1) subplot(5,2,1), plot(tiempo,compz,'k-') title('Parque Cervantes. Filtrado pasa altas') xlabel('tiempo (s)') ylabel('Amplitud') legend('Componente Z',0) subplot(5,2,2), loglog(xper,xzff,'k-') xlabel('freq (Hz)') ylabel('Mod-FFT') subplot(5,2,3), plot(tiempo,compns,'k-') xlabel('tiempo (s)') ylabel('Amplitud') legend('Componente NS',0) subplot(5,2,4), loglog(xper,xnsff,'r-') xlabel('freq (Hz)') ylabel('Mod-FFT') subplot(5,2,5), plot(tiempo,compew,'k-') xlabel('tiempo (s)') ylabel('Amplitud') legend('Componente EW',0) subplot(5,2,6), loglog(xper,xewff,'r-') xlabel('freq (Hz)') ylabel('Mod-FFT') 146 ANEXO IV subplot(5,2,7), plot(tiempo,comph,'k-') xlabel('tiempo (s)') ylabel('Amplitud') legend('Componente H-quadratica',0) subplot(5,2,8), loglog(xper,xhqff,'r-') xlabel('freq (Hz)') ylabel('Mod-FFT') subplot(5,2,9), plot(tiempo,compsa,'k-') xlabel('Tiempo (s)') ylabel('Amplitud') legend('Componente H-aritmetica',0) subplot(5,2,10), loglog(xper,xsaff,'r-') xlabel('Frec. (Hz)') ylabel('Mod-FFT') pause close all clc mensaje='pulsa tecla para continuar' pause clc Nakamura puro y duro Cocientes espectrales for i=1:np2-1 nsz(i)=xnsff(i)/xzff(i); ewz(i)=xewff(i)/xzff(i); hqz(i)=xhqff(i)/xzff(i); saz(i)=xsaff(i)/xzff(i); end Dibujo de las ratios espectrales figure (2) subplot(4,2,1), plot(xper,nsz,'k-') title('Parque Cervantes. Ratios espectrales-con filtro pasa altas') xlabel('Frec. (Hz)') ylabel('NS/V ratio') legend('NS-Z spectral ratio',0) subplot(4,2,2), loglog(xper,nsz,'k-') xlabel('Frec. (Hz)') ylabel('NS/V ratio') subplot(4,2,3), plot(xper,ewz,'k-') xlabel('Frec. (Hz)') ylabel('EW/V ratio') legend('EW-Z spectral ratio',0) subplot(4,2,4), loglog(xper,ewz,'k-') xlabel('Frec. (Hz)') ylabel('EW/V ratio') subplot(4,2,5), plot(xper,hqz,'k-') xlabel('Frec. (Hz)') ylabel('HQ/V ratio') legend('HQ-Z spectral ratio',0) subplot(4,2,6), loglog(xper,hqz,'k-') xlabel('Frec. (Hz)') ylabel('HQ/V ratio') 147 ANEXO IV subplot(4,2,7), plot(xper,saz,'k-') xlabel('Frec. (Hz)') ylabel('SA/V ratio') legend('SA-Z spectral ratio',0) subplot(4,2,8), loglog(xper,saz,'k-') xlabel('Frec. (Hz)') ylabel('SA/V ratio') pause close all clear all mensaje='pulsa tecla para finalizar' pause clc 148