AYUUUUDA ejercicio Matlab .
Publicado por Luisa (6 intervenciones) el 19/01/2021 00:34:57
Hola necesito ayuda con esto. Este es el enunciado de mi problema:
• A partir de esa matriz Sonidos, crear 3 vectores Micro1, Micro2 y Micro3 conteniendo cada uno de ellos las lecturas de un micrófono.
• Para cada uno de los vectores, localizar el índice de la muestra donde se detecta el sonido.
- Generar una señal aproximada proporcional a la derivada de la forma de onda del vector Micro1. Para ello:
Crea otro vector B, de la misma dimensión que Micro1, con todos los valores a 0.
Recorre cada elemento del vector B, asignando a B(i) el valor Micro(i)-Micro1(i-1), correspondiente a la diferencia entre 2 medidas consecutivas en Micro1. El primer elemento de B dejarlo con el valor 0.
Normaliza B dividiendo cada elemento por el valor máximo en B.
- Dibuja los dos vectores: Micro1 en azul y B en rojo.
- Localiza el índice R1 de la primera muestra de B cuyo valor supera el valor 0.7
El código que yo he generado es:
MI DUDA ES EN EL ÚLTIMO PUNTO. LO QUE YO HE PUESTO NO CREO QUE ESTE BIEN.
Un saludo y muchas gracias por la ayuda
• A partir de esa matriz Sonidos, crear 3 vectores Micro1, Micro2 y Micro3 conteniendo cada uno de ellos las lecturas de un micrófono.
• Para cada uno de los vectores, localizar el índice de la muestra donde se detecta el sonido.
- Generar una señal aproximada proporcional a la derivada de la forma de onda del vector Micro1. Para ello:
Crea otro vector B, de la misma dimensión que Micro1, con todos los valores a 0.
Recorre cada elemento del vector B, asignando a B(i) el valor Micro(i)-Micro1(i-1), correspondiente a la diferencia entre 2 medidas consecutivas en Micro1. El primer elemento de B dejarlo con el valor 0.
Normaliza B dividiendo cada elemento por el valor máximo en B.
- Dibuja los dos vectores: Micro1 en azul y B en rojo.
- Localiza el índice R1 de la primera muestra de B cuyo valor supera el valor 0.7
El código que yo he generado es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
load Sonidos.mat
A=Sonidos;
micro1=A(1,:);
micro2=A(2,:);
micro3=A(3,:);
% Indice donde se detecta la muestra para cada vector
B=zeros(1,length(micro1));
for i=2:length(micro1)
dif(i)=( micro1(i)-micro1(i-1));
maximo= max(dif);
B=dif./maximo;
end
% Dibujamos
figure(1)
plot(micro1,'b')
hold on
plot(B,'r')
% %%%
n=length(B);
R1=0;
for k=1:n
if B(k)>0.7
break
end
R1=R1-B(k);
end
disp(R1)
MI DUDA ES EN EL ÚLTIMO PUNTO. LO QUE YO HE PUESTO NO CREO QUE ESTE BIEN.
Un saludo y muchas gracias por la ayuda
Valora esta pregunta


0