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.

Cambio de la frecuencia de muestreo

Este ejemplo muestra cómo cambiar la frecuencia de muestreo de una señal. El ejemplo tiene dos partes. La parte uno cambia la frecuencia de muestreo de una entrada sinusoidal de 44,1 kHz a 48 kHz. Este flujo de trabajo es común en el procesamiento de audio. La frecuencia de muestreo utilizada en discos compactos es de 44,1 kHz, mientras que la frecuencia de muestreo utilizada en la cinta de audio digital es de 48 kHz. La parte dos cambia la frecuencia de muestreo de una muestra de voz grabada de 7418 Hz a 8192 Hz.

Cree una señal de entrada consistente en una suma de ondas sinusoidales muestreadas a 44,1 kHz. Las ondas sinusoidales tienen frecuencias de 2, 4 y 8 kHz.

Fs = 44.1e3; t = 0:1/Fs:1-1/Fs; x = cos(2*pi*2000*t)+1/2*sin(2*pi*4000*(t-pi/4))+1/4*cos(2*pi*8000*t);

Para cambiar la frecuencia de muestreo de 44,1 a 48 kHz, debe determinar un número racional (relación de enteros), de tal forma que la frecuencia de muestreo original, 44100, sea igual a 48000 dentro de alguna tolerancia especificada.P/QP/Q

Para determinar estos factores, utilice.rat Introduzca la relación de la nueva frecuencia de muestreo, 48000, con la frecuencia de muestreo original, 44100.

[P,Q] = rat(48e3/Fs); abs(P/Q*Fs-48000)
ans = 7.2760e-12 

Usted ve que sólo difiere de la frecuencia de muestreo deseada, 48000, en el orden deP/Q*Fs

<math display="block">
<mrow>
<mn>1</mn>
<msup>
<mrow>
<mn>0</mn>
</mrow>
<mrow>
<mo>-</mo>
<mn>1</mn>
<mn>2</mn>
</mrow>
</msup>
</mrow>
</math>
.

Utilice los factores de numerador y denominador obtenidos con como entradas para emitir una forma de onda muestreada a 48 kHz.ratresample

xnew = resample(x,P,Q);

Si su ordenador puede reproducir audio, puede reproducir las dos formas de onda. Ajuste el volumen a un nivel cómodo antes de reproducir las señales. Ejecute los comandos por separado para que pueda escuchar la señal con las dos frecuencias de muestreo diferentes.play

% P44_1 = audioplayer(x,44100); % P48 = audioplayer(xnew,48000); % play(P44_1) % play(P48)

Cambie la frecuencia de muestreo de una muestra de voz de 7418 Hz a 8192 Hz. La señal de voz es una grabación de un orador que dice "MATLAB®".

Cargue la muestra de voz.

load mtlb

Al cargar el archivo, se introduce la señal de voz y la frecuencia de muestreo en el espacio de trabajo de MATLAB.mtlb.matmtlbFs

Determine una aproximación racional a la relación de la nueva frecuencia de muestreo, 8192, con la frecuencia de muestreo original. Se usa para determinar la aproximación.rat

[P,Q] = rat(8192/Fs);

Vuelva a muestrear la muestra de voz con la nueva frecuencia de muestreo. Trace las dos señales.

mtlb_new = resample(mtlb,P,Q);  subplot(2,1,1) plot((0:length(mtlb)-1)/Fs,mtlb) subplot(2,1,2) plot((0:length(mtlb_new)-1)/(P/Q*Fs),mtlb_new)

Si su computadora tiene capacidad de salida de audio, puede reproducir las dos formas de onda en sus respectivas frecuencias de muestreo para la comparación. Ajuste el volumen de su ordenador a un nivel de audición cómodo antes de reproducir los sonidos. Ejecute los comandos por separado para comparar los ejemplos de voz con las diferentes frecuencias de muestreo.play

% Pmtlb = audioplayer(mtlb,Fs); % Pmtlb_new = audioplayer(mtlb_new,8192); % play(Pmtlb) % play(Pmtlb_new)

Consulte también