ruido perjudicial para negro estudiar ejemplos blanco bebes acustica java android

java - perjudicial - ruido blanco radio



¿Puedes detectar el ruido blanco mediante programación? (9)

¿Tiene una suscripción a la biblioteca IEEE Xplore? Hay innumerables artículos ( one escogido al azar) sobre este mismo tema.

Un método muy simplista sería observar la "planitud" de la densidad espectral de potencia. Uno podría tomar esto usando una Transformada Rápida de Fourier de la señal en el dominio del tiempo y encontrar la desviación estándar de la densidad espectral. Si está por debajo de un umbral, tiene su ruido blanco.

Se ha descubierto que Dell Streak tiene una radio FM que tiene controles muy toscos. ''Escaneo'' no está disponible por defecto, así que mi pregunta es si alguien sabe cómo, usando Java en Android, uno podría ''escuchar'' la radio FM mientras iteramos por el rango de frecuencias detectando ruido blanco (o una buena señal) para para actuar como una función de búsqueda de radio normal?


He hecho algunos trabajos prácticos en esta área específica, recomendaría (si tienes poco tiempo para ello) probar un poco de experimentación antes de recurrir a fft''ing. La secuencia de pcm se puede interpretar de forma muy compleja y sutil (según el filtrado y el remuestreo de alta calidad) pero también se puede tratar prácticamente para muchos fines como la ruta de una línea ondulada.

El ruido blanco es una sacudida impredecible de la línea, que sin embargo es bastante continua en intensidad (rms, media absoluta ...) El contenido acústico es meneo recurrente y sorpresas ocasionales (saltos, saltos):]

El contenido no sonoro de una señal se puede estimar realizando cálculos rápidos en una ventana en ejecución de la secuencia pcm.

Por ejemplo, el ruido tenderá fuertemente a tener un valor más alto para la integral absoluta de su derivada, que el no ruido. Creo que esa es la forma académica de decir esto:

loop(n+1 to n.length) { sumd0+= abs(pcm[n]); sumd1+= abs(pcm[n]-pcm[n-1]); } wNoiseRatio = ?0.8; //quite easily discovered, bit tricky to calculate. if((sumd1/sumd0)<wNoiseRatio) { /*not like noise*/ }

Además, el promedio absoluto en funcionamiento sobre ~ 16 a ~ 30 muestras de ruido blanco tenderá a variar menos, sobre el ruido blanco que la señal acústica:

loop(n+24 to n.length-16) { runAbsAve1 += abs(pcm[n]) - abs(pcm[n-24]); } loop(n+24+16 to n.length) { runAbsAve2 += abs(pcm[n]) - abs(pcm[n-24]); } unusualDif= 5; //a factor. tighter values for longer measures. if(abs(runAbsAve1-runAbsAve2)>(runAbsAve1+runAbsAve2)/(2*unusualDif)) { /*not like noise*/ }

Esto se refiere a cómo el ruido blanco tiende a ser no esporádico en un lapso lo suficientemente grande como para promediar su entropía. El contenido acústico es esporádico (potencia localizada) y recurrente (potencia repetitiva). La prueba simple reacciona al contenido acústico con frecuencias más bajas y podría ser ahogada por el contenido de alta frecuencia. Hay filtros de paso bajo simples que pueden ayudar (y sin duda otras adaptaciones).

Además, el cuadrado medio de la raíz se puede dividir por la suma absoluta media que proporciona otra proporción que debe ser particular al ruido blanco, aunque no puedo calcular lo que es ahora. La relación también será diferente para las señales derivadas también.

Pienso en estos como simples firmas formuladas de ruido. Estoy seguro de que hay más ... Perdón por no ser más específico, es un consejo difuso e impreciso, pero también lo es realizar pruebas simples a la salida de un fft. Para una mejor explicación y más ideas, tal vez revise las medidas estadísticas y estocásticas (?) De entropía y aleatoriedad en la wikipedia, etc.


La pregunta principal aquí es: ¿a qué tipo de señal tienes acceso?

Apuesto a que no tienes acceso directo a la señal EM analógica directamente. Entonces, no es posible usar FFT en esta señal. Tampoco puede intentar construir un bucle de bloqueo por fases , que es la forma en que funciona su sintonizador de radio antiguo estándar ("Escaneo" en su caso).

Su única opción es elegir una frecuencia y escucharla también (e intente detectar cuando es ruido con FFT en el sonido). Incluso puede que solo tenga acceso a la señal FFTed.

Problema aquí: si desea detectar una frecuencia potencial utilizando ruido blanco, captará las señales con demasiada facilidad.

De todos modos, esto es lo que trataría de hacer con esta estrategia:

Doble integrar la autocorrelation de la densidad espectral en una fracción de segundo de audio. Y esto para cada frecuencia.

Luego busque una frecuencia FM donde este número esté al máximo.

Pequeña explicación aquí:

  • La densidad espectral le da una señal de que la mayoría de las frecuencias utilizadas están al máximo.
  • Si transcurre un tiempo más tarde si se alcanzan las mismas frecuencias, entonces tiene un sonido supuestamente claro. Usted obtiene esto integrando la autocorrelación de la densidad espectral para una frecuencia de audio por una fracción de segundo (usando alguna función que crezca más de lo que también podría funcionar linealmente)
  • Entonces solo tienes que integrar esto para todas las frecuencias de audio

También tenga cuidado de normalizar las integrales: una señal de ruido blanco fuerte no debe obtener una puntuación más alta que una señal de audio clara pero baja.


Para la detección de ruido blanco necesita hacer FFT y ver que tiene espectro más o menos continuo. Pero grabar desde FM podría ser un problema.



Si no tiene herramientas de FFT disponibles, solo una sugerencia salvaje:
Intenta comprimir algunos milisegundos de audio.

Una característica típica del ruido es que comprime mucho menos que la señal clara.


Solo el filtrado de paso alto le dará una buena idea, y algunas veces se ha usado para silenciar las radios fm.

Tenga en cuenta que esto es comparable a lo que estaba obteniendo la sugerencia de la derivada: tomar la derivada es una forma simple de filtro de paso alto, y tomar el valor absoluto de esa forma cruda de medir la potencia.


Varias personas han mencionado la FFT, lo cual querrás hacer, pero para detectar ruido blanco necesitas asegurarte de que la magnitud sea relativamente constante en el rango de las frecuencias de audio. Querrá ver solo las magnitudes, puede descartar las fases. Puede calcular una desviación promedio y estándar para las magnitudes en O (N) tiempo. Para el ruido blanco, debe encontrar que la desviación estándar es una fracción relativamente pequeña del promedio. Si recuerdo bien mis estadísticas, deberían ser aproximadamente (1 / sqrt (N)) del promedio.


Usa una transformada rápida de Fourier.

Esto es para lo que puedes usar una Transformada Rápida de Fourier. Analiza la señal y determina la intensidad de la señal en varias frecuencias. Si hay un pico en la curva de FFT, debería indicar que la señal no es simplemente ruido blanco.

Here hay una biblioteca que admite FFT. Además, here hay un blog con código fuente en caso de que quiera aprender sobre lo que hace la FFT.