Suma de señales
Publicado por Juan Aragón (3 intervenciones) el 06/11/2016 01:53:25
Buen día, soy estudiante universitario y estoy realizando un programa que me permita hacer suma, multiplicación y convolución entre dos señales.
Tengo un problema al sumar dos señales de audio, ya que estas tienen duraciones distintas y al sumarlas obviamente manda un error de matriz.
En teoría la suma de dos señales de audio debería, no se si me este equivocando, pero, un ejemplo sería: Audio_1 que dura 3 seg, y Audio_2 que dura 7 seg. Su suma resultaría en que Audio_1 y Audio_2 los 3 primeros segundos se escuchen los dos y después solo sonaría lo restante de Audio_2 .
Mi pregunta es, como logro hacer esta suma de los dos audios como lo indique arriba o si hay una manera de igualar el tamaño de estas dos señales de audio. Inicialmente tenía esta parte de código pero no corresponde al comportamiento real de una suma de dos señales de audio.
cancion_1='Someb.wav'; %Cancion
[s, fs]=audioread(cancion_1);
cancion_2='polaplus.wav'; %Cancion
[p, fi]=audioread(cancion_2); %Cargar el audio
disp(length(p));
disp(length(s));
% m=min([length(s), length(p)]);
% sum=s(1:m)+p(1:m);
Tengo un problema al sumar dos señales de audio, ya que estas tienen duraciones distintas y al sumarlas obviamente manda un error de matriz.
En teoría la suma de dos señales de audio debería, no se si me este equivocando, pero, un ejemplo sería: Audio_1 que dura 3 seg, y Audio_2 que dura 7 seg. Su suma resultaría en que Audio_1 y Audio_2 los 3 primeros segundos se escuchen los dos y después solo sonaría lo restante de Audio_2 .
Mi pregunta es, como logro hacer esta suma de los dos audios como lo indique arriba o si hay una manera de igualar el tamaño de estas dos señales de audio. Inicialmente tenía esta parte de código pero no corresponde al comportamiento real de una suma de dos señales de audio.
cancion_1='Someb.wav'; %Cancion
[s, fs]=audioread(cancion_1);
cancion_2='polaplus.wav'; %Cancion
[p, fi]=audioread(cancion_2); %Cargar el audio
disp(length(p));
disp(length(s));
% m=min([length(s), length(p)]);
% sum=s(1:m)+p(1:m);
Valora esta pregunta
0