Documente Academic
Documente Profesional
Documente Cultură
1st Juan Fabricio Ramos Sarango 2nd Jaime Patricio Ramírez Ramírez
Ingeniería en Tecnologías de la Información Ingeniería en Tecnologías de la Información
FIEE FIEE
Quito,Ecuador Quito,Ecuador
juan.ramos@epn.edu.ec jaime.ramirez01@epn.edu.ec
CÓDIGO:
1 % Proyecto 6 parte 1
2 clear all %Eliminamos todas las
variables en memoria
PSD estimada Proceso AR(4)
50 80
40 60
30 40
Magnitud [dB/Hz]
20 20
y[n]
10 0
0 -20
-10 -40
-20 -60
-30 -80
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0 100 200 300 400 500 600 700 800 900 1000
Frequencia [Hz] tiempo [s]
20
de valores aleatorios
10 11 y = filter (1 ,A , x ) ; %implementamos para
0
usar la ecu en diferencias
12 [ pxx , w ] = periodogram (y , hamming ( length
-10
( y ) ) , length ( y ) , Fs ) ; %calculamos el
-20 13 %periodograma con una ventana de
-30
hamming
0 0.05 0.1 0.15 0.2 0.25 0.3
Frequencia [Hz]
0.35 0.4 0.45 0.5 14 plot (w ,10* log10 ( pxx ) , ' Color ' , ' yellow ')
%graficamos lo solicitado
15 [H , F ] = freqz (B ,A ,[] , Fs ) ; %calculamos
la respuesta en frecuencia de un
16 %sistema LTI
17 dB =20* log10 ( abs ( H ) ) ; %calculamos los
valores en dB
18 hold on ; %Funcion que nos permite
añadir otro grafico
19 grid on ; %Activamos cuadricula en el
grafico
20 plot (F , dB , ' linewidth ' ,3 , ' Color ' , ' green
') ; %graficamos lo solicitado
21 xlabel ( ' Frequencia [ Hz ] ') %nombre del
eje x
22 ylabel ( ' Magnitud [ dB / Hz ] ') %nombre del
eje y
23 title ( ' PSD ') ; %titulo de la grafica
24 legend ( ' Periodograma ( Ventana de 5. Calcule y grafique el periodograma de Welch
Hamming ) ' , ' PSD verdadera ') %ponemos de la realización y[n]. Escoga los parámetros (i.e
leyenda ventana,tamaño de la ventana, sobreposición) de modo
25 %( identificacion ) a nuestras graficas que el bias y variabilidad se reduzcan. Sobreponga el
plot de la PSD verdadera.Exprese el eje x en Hz y el
eje y en dB/Hz. Comente los resultados respecto al bias
PSD
y variabilidad del periodograma de Welch respecto de
50
Periodograma(Ventana de Hamming)
la PSD verdadera. Tip: la función pwelch calcula el
PSD verdadera
40
periodograma de Welch. Consulte la ayuda de Matlab
30 para más detalles.
Magnitud [dB/Hz]
20
COMENTARIOS:
10
20
correr de todos los alumnos del curso.Tabule
10 los resultados obtenidos en una tabla con las si-
0
guientes columnas: ID,Actividad,Velocidad Estima-
da. Además, genere un histograma de la velocidad
-10
estimada. Comente sus resultados.
-20 Estime el error cuadrático medio (MSE,Mean Squa-
-30
red Error) de su metología para la acividad caminar
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
Frequencia [Hz]
y correr. Use como valor verdaderos los valores
tabulados en link.
Tip: el comando histogram genera los histogramas en
Observaciones: Matlab.
Las amplitudes de las PSD deben ser expresadas en
dB/Hz y la frecuencia en Hz. II-A. METOLOGÍA
No use subplots Se procede a procesar la señal con la función pre-
No use stem processing.m dada en el anexo del trabajo.
Las señales utilizas para explicar la metodología
II. Metodología para estimar velocidad pertenecen a las actividades de camiar y trotar a
usando métodos de estimación espectral continuación se muestra las señales que pertecen
a cada una de estas actividades con su respectivo
procesamiento.
Proponga una metodología para estimar la velocidad
al caminar y correr en pasos/minuto a partir de las
SEÑAL ACT.3 SIN PROCESAR
señales obtenidas del acelerómetro usando métodos de
estimación espectral. Antes de usar las señales, procese
Grafica de la actividad caminando (sin procesar))
cada señal con la función: 1.8
1.6
t:vector de tiempo
TgF
0.8
gravacc_t:componente de aceleración gravitacional
0.6
3
nario.
Existen dos variables que nos devuelve el periodo-
2
-0.5
-1
0 20 40 60 80 100 120
t(s)
Senial aplicando la ventana de Blackman 16 xlim ([0 120]) % limitacion del
0
tiempo de 0 a 120 segundos
-20
17 ylabel ( ' TgF ')
-40 18 xlabel ( 't ( s ) ')
-60 19 title ( ' Grafica de la actividad
Magnitud [db/Hz]
-80
caminando ( sin procesar ) ) ')
20
-100
21
-120
22 t_non_uniform = v_tiempo ;
-140 23 sig_non_uniform = m_aceleracion ;
-160 24 Fs = 50; %Frecuencia de muestreo
-180 25
0 5 10 15
frecuencia [Hz]
20 25
26 % funcion para procesar la señal
27 [t , gravacc_t , bodyacc_t ]=
preprocessing ( t_non_uniform ,
SEÑAL DE ACT.4 APLICANDO sig_non_uniform , Fs ) ;
PERIODOGRAMA DE WELCH 28
29
Senial aplicando la ventana de Blackman 30 %Grafica de la señal procesada
20
31 figure (2)
0
32
-20
33 plot (t , bodyacc_t )
-40
34 title ( ' Senial Procesada ')
Magnitud [db/Hz]
-60
35 xlim ([0 120])
-80 36 ylabel ( ' TgF ')
-100 37 xlabel ( 't ( s ) ')
-120 38
-140 39 % aplicacion del periodograma de
-160 welch
-180
40
0 5 10 15
frecuencia [Hz]
20 25
41 [ pxx , w ] = pwelch ( bodyacc_t ,
blackman (1000) , 99 , 5000 , Fs ) ;
42 PxxdB =10* log10 ( pxx ) ;
43 [ pk , MaxFreq ] = findpeaks ( PxxdB , '
CÓDIGO DEL SCRIPT
NPeaks ' ,1 , ' SortStr ' , ' descend ') ;
44
1 % % CAMINAR 45 figure (3)
2 clc 46 % grafica de la señal aplicando la
3 clear all ventana de Blackman con el
4 close all periodograma
5 47 % de Welch
6 %Obtenemos la señal de los archivos 48
. cvs } 49 plot (w , PxxdB )
7 % Archivo csv de la señal caminando 50 hold on
8 51 plot ( w ( MaxFreq ) ,pk , ' or ')
9 C = dlmread ( ' raw_219_3 . csv ') ; % 52 title ( ' Senial aplicando la ventana
archivo original csv de Blackman ')
10 v_tiempo = C (: ,1) - 12; % vector 53 ylabel ( ' Magnitud [ db / Hz ] ')
del tiempo sin procesar 54 xlabel ( ' frecuencia [ Hz ] ')
11 m_aceleracion = C (: ,5) ; % vector 55 % Obtencion de la velocidad
modulo de la aceleracion sin estimada
procesar 56
12 57 w ( MaxFreq ) ;
13 % grafica de la señal sin procesar 58
14 figure (1) 59 velocidad = round ( min ( w ( MaxFreq ) ) *60)
15 plot ( v_tiempo , m_aceleracion ) ;
60 41 [ pxx , w ] = pwelch ( bodyacc_t ,
61 sprintf (" La velocidad es : "+ blackman (1000) , 99 , 5000 , Fs ) ;
num2str ( velocidad ) + " pasos / 42 PxxdB =10* log10 ( pxx ) ;
minuto ") 43 [ pk , MaxFreq ] = findpeaks ( PxxdB , '
NPeaks ' ,1 , ' SortStr ' , ' descend ') ;
44
1 % % Trotando 45 figure (3)
2 clc 46 % grafica de la señal aplicando la
3 clear all ventana de Blackman
4 close all 47 plot (w , PxxdB )
5 48 hold on
6 %Obtenemos la señal de los archivos 49 plot ( w ( MaxFreq ) ,pk , ' or ')
. cvs } 50 title ( ' Senial aplicando la ventana
7 % Archivo csv de la señal caminando de Blackman ')
8 51 ylabel ( ' Magnitud [ db / Hz ] ')
9 C = dlmread ( ' raw_219_4 . csv ') ; % 52 xlabel ( ' frecuencia [ Hz ] ')
archivo original csv 53 % Obtencion de la velocidad
10 v_tiempo = C (: ,1) - 7; % vector del estimada
tiempo sin procesar 54
11 m_aceleracion = C (: ,5) ; % vector 55 w ( MaxFreq ) ;
modulo de la aceleracion sin 56
procesar 57 velocidad = round ( min ( w ( MaxFreq ) ) *60)
12 ;
13 % grafica de la señal sin procesar 58
14 figure (1) 59 sprintf (" La velocidad es : "+
15 plot ( v_tiempo , m_aceleracion ) num2str ( velocidad ) + " pasos /
16 xlim ([0 120]) % limitacion del minuto ")
tiempo de 0 a 120 segundos
17 ylabel ( ' TgF ')
II-B. CUESTIONARIO
18 xlabel ( 't ( s ) ')
19 title ( ' Grafica de la actividad PREGUNTA N.-1 Una vez que se ejecuta el
caminando ( sin procesar ) ) ') script anterior se obtendrá un dato como el que
20 se muestra a continuación este dato indicada
21 la velocidad en pasos/minut de la actividadad
22 t_non_uniform = v_tiempo ; selecccionada.
23 sig_non_uniform = m_aceleracion ;
24 Fs = 50; %Frecuencia de muestreo
25
26 % funcion para procesar la señal
27 [t , gravacc_t , bodyacc_t ]=
preprocessing ( t_non_uniform ,
sig_non_uniform , Fs ) ;
28
29
30 %Grafica de la señal procesada
31 figure (2)
32
33 plot (t , bodyacc_t )
34 title ( ' Senial Procesada ')
35 xlim ([0 120])
36 ylabel ( ' TgF ') PREGUNTA N.-2 Para la estimacion de las
37 xlabel ( 't ( s ) ') velocidades se utilizó la señal de la aceleración
38 corporal bodyacc_t debido a que esta aporta una
39 % aplicacion del periodograma de mayor información para los datos de movimiento
welch además cabe recalcar que no se utilizó ninguna de
40 las 3 componentes de la aceleración únicamente se
II-C. APLICACIÓN DE LA METODOLOGÍA
Aplicando nuestra metodología procederemos a
obtener los datos de las velocidades para alumno esto
lo haremos en base a la tabla que se encuentra en el
anexo del trabajo una vez ya realizada la tabulación
se procedera a graficar los respectivos histogramas a
continuación se muestra las tabualciones para una de
las actividades y los códigos con los que se generan los
histogramas
ID VELOCIDAD ESTIMADA
utilizó el módulo del vector de la aceleración.
201 101
202 92
PREGUNTA N.-3 Se utilizó el método de 203 92
estimación de Welch porque es el método más 204 91
205 85
eficiente al momento de realizar estimaciones
206 89
debido a que se determina la mayor aproximación 207 81
en una estimación en donde cada uno de 208 93
los periodogramas se promedia. La razón 209 98
210 117
anteriormente dada es lo que nos llevo a usar 211 99
este método debido a que si cada uno de los 212 103
periodogramas se promedia obtendremos una 213 81
mayor estimación de la velocidad que queremos 214 73
215 118
calcular. 216 95
217 81
Como ya se dijo anteriormente Matlab implemente 218 no presenta datos
219 73
el periodograma de Welch pero lo hace de varias 220 76
maneras una de ellas es la que se muestra a 221 103
continuación: 222 91
223 91
224 90
[pxx, f ] = pwelch(x, window, noverlap, f, f s) 225 116
226 100
donde: 227 98
228 99
229 95
En donde x será nuestra señal bodyacc_t 230 80
231 no presentan datos
window en nuestro caso usaremos la ventana 232 103
Cuadro I
de blackman para realizar nuestra estimación Tabla 2.ACTIVIDAD 3 ÇAMINANDO".
debido a que se retorna puntos simétricos con
lo cual la señal se simplifica mucho, es decir se
eliminan la mayoría de picos permitieno calcular
el mayor pico fácilmente.
ANÁLISIS DE RESULTADOS
CÓDIGO ACTIVIDAD 4
1 % % Calculo de la velocidad corriendo 36
2 37
3 clc 38 PxxdB =10* log10 ( pxx ) ; %Realización
4 clear all del cambio de unidad a decibeles
5 close all 39
6 40 %Por medio de la funcion
7 findpeaks buscamos los
8 %Cargamos la tabla dada para realizar picos en las
los calculos 41 %muestras . Los picos mas altos
9 load ( ' T a b l a _ t o t a l _ s e n i a l e s _ r a w . mat ') se consideran un paso
10 %Inicializacion de la matriz velocidad 42 [ pk , MaxFreq ] = findpeaks ( PxxdB
a generar , ' NPeaks ' ,1 , ' SortStr ' , '
11 descend ') ;
12 i = 1; 43
13 %bucle en el que hacemos las 44 w ( MaxFreq ) ;
iteraciones 45
14 %necesarias para realizar los calculos 46 %Guardamos la velocidad de
de velocidad corriento y caminando cada estudiante en una
15 for id = 201:1:232 matriz
16 %Los indices son en funcion de los ID 47 velocidad ( i ) = round ( min ( w (
de cada persona MaxFreq ) ) *60) ;
17 48 i = i +1; %Aumento del
18 %Condicion necesaria , dado que los ID indice de la matriz
218 y 131 no existe en la tabla Velocidad
19 if ( id ~= 218 & id ~= 231) 49 end
20 %Busqueda de la posicion en la tabla 50 end
de los ID ingresados 51
21 aux = find ( 52 %Graficas
T a b l a _ t o t a l _ s e n i a l e s _ r a w . ID 53 %Histograma del numero de personas en
== id ) ; funcion
22 %Extracción del vector tiempo te la 54 %de la velocidad en pasos / minuto
tabla 55
23 t_non_uniform = 56 h = histogram ( velocidad )
Tabla_total_seniales_raw .t{ 57
aux (4) ,1}; 58 title ( ' Histograma de Velocidad
24 %Extracción del vector aceleracion te Corriendo en pasos / min ')
la tabla 59 ylabel ( ' Numero de personas ')
25 sig_non_uniform = 60 xlabel ( ' Velocidad en pasos / minuto ')
Tabla_total_seniales_raw .
tgt { aux (4) ,1}; CONCLUSIONES:
26
27 Fs = 50; %Frecuencia de Para finalizar el análisis de datos se puede comprobar
muestreo que los resultados obtenidos de la experimentación tanto
28 de la actividad de trotar como la de caminar tienen una
29 cierta diferencia ya que se comprobó que efectivamente
30 %Presocesamiento de las señales de la debe existir un mayor numero de pasos/min en una
tabla actividad que requiere una mayor velocidad.
31 [t , gravacc_t , bodyacc_t ]=
preprocessing ( t_non_uniform , Un histograma debe seguir en la mayoría de veces
sig_non_uniform , Fs ) ; una distribución normal pero cabe recalcar que esto es
32 una experimentación cada persona va a tener diferentes
33 %Estimacion espectral por medio del velocidades y eso se comprueba con los histogramas
metodo de Welch además se puede determinar que estos histogramas
34 [ pxx , w ] = pwelch ( bodyacc_t , siguen una secuencia asimétrica
blackman (1000) , 99 , 5000 , Fs ) ;
35
II-D. ERROR CUADRÁTICO MEDIO Velocidad ;
CÓDIGOS: 35
36
1 % % ERROR CUADRATICO MEDIO DE LA 37 %CALCULO DEL ERROR CUADRATICO MEDIO£
VELOCIDAD CAMINANDO 38 %Donde su formula es : ECM = (1/ n )
2 clc Sumatorio ( v_estimadas -
3 clear all v_verdaderos ) ^2
4 close all 39 %de donde :
5 40 %v_estimadas : Velocidad estimada
6 %Valores Verdaderos obtenidos de la 41 %v_verdaderos : Son los datos extraidos
tabla de la tabla
7 42
8 j = 1; %Inicializacion del indice 43 sumatorio = 0; %Inicualizacion de la
para la matriz del ID variable sumatorio
9 44 for j = 1:30
10 %Bucle en el que hacemos las 45 %Cuadrado de la resta de los
iteraciones necesarias para valores estimados y verdaderos
realizar los 46 sum_aux = ( velocidades_est ( j ) -
11 %calculos de velocidad corriento y v_verdaderos (j ,2) ) ^2;
caminadno los indices son en 47
funcion 48 %Sumatorio de las nuevas variables
12 %de los ID de cada persona con la anterior
13 for i = 201:232 49 sumatorioM ( j ) = sum_aux ;
14 50
15 if i ~= 218 & i ~= 231 51 end
16 52
17 id ( j ) =[ i ]; %Asignacion 53 %Division para el numero de valores (
de los valores ID Formula )
18 j = j +1; 54 ECM = sum ( sumatorioM ) / length (
19 end v_verdaderos )
20 end
21
22 %Valores extraidos de la tabla de la
velocidad caminando . pasos por
minuto
23 vel o c i da d _ ca m i na n d o =
[96;95;100;90;87;88;90;92;93;102;98;111;60;83;98;93;
24 98;82;100;102;95;98;89;110;95;93;100;97;80;78];
25
26 %Matriz con los valores de ID y la
velocidad caminando
27 v_verdaderos = [ id '
v e lo c i da d _ ca m i na n d o ];
28
29 %Carga de la matriz de la velocidad
caminando estimada
30 %para extraer los datos
31 load ( ' V e l o c i d a d e s _ E S t i m a d a s _ C a m i n a n d o .
mat ')
32
33 %Asignacion de la matriz anterior a
una variable
34 velocidades_est =
Velocidades_EStimadas_Caminando .
Velocidad ;
1 % % ERROR CUADRATICO MEDIO DE LA 34
VELOCIDAD CORRIENDO 35
2 36 %CALCULO DEL ERROR CUADRATICO MEDIO
3 clc 37 %Donde su formula es : ECM = (1/ n )
4 clear all Sumatorio ( v_estimadas -
5 close all v_verdaderos ) ^2
6 38 %de donde :
7 %Valores Verdaderos obtenidos de la 39 %v_estimadas : Velocidad estimada
tabla 40 %v_verdaderos : Son los datos extraidos
8 de la tabla
9 j = 1; %Inicializacion del indice 41
para la matriz del ID 42 sumatorio = 0; %Inicualizacion de
10 la variable sumatorio
11 %Bucle en el que hacemos las 43 for j = 1:30
iteraciones necesarias para 44
realizar 45 %Cuadrado de la resta de los
12 %los calculos de velocidad corriendo valores estimados y verdaderos
los indices son en 46 sum_aux = ( velocidades_est ( j ) -
13 %funcion de los ID de cada persona v_verdaderos (j ,2) ) ^2;
14 for i = 201:232 47 %Sumatorio de las nuevas variables
15 if i ~= 218 & i ~= 231 con la anterior
16 id ( j ) =[ i ]; %Asignacion 48 sumatorioM ( j ) = sum_aux ;
de los valores ID 49
17 j = j +1; % 50 end
Actualizacion de la 51
variable 52 %Division para el numero de valores (
18 end Formula )
19 end 53 ECM = sum ( sumatorioM ) / length (
20 v_verdaderos ) ;
21 %Valores extraidos de la tabla de la 54 ECM = floor ( ECM ) %Tranformacion a
velocidad corriendo en pasos por un entero
minuto
22 vel o c i da d _ co r r ie n d o =
[137;140;98;165;139;155;140;157;140;125;145;
23 135;146;134;160;141;134;158;150;150;151;128;
24 139;145;153;137;160;147;140;161];
25
26 %Matriz con los valores de ID y la
velocidad corriendo
27 v_verdaderos = [ id '
v e lo c i da d _ co r r ie n d o ];
28
29 %Carga de la matriz de la velocidad
corriendo estimada para extraer los
datos
30 load ( ' V e l o c i d a d e s _ E S t i m a d a s _ C o r r i e n d o .
mat ')
31
32 %Asignacion de la matriz anterior a
una variable
33 velocidades_est =
Velocidades_EStimadas_Corriendo .
II-E. SEŃAL A COMPROBAR 21 ylabel ( ' Magnitud [ db / Hz ] ')
22 xlabel ( ' frecuencia [ Hz ] ')
Senial aplicando la ventana de Blackman
23 % Obtencion de la velocidad estimada
0
24
w ( MaxFreq ) ;
-20
25
-40
26
velocidad = round ( min ( w ( MaxFreq ) ) *60) ;
-60
27
-80
28
-100
29 sprintf (" La velocidad es : "+ num2str (
-120
velocidad ) + " pasos / minuto ")
-140
-160
-180
0 5 10 15 20 25
% Proyecto 6 parte 1
clear all %Eliminamos todas las variables en memoria
close all %Cerramos todas las ventanas
clc %Limpiamos la consola
Fs=1;%damos el valor a nuestra frecuencia de muestro
A = [1 -2.7607 3.8106 -2.6535 0.9238];%digitamos los valores del
vector A
%del proceso AR
B = 1;%damos el valor al coeficiente del proceso AR
[H,F] = freqz(B,A,[],Fs);%calculamos la respuesta en frecuencia de un
%sistema LTI
dB=20*log10(abs(H));%calculamos los valores en dB
grid on; %Activamos cuadricula en el grafico
plot(F,dB,'linewidth',3,'Color','red');%graficamos lo solicitado
xlabel('Frequencia [Hz]')%nombre al eje x
ylabel('Magnitud [dB/Hz]')%nombre al eje y
title('PSD estimada');%nombre de la grafica
1
% Proyecto 6 parte 2
clear all %Eliminamos todas las variables en memoria
close all %Cerramos todas las ventanas
clc %Limpiamos la consola
Fs=1;%damos el valor a nuestra frecuencia de muestro
A = [1 -2.7607 3.8106 -2.6535 0.9238];%digitamos los valores del
vector A
%del proceso AR
rng default%comando para calcular la reproducibilidad de los
resultados
x = randn(1000,1);%creamos un vector de valores aleatorios
y = filter(1,A,x);%implementamos para usar la ecu en diferencias
hold on; %Funcion que nos permite añadir otro grafico
plot(y,'Color','green')%graficamos lo pedido
xlabel('tiempo [s]')%nommbre al eje x
ylabel('y[n]')%nombre al eje y
title('Proceso AR(4)');%escribimos el titulo de la grafica
1
% Proyecto 6 parte 3
clear all %Eliminamos todas las variables en memoria
close all %Cerramos todas las ventanas
clc %Limpiamos la consola
Fs=1;%damos el valor a nuestra frecuencia de muestro
A = [1 -2.7607 3.8106 -2.6535 0.9238];%digitamos los valores del
vector A
%del proceso AR
B = 1;%damos el valor al coeficiente del proceso AR
rng default%comando para calcular la reproducibilidad de los
resultados
x = randn(1000,1);%creamos un vector de valores aleatorios
y = filter(1,A,x);%implementamos para usar la ecu en diferencias
[pxx,w] = periodogram(y,rectwin(length(y)),length(y),Fs);%calculamos
el
%periodograma con una ventana de hamming
plot(w,10*log10(pxx),'Color','red')%graficamos lo solicitado
[H,F] = freqz(B,A,[],Fs);%calculamos la respuesta en frecuencia de un
%sistema LTI
dB=20*log10(abs(H));%calculamos los valores en dB
hold on; %Funcion que nos permite añadir otro grafico
grid on; %Activamos cuadricula en el grafico
plot(F,dB,'linewidth',3,'Color','blue');%graficamos lo solicitado
xlabel('Frequencia [Hz]')%nombre del eje x
ylabel('Magnitud [dB/Hz]')%nombre del eje y
title('PSD');%titulo de la grafica
legend('Periodograma(Ventana rectangular)','PSD verdadera')%ponemos
leyenda
%(identificacion)a nuestras graficas
1
Published with MATLAB® R2018b
2
% Proyecto 6 parte 4
clear all %Eliminamos todas las variables en memoria
close all %Cerramos todas las ventanas
clc %Limpiamos la consola
Fs=1;%damos el valor a nuestra frecuencia de muestro
A = [1 -2.7607 3.8106 -2.6535 0.9238];%digitamos los valores del
vector A
%del proceso AR
B = 1;%damos el valor al coeficiente del proceso AR
rng default%comando para calcular la reproducibilidad de los
resultados
x = randn(1000,1);%creamos un vector de valores aleatorios
y = filter(1,A,x);%implementamos para usar la ecu en diferencias
[pxx,w] = periodogram(y,hamming(length(y)),length(y),Fs);%calculamos
el
%periodograma con una ventana de hamming
plot(w,10*log10(pxx),'Color','yellow')%graficamos lo solicitado
[H,F] = freqz(B,A,[],Fs);%calculamos la respuesta en frecuencia de un
%sistema LTI
dB=20*log10(abs(H));%calculamos los valores en dB
hold on; %Funcion que nos permite añadir otro grafico
grid on; %Activamos cuadricula en el grafico
plot(F,dB,'linewidth',3,'Color','green');%graficamos lo solicitado
xlabel('Frequencia [Hz]')%nombre del eje x
ylabel('Magnitud [dB/Hz]')%nombre del eje y
title('PSD');%titulo de la grafica
legend('Periodograma(Ventana de Hamming)','PSD verdadera')%ponemos
leyenda
%(identificacion)a nuestras graficas
1
Published with MATLAB® R2018b
2
% Proyecto 6 parte 4
clear all %Eliminamos todas las variables en memoria
close all %Cerramos todas las ventanas
clc %Limpiamos la consola
Fs=1;%damos el valor a nuestra frecuencia de muestro
A = [1 -2.7607 3.8106 -2.6535 0.9238];%digitamos los valores del
vector A
%del proceso AR
B = 1;%damos el valor al coeficiente del proceso AR
rng default%comando para calcular la reproducibilidad de los
resultados
x = randn(1000,1);%creamos un vector de valores aleatorios
y = filter(1,A,x);%implementamos para usar la ecu en diferencias
[pxx,w] = pwelch(y,blackman(120),100,100,Fs);%calculamos el
%periodograma de welch
plot(w,10*log10(pxx),'Color','red')%graficamos lo solicitado
[H,F] = freqz(B,A,[],Fs);%calculamos la respuesta en frecuencia de un
%sistema LTI
dB=20*log10(abs(H));%calculamos los valores en dB
hold on; %Funcion que nos permite añadir otro grafico
grid on; %Activamos cuadricula en el grafico
plot(F,dB,'linewidth',3,'Color','black');%graficamos lo solicitado
xlabel('Frequencia [Hz]')%nombre del eje x
ylabel('Magnitud [dB/Hz]')%nombre del eje y
title('PSD');%titulo de la grafica
legend('Periodograma de Welch','PSD verdadera')%damos una
identificacion
%a la grafica
1
Published with MATLAB® R2018b
2
Señal tbodyacc_t
clc
clear all
close all
load('tbodyacc_t.mat');
w(MaxFreq);
velocidad=round(min(w(MaxFreq))*60);
Error in publish
1
Calculo de la velocidad corriendo
clc
clear all
close all
w(MaxFreq);
1
end
end
%Graficas
h = histogram(velocidad) %Histograma del numero de personas en
funcion de la velocidad en pasos/minuto
h =
2
Published with MATLAB® R2018b
3
Calculo de la velocidad caminando
clc
clear all
close all
w(MaxFreq);
1
end
end
%Graficas
h = histogram(velocidad) %Histograma del numero de personas en
funcion de la velocidad en pasos/minuto
h =
2
Published with MATLAB® R2018b
3
CAMINAR
clc
clear all
close all
t_non_uniform= v_tiempo;
sig_non_uniform=m_aceleracion;
Fs = 50; %Frecuencia de muestreo
plot(t,bodyacc_t)
title('Senial Procesada')
xlim([0 120])
ylabel('TgF')
xlabel('t(s)')
figure(3)
% grafica de la señal aplicando la ventana de Blackman con el
periodograma
% de Welch
plot(w,PxxdB)
1
hold on
plot(w(MaxFreq),pk,'or')
title('Senial aplicando la ventana de Blackman ')
ylabel('Magnitud [db/Hz]')
xlabel('frecuencia [Hz]')
% Obtencion de la velocidad estimada
w(MaxFreq);
velocidad=round(min(w(MaxFreq))*60);
ans =
2
3
Published with MATLAB® R2018b
4
Trotando
clc
clear all
close all
t_non_uniform= v_tiempo;
sig_non_uniform=m_aceleracion;
Fs = 50; %Frecuencia de muestreo
plot(t,bodyacc_t)
title('Senial Procesada')
xlim([0 120])
ylabel('TgF')
xlabel('t(s)')
figure(3)
% grafica de la señal aplicando la ventana de Blackman
plot(w,PxxdB)
hold on
plot(w(MaxFreq),pk,'or')
title('Senial aplicando la ventana de Blackman ')
1
ylabel('Magnitud [db/Hz]')
xlabel('frecuencia [Hz]')
% Obtencion de la velocidad estimada
w(MaxFreq);
velocidad=round(min(w(MaxFreq))*60);
ans =
2
3
Published with MATLAB® R2018b