Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Extraer voces de la señal de música

Implemente un sintetizador de música digital básico y utilícelo para reproducir una canción tradicional en un arreglo de tres voces. Especifique una frecuencia de muestreo de 2 kHz. Guarde la canción como un horario de MATLAB®.

fs = 2e3; t = 0:1/fs:0.3-1/fs;  l = [0 130.81 146.83 164.81 174.61 196.00 220 246.94]; m = [0 261.63 293.66 329.63 349.23 392.00 440 493.88]; h = [0 523.25 587.33 659.25 698.46 783.99 880 987.77]; note = @(f,g) [1 1 1]*sin(2*pi*[l(g) m(g) h(f)]'.*t);  mel = [3 2 1 2 3 3 3 0 2 2 2 0 3 5 5 0 3 2 1 2 3 3 3 3 2 2 3 2 1]+1; acc = [3 0 5 0 3 0 3 3 2 0 2 2 3 0 5 5 3 0 5 0 3 3 3 0 2 2 3 0 1]+1;  song = []; for kj = 1:length(mel)     song = [song note(mel(kj),acc(kj)) zeros(1,0.01*fs)]; end song = song'/(max(abs(song))+0.1);  % To hear, type sound(song,fs)  tune = timetable(seconds((0:length(song)-1)'/fs),song);

Abra y arrastre el horario desde el explorador del espacio de trabajo a la tabla Signal.Analizador de señales Haga clic en el botón para crear una cuadrícula de dos por dos de pantallas.Cuadrícula de visualización Seleccione las dos pantallas superiores y la pantalla inferior izquierda y haga clic en el botón para agregar una vista de espectro.Espectro Seleccione la pantalla inferior derecha, haga clic para agregar una vista de espectrograma y haga clic para eliminar la vista de tiempo.Frecuencia de tiempohora Arrastre la canción a las cuatro pantallas. Seleccione la pantalla inferior derecha y, en la pestaña, especifique una resolución de tiempo de 0,31 segundos (310 ms) y una superposición del 0% entre los segmentos adyacentes.Espectrograma Establezca elLímites de potencia

<math display="inline">
<mrow>
<mo>-</mo>
<mn>50</mn>
</mrow>
</math>
dB y
<math display="inline">
<mrow>
<mo>-</mo>
<mn>10</mn>
</mrow>
</math>
Db.

En la pestaña, haga clic tres veces para crear tres copias de la canción.AnalizadorDuplicado Cambie el nombre de las copias como , , y haciendo doble clic en la columna de la tabla Signal.highmediumlowNombre Mueva las copias a las dos pantallas superiores e inferiores izquierdas.

Preprocesar las señales duplicadas utilizando filtros.

  1. Seleccione la señal haciendo clic en su nombre en la tabla Señal.high En la pestaña, haga clic en .AnalizadorPasa-altos En la pestaña que aparece, introduzca una frecuencia de banda de paso de 450 Hz y aumente la pendiente a 0,95.Pasa-altos Haga clic.Pasa-altos

  2. Seleccione la señal haciendo clic en su nombre en la tabla Señal.medium En la pestaña, haga clic en .AnalizadorPreprocesamiento Bandpass En la pestaña que aparece, introduzca 230 Hz y 450 Hz como frecuencias de banda de paso inferior y superior, respectivamente.Bandpass Aumente la pendiente a 0,95. Haga clic.Bandpass

  3. Seleccione la señal haciendo clic en su nombre en la tabla Señal.low En la pestaña, haga clic en .AnalizadorPasabajos En la pestaña que aparece, introduzca una frecuencia de banda de paso de 230 Hz y aumente la pendiente a 0,95.Pasabajos Haga clic.Pasabajos

En cada una de las tres pantallas que contienen señales filtradas:

  1. Elimine la señal original desactivando la casilla de verificación situada junto a su nombre.

  2. En la pestaña, haga clic para agregar una vista de espectrograma y haga clic para eliminar la vista de tiempo.MonitorFrecuencia de tiempohora

  3. En la pestaña, especifique una resolución de tiempo de 0,31 segundos y una superposición del 0% entre los segmentos adyacentes.Espectrograma Establezca elLímites de potencia

    <math display="inline">
    <mrow>
    <mo>-</mo>
    <mn>50</mn>
    </mrow>
    </math>
    dB y
    <math display="inline">
    <mrow>
    <mo>-</mo>
    <mn>10</mn>
    </mrow>
    </math>
    Db.

Seleccione las tres señales filtradas haciendo clic en su columna en la tabla Señal.Nombre En la pestaña, haga clic y guarde las señales en un archivo MAT llamado .Analizadorexportarmusic.mat En MATLAB, cargue el archivo en el espacio de trabajo. Traza los espectros de las tres señales.

load music  pspectrum(low) hold on pspectrum(medium) pspectrum(high) hold off

% To hear the different voices, type  % sound(low.low,fs), pause(5), sound(medium.medium,fs), pause(5), sound(high.high,fs)

Consulte también

Apps

Funciones

Ejemplos relacionados

Más acerca de