Estoy teniendo problemas para averiguar cómo pasar una señal a un filtro de paso bajo usando MATLAB.
Me dieron un archivo .wav y sigo las instrucciones sobre cómo eliminar los componentes del ruido de alta frecuencia para que no tomen la Transformada Discreta de Fourier (DFT) de la señal de audio. La idea es que hay un mensaje secreto en el archivo .wav que actualmente está oculto por una gran cantidad de ruido de frecuencia no deseado. Se supone que debo deshacerme de dicho ruido.
Mi script es actualmente como sigue:
[y, Fs] = audioread ('horrible_noise.wav');
y = y (:. 1);
parcela (y)
NFFT = longitud (y); % de puntos discretos
Y = fftshift (fft (y, NFFT)); % DFT de la señal de audio
F = ((-1: 2 / NFFT: 1-2 / NFFT) * Fs); % Rango de la frecuencia del archivo de audio
magnitud_Y = abs (Y); % Magnitud de DFT
fase_Y = desenvolver (ángulo (Y)); % Fase de DFT
Se supone que debo trazar la magnitud y la fase y explicar cualquier tendencia en los gráficos.
gráfico (magnitude_Y, F)
gráfico (phase_Y, F)
En este punto, se supone que debo eliminar los componentes de alta frecuencia que no son deseados configurándolos en cero. Lo que aparentemente se hace a través del filtrado de paso bajo. Aquí es donde estoy teniendo problemas. He buscado ayuda en este tema y encontré comandos como el uso de mantequilla, fft, etc. No tengo idea de cómo usar esas funciones y ni siquiera sé si esa es la forma correcta de abordar mi problema.
Nuevamente, me gustaría recibir ayuda para pasar esta señal (DFT) a un filtro de paso bajo para eliminar el ruido no deseado. Gracias.
Señal de audio en cuestión : advertencia, el sonido no está t agradable escuchar Recomendaría bajar su volumen.