Matlab - Eliminación de clicks con matlab.

 
Vista:

Eliminación de clicks con matlab.

Publicado por Gemma (1 intervención) el 13/12/2001 18:43:35
Hola soy Gemma y mi proyecto final de carrera trata de la eliminación de clicks de los discos de vinilo.
Con la señal con clicks predigo la siguiente muestra para detectar el pico pero luego para interpolar no se.
Si alguien sabe de este tema le agradecería que se pusiera en contacto conmigo.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Eliminación de clicks en señales de vinilo y técnicas de interpolación

Publicado por Alejandro (145 intervenciones) el 05/10/2023 00:25:19
¡Hola Gemma! Tu proyecto suena fascinante. Trabajar en la eliminación de clicks en discos de vinilo implica tratar con señales de audio y técnicas de procesamiento de señales bastante interesantes.

Para la interpolación, podrías considerar métodos como la interpolación polinómica, la interpolación spline o incluso técnicas más avanzadas como Wavelet. Aquí hay un enfoque básico utilizando interpolación polinómica en Python con SciPy para darte una idea:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import numpy as np
from scipy.interpolate import interp1d
 
# Supongamos que 'click_signal' es tu señal con clicks y 'click_indices' son los índices de los clicks.
 
# Encontrar la amplitud máxima y mínima de la señal para normalizar
max_amplitude = np.max(click_signal)
min_amplitude = np.min(click_signal)
 
# Normalizar la señal para la interpolación
normalized_signal = (click_signal - min_amplitude) / (max_amplitude - min_amplitude)
 
# Crear una función de interpolación polinómica
interp_function = interp1d(click_indices, normalized_signal, kind='cubic', fill_value='extrapolate')
 
# Crear nuevos índices para la interpolación (pueden ser puntos entre los índices de los clicks)
new_indices = np.linspace(min(click_indices), max(click_indices), num=len(click_signal), endpoint=True)
 
# Aplicar la función de interpolación a los nuevos índices
interpolated_signal = interp_function(new_indices)
 
# Deshacer la normalización para obtener la señal interpolada
interpolated_signal = interpolated_signal * (max_amplitude - min_amplitude) + min_amplitude

Este código utiliza la función `interp1d` de SciPy para realizar una interpolación polinómica cúbica. Puedes ajustar el tipo de interpolación según tus necesidades específicas.

Dicho esto, para un proyecto tan especializado, puede ser beneficioso conectarte con expertos en procesamiento de señales de audio o incluso en la restauración de audio. Considera buscar foros, comunidades en línea o incluso contactar a profesionales en el campo.

¡Espero que encuentres la ayuda que necesitas para llevar a cabo tu proyecto! ¡Buena suerte, Gemma!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar