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 de la señal

Este ejemplo muestra cómo cambiar la frecuencia de muestreo de una señal. El ejemplo tiene dos partes. La primera parte 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 segunda parte cambia la frecuencia de muestreo de una muestra de voz grabada de 7418 Hz a 8192 Hz.

Cree una señal de entrada que consista 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 forma que la frecuencia de muestreo original, 44100, sea igual a 48000 dentro de una tolerancia especificada.P/QP/Q

Para determinar estos factores, utilice .rat Introduzca la relación de la nueva frecuencia de muestreo, 48000, a 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 numerador y denominador obtenidos como entradas para generar una forma de onda muestreada a 48 kHz.ratresample

xnew = resample(x,P,Q);

Si el 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 velocidades 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 altavoz que dice "MATLAB®".

Cargue la muestra de voz.

load mtlb

La carga del archivo lleva la señal de voz y la frecuencia de muestreo, al espacio de trabajo de MATLAB.mtlb.matmtlbFs

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

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

Vuelva a muestrear la muestra de voz a la nueva frecuencia de muestreo. Traza 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 a sus respectivas frecuencias de muestreo para la comparación. Ajuste el volumen del ordenador a un nivel de escucha cómodo antes de reproducir los sonidos. Ejecute los comandos por separado para comparar las muestras de voz a las diferentes velocidades de muestreo.play

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

Consulte también