La respuesta más simple si se trata de grabaciones cortas es escucharla y detectar "pops" (sonido corto con pinchos) en la reproducción. Sin embargo, una solución más robusta es analizar el espectro de frecuencia de la grabación.
Recuerde que cuando una señal se recorta en algún umbral, localmente se parece a una onda cuadrada en las regiones recortadas. Esto introduce armónicos más altos en el espectro de frecuencia que no hubieran estado allí originalmente. Si su señal es ilimitada (la mayoría de las señales del mundo real lo son) y está muestreando muy por encima de la tasa de Nyquist, entonces esto se destaca bastante claro como el día.
Aquí hay un breve ejemplo en MATLAB que demuestra esto. Aquí, creo una señal de banda ilimitada de 1s de duración, muestreada a 1000Hz, y luego la recorto entre ±0.8
(vea la gráfica superior en la figura a continuación)
time = 0:0.001:1;
cleanSignal = sin(2*pi*75*time).*chirp(time,50,1,200);
clippedSignal = min(abs(cleanSignal),0.8).*sign(cleanSignal);
Puede ver claramente que el espectro de frecuencia de la forma de onda original, sin recortar, está limpio y llega a cero fuera del ancho de banda (abajo a la izquierda), mientras que en la señal recortada, hay una distorsión menor general del espectro (esperada si se recorta) y la mayoría Es importante destacar que los armónicos / picos / contribuciones distintas de cero en el espectro fuera del ancho de banda de la señal (abajo a la derecha).
En general, este podría ser un mejor enfoque, porque la detección de recorte al observar los valores generalmente no es precisa a menos que haya diseñado el equipo usted mismo y conozca con precisión el valor del umbral.