5 votos

Generando ruido rosa

He generado algo de ruido blanco en Excel usando la fórmula

PS

Ahora me gustaría crear un poco de ruido rosa. Creo que esto se hace aplicando algún tipo de filtro al ruido blanco, pero no puedo averiguar cómo hacerlo.

PS El ruido blanco tiene una densidad espectral plana, pero en el ruido rosa la frecuencia del espectro se reduce como$$2*\mathrm{Math.RAND}()-1$. ¡Cualquier ayuda es muy apreciada!

3voto

heathrow Puntos 25

Los términos de "ruido blanco" y "ruido rosa" se aplica al ruido que depende de un parámetro. La ecuación que dio técnicamente no es ruido--- es un número real distribuido uniformemente entre -1 y 1. Pero voy a suponer que usted está llamando a la función aleatorio dentro de una rutina, y que esta rutina es la simulación de un sistema en el tiempo, y cada paso de tiempo, se añade el número aleatorio para que la velocidad o la aceleración en la ecuación diferencial. En este caso, el RAND llamada se convierte en ruido blanco en el corto de tiempo límite.

Es fácil generar ruido blanco, ya que usted no necesita saber los valores anteriores de el ruido para obtener los valores futuros.

El ruido rosa con un espectro 1/f es no local, por lo que necesita para hacer una FFT en una larga secuencia aleatoria, dividir por $\sqrt{f}$ y FFT de la espalda, como DarenW dijo. Esto requiere que usted para almacenar toda la secuencia de números aleatorios en la memoria, y es muy tedioso. Si utiliza un filtro, va a ser no local en el tiempo, así que usted todavía necesita para almacenar muchos valores aleatorios para trabajar con.

Usted puede generar un no-rosa versión de ruido coloreado por mantener una suma variable-s de todo en su programa. Simplemente deje que s=s+(2*RAND()-1) (pero tenga cuidado--- este presenta una ligera deriva en s porque RAND generalmente puede devolver exactamente cero internamente, pero nunca exactamente 1. Usted puede solucionar este problema mediante el mantenimiento de una muestra aleatoria de la variable de alrededor y restar la cantidad aleatoria en lugar de añadir que cuando el signo es negativo). La suma del valor de s se tiene mucho tiempo correlaciones, y es el espectro es un powerlaw que cae como $1\over f^2$. Tal vez esto sea suficiente para sus necesidades--- sin duda es mucho más fácil numéricamente.

1voto

zkent Puntos 133

Para ruido rosa, el espectro de potencia se cae como 1/f. Recordar que el poder es el cuadrado de la amplitud. Para una señal eléctrica, la potencia es el voltaje a través de los tiempos de la corriente que fluye a través de una carga y la corriente de la siguiente manera a partir de la Ley de Ohm. Es posible organizar resistencias y condensadores como un filtro de paso bajo para hacer una aproximación de ruido rosa, pero no es preciso. (Tengo un esquema en mis archivos en algún lugar. Nag mí y voy a buscarlo.)

Pero su señal es una lista de números en un ordenador, estás de suerte! Estos números son como los voltajes. Tomar una transformada de Fourier (no sé de Excel puede hacer eso), y vas a tener amplitudes ordenados por frecuencia. Dividir cada una amplitud por la raíz cuadrada de la frecuencia. Entonces la inversa de la transformada de Fourier se dará una señal de ruido rosa.

Utilizamos las raíces cuadradas porque queremos el poder, que es el cuadrado de la amplitud, para reducirse por un factor de f. Por supuesto, usted puede querer hacer una excepción para frecuencia cero - acaba de establecer su amplitud a cero, y quizás también a la par de la frecuencia más baja de las amplitudes de evitar desbordamientos u otros problemas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X