Una sequenza sinusoidale riprodotta ad una qualsiasi velocità genera un segnale audio. Maggiore è la velocità, maggiore sarà il timbro del suono.

import IPython
Fs = 12000
IPython.display.Audio([0.5]*Fs, rate=Fs)

Se il segnale è costante non vi è variazione di pressione e quindi “non suona”.

import IPython
Fs = 12000
IPython.display.Audio(np.random.uniform(-1, 1, int(Fs*d)), rate=Fs)

Se invece la sequenza di numeri è casuale viene generato del rumore.

Per creare un segnale di tono puro si utilizza l’equazione base di una sinusoide espressa tramite coseno.

import numpy as np
N = 10 # Numero di istanti da campionare
A = 0.5 # Ampiezza del segnale
f = 2 # Frequenza del segnale
phi = np.pi / 2 # Fase iniziale. Corrisponde a generare il seno.
Fs = 10 # Frequenza di campionamento
t = np.arange(N) * 1/Fs # Array degli istanti di campionamento
s = A * np.cos(2 * np.pi * f * t + phi)

Quindi tramite python si può generare un tono puro con questo codice.

title: Fs ed f
Notare come la frequenza di campionamento e la frequenza del segnale non sono la stessa cosa. Difatti vale il [[Teorema di Nyquist]].

Il quantizzatore approssima il valore di ciascun campione al più simile tra quelli disponibili. Si può quindi misurare un errore di approssimazione.

Per quantizzatori uniformi l’errore massimo è sempre al massimo uguale alla metà dell’intervallo di quantizzazione.

La qualità del quantizzatore viene espressa tramite il Signal To Noise Ratio in dB (scala logatimica).

SNR

In telecomunicazioni ed elettronica il rapporto segnale-rumore, spesso abbreviato con la sigla inglese SNR (Signal to Noise Ratio) o S/N anche nell’uso italiano, è una grandezza numerica che mette in relazione la potenza del segnale utile rispetto a quella del rumore in un qualsiasi sistema di acquisizione, elaborazione o trasmissione dell’informazione.

Wikipedia

Questa quantità si calcola come:

Dove è l’RMS.

import numpy as np
def SNR(original, quantized):
	noise = quan tized - original
	powS = np.sum(original**2)
	powN = np.sum(noise**2)
	return 10*np.log10(powS/powN)

Vedi anche: RMS, Quantizzazione

Link to original

Vedi anche: 2. Audio Digitale, Onda, Teorema di Nyquist, Quantizzazione