Algoritmia - sonido

 
Vista:

sonido

Publicado por victor (2 intervenciones) el 18/12/2002 21:27:15
Hola estoy estudiando ingenieria y necesitaria un algoritmo que me convierta los valores de un archivo de sonido wav a pares ordenados, es decir los valores de la onda cada ciertos instantes, como necesito aplicarle la Transformada de fourier necsitaria 65536 valores por segundo.
Es decir si mi sonido responde a la formula f(x)=2*x necesito los puntos de la onda:

f(0) = 0
f(1 / 65536 ) = 2* 1/65536
asi hasta f(1)= lo que de

en si necesito un algoritmo que me de el muestreo de la señal (sonido)
Puse esta pregunta en foro Visual B asic, pero nadie la sabe

Gracias si alguien me puede ayudar
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

Muestreo de señal de sonido

Publicado por Alejandro (307 intervenciones) el 28/02/2024 00:51:06
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Algoritmo para muestrear una señal de sonido y obtener pares ordenados
 
def muestrear_senal(frecuencia_muestreo, duracion, funcion_senal):
    """
    Muestrea una señal de sonido según la frecuencia de muestreo y la duración especificadas.
    Parameters:
    - frecuencia_muestreo (int): Frecuencia de muestreo en muestras por segundo.
    - duracion (float): Duración de la señal en segundos.
    - funcion_senal (function): Función que describe la señal.
    Returns:
    - List[Tuple[float, float]]: Lista de pares ordenados (tiempo, valor de la señal).
    """
    muestras_por_segundo = frecuencia_muestreo
    total_muestras = int(duracion * muestras_por_segundo)
 
    puntos = []
    for i in range(total_muestras):
        tiempo = i / muestras_por_segundo
        valor_senal = funcion_senal(tiempo)
        puntos.append((tiempo, valor_senal))
 
    return puntos
 
# Ejemplo de uso con la función f(x) = 2*x
frecuencia_muestreo = 65536
duracion_señal = 1.0
 
def funcion_senal(tiempo):
    return 2 * tiempo
 
pares_ordenados = muestrear_senal(frecuencia_muestreo, duracion_señal, funcion_senal)
 
# Imprimir los primeros 10 pares ordenados como ejemplo
for i in range(10):
    print(f"Punto {i + 1}: {pares_ordenados[i]}")

Víctor, este algoritmo genera pares ordenados que representan la señal muestreada de acuerdo con la frecuencia de muestreo y la duración especificadas. Puedes ajustar la función `funcion_senal` según la fórmula de tu sonido. En este ejemplo, se usa la función `f(x) = 2*x`.
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