Autor Tema: Noise floor y desviacion standar  (Leído 4355 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Noise floor y desviacion standar
« en: 27 de Junio de 2015, 09:46:46 »
Buenas, alguien sabe como se calcula el piso de ruido de una señal? y lo mismo de su desviacion standar?

Estoy buscando info y no encuentro mucho...

sds.
-
Leonardo Garberoglio

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4917
Re: Noise floor y desviacion standar
« Respuesta #1 en: 27 de Junio de 2015, 10:05:39 »
el ruido se mide por presion sonora o decibelio.
quizas  te sirva esto
Saludos

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Noise floor y desviacion standar
« Respuesta #2 en: 27 de Junio de 2015, 11:00:09 »
el ruido se mide por presion sonora o decibelio.
quizas  te sirva esto
Saludos


Gracias!
La definicion del noise floor sería la de "Nivel de ruido continuo equivalente"??

sds.
-
Leonardo Garberoglio

Desconectado xocas

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 2312
Re: Noise floor y desviacion standar
« Respuesta #3 en: 27 de Junio de 2015, 11:59:13 »
Creo que una traducción bastante acertada para Noise floor sería Ruido de fondo

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Noise floor y desviacion standar
« Respuesta #4 en: 27 de Junio de 2015, 13:37:06 »
Creo que una traducción bastante acertada para Noise floor sería Ruido de fondo

Si si, el tema es como se calcula.... Tengo la señal y su fft, entiendo que el ruido es todo excepto la señal que me interesa. Entonces, creó que se toman, por ejemplo, 10 muestras alrededor la freq de la onda que me interesa t se calcula el ruido de fondo. Pero como? Promediando los valores que toma la fft en esas 20 muestras? También necesitó la desviación estándar...

Sds
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Noise floor y desviacion standar
« Respuesta #5 en: 27 de Junio de 2015, 19:42:53 »
podrias restar/quitarle la onda que queres obtener y eso es tu ruido...

Promediando los valores ( de las muestras!! )  obtenes un filtrado pasa bajos., del FFT ya no se que lograrias "promediandolos" realmente.
Pero no entiendo por que necesitas el ruido? ...

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Noise floor y desviacion standar
« Respuesta #6 en: 27 de Junio de 2015, 20:22:25 »
El tema es como funciona el estudio de DPOAE (Distortion product - otoacustic evoked)
Uno debe estimular el oido con f1 y con f2 (dos tonos puros a frecuencias específicas y con niveles del orden de los 50 - 60 Db SPL), cuando se hace esto el oido responde de forma natural con el producto de distorcion 2xf1-f2.
El problema son los niveles de las señales y piso de ruido. Las f1 y f2 rondan los 50-60 Db SPL. El piso de ruido ronda los -10 a 0 db y la DPOAE (2f1-f2) ronda los -5 a 15 db SPL).
Entonces, la señal DPOAE no se puede "ver" directamente de la señal registrada. Sino que hay que aplicar algún método para eliminar el ruido y que aparezca la DPOAE.
Clásicamente lo que se hace es ensayar N frames de, por ejemplo, 1024 muestras a Fs (22050 Hz). En cada ensayo vamos a tener f1, f2, la DPOAE y ruido. Los criterios para decidir si se encuentra la DPOAE en lo frames es:
Que el piso de ruido sea menor a 15 db SPL. Si llega a ese nivel se descarta el frame ya que puede ser que la probeta este mal puesta en el oido, que el bebe esté llorando, se mueva o lo que sea.
Luego de aceptados los frames, se hace el promedio sincrónico y de con esto se reduce muchísimo el ruido, Se hace la FFT de la señal promediada y se busca si está presente la DPOAE. Para decidir que está presente ésta debe ser por lo menos 2 desviaciones estándar por encima del piso de ruido.

Es por ello que este método demanda el cálculo del piso del ruido alrededor de la frecuencia de la DPOAE y la desviacion standar del mismo.

Me expiqué mejor ahora?

El tema del filtrado sincrónico funciona bien. Ya lo testié con señales producidas por mi en matlab.
Ahora queda poder alcular el piso del ruido, su desviacion estándar y ver la implementacion en el micro.

Otro tema que me preocupa es que la DPOA es 1000 veces mas chica que la f1 (de 66db a 0 db hay mas o menos 1000 veces). Por lo que investigué se usan ADC de 16 bits lo que da +-32768 cuentas. O sea que si se calibra la ganancia del ADC para que 32700 sean 60 db SPL, la señal de la DPOAE estará en el orden de las 32 cuentas. Lo cual me parece que es imposible... Usando 24 bits (estaos usando un audio codec con ADC de 24 bits) tendríamos que la DPOAE estaría en el orden de las 8000 cuentas, lo cuál me parece más creible...

Saludos y gracias!
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Noise floor y desviacion standar
« Respuesta #7 en: 28 de Junio de 2015, 19:19:24 »
Disculpa elgarbe que no te pueda dar una solucion certera ya que conosco mas que nada la parte teorica de esto.

Lo unico que se me ocurre es que puedas tirar una (o algunas para promediar) muestra de solamente el ruido y luego con las señales, como para tener una base.

No se como todavia mediste los dB SPL, imagino que ya tenes una medida de los 20uP(0db SPL o alguna otra medida de calibracion) para hacer una referencia de los dB SPL.
Si ya tenes esa referencia y tiras unas muestras como para promediarlo al ruido podrias medirlo (conseguis tu valor medio de ruido).

La desviacion estandar por lo que dice la formula (si no me estoy equivocando) basicamente implica que la señal deberia ser 3 veces mas grande que el ruido ( si es que se compara con el ruido - media sacada anteriormente), suponiendo una muestra nomas. Que seria la final, en la formula N= 1 , u=valor medio de ruido, x= señal en cuestion



Con respecto al tema del ADC de 16 y 24 bits. Lo mejor es el de 24bits, ya que al aumentar la cantidad de bits disminuye el error de cuantizacion ( y que es tambien un ruido ) bajando un poco mas el ruido que entra a las muestras.
Por otro lado tenes que ser capaz de no saturar el ADC sino ahi metes errores, asi que deberia ser capaz de llegar a unos 70 db SPL (por dar un ejemeplo), si hay algo mayor a los 66 db SPL eso descartar la muestra por ruido.



Y un por las dudas:
Citar
Measuring signal-to-noise ratios requires the selection of a representative or reference signal. In audio engineering, the reference signal is usually a sine wave at a standardized nominal or alignment level, such as 1 kHz at +4 dBu (1.228 VRMS).
A lo que me refiero con esto es que puedas usar una de tus funciones para encontrar el SNR y asi saber donde esta tu piso de ruido.
http://dsp.stackexchange.com/questions/17871/how-to-calculate-signal-to-noise-ratio


Una cosa que por ahi no entiendo, es por que dejar las f1 y f2 y no removerlas. asi uno puede amplificar la señal con el ruido (aunque no se si se ganaria algo haciendolo y por ahi se vuelva muy complicado hacerlo analogicamente, digitalmente parece mucho mas simple, pero era para resolver el rango dinamico del ADC)
Finalmente no se si te ayude o te la complique, en fin, yo me baso que el ruido es algo totalmente aleatoreo, si promedias como ves, vas encontras la señal (y aumentas el SNR), la señal va a aparecer sola por ser de un caracter no aleatorio.
« Última modificación: 28 de Junio de 2015, 19:45:18 por KILLERJC »

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Noise floor y desviacion standar
« Respuesta #8 en: 28 de Junio de 2015, 21:20:09 »
Disculpa elgarbe que no te pueda dar una solucion certera ya que conosco mas que nada la parte teorica de esto.

Estoy bastante lejos de las respuestas, por lo que cualquier dato sirve!

Lo unico que se me ocurre es que puedas tirar una (o algunas para promediar) muestra de solamente el ruido y luego con las señales, como para tener una base.

Yo pensé algo de eso y puedo intentarlo. El tema es que el piso del ruido se debe muestrar y verificar junto con las señales de la DPOAE ya que es un criterio para descartar o no cada ensayo


No se como todavia mediste los dB SPL, imagino que ya tenes una medida de los 20uP(0db SPL o alguna otra medida de calibracion) para hacer una referencia de los dB SPL.
Si ya tenes esa referencia y tiras unas muestras como para promediarlo al ruido podrias medirlo (conseguis tu valor medio de ruido).

Por ahora es todo simulacion. Cuando pasemos a la realidad, el parlante te da la curva de cuántos db SPL da para cada frecuencia con cierta exitacion. El codec trae aplificador digital integrado, entonces uno puede variar la amplitud de la salida y en funcion de eso serán los db SPL de salida. Tenemos un oido artificial para realizar calibraciones, pero por ahora estamos en la parte de simulacion, mi socio esta terminando el primer prototipo de esta primer parte del proyecto para hacer pruebas reales.
En la literatura dice que debemos exitar al oido con dos frecuencias y con amplitud 60db spl y 66 db spl (mas o menos) y el oido responde con otra señal de frecuencia 2f1-f2 y con una amplitud de entre -5 y 15 Db SPL.
Bueno, en simulacion yo creo esas 3 señales, le sumo ruido y corro el algoritomo que permite promediar sincrónicamente muchos ensayos.
Le estaré errando al cálculo de la amplitud a poner en matlab para cada amplitud de cada señal?


La desviacion estandar por lo que dice la formula (si no me estoy equivocando) basicamente implica que la señal deberia ser 3 veces mas grande que el ruido ( si es que se compara con el ruido - media sacada anteriormente), suponiendo una muestra nomas. Que seria la final, en la formula N= 1 , u=valor medio de ruido, x= señal en cuestion



Ok, pero primero, como se calcula el piso de ruido? supongamos que muestreo 1 segundo de ruido, que operacion se realiza sobre esas muestras para determinar el piso de ruido? se saca la fft y el valor de cada punto en la fft es el valor del piso de ruido? o, se promedian valores de la fft alrededor de la frecuencia que nos interesa conocer el piso de ruido? eso es lo primero que me falta.

Con respecto al tema del ADC de 16 y 24 bits. Lo mejor es el de 24bits, ya que al aumentar la cantidad de bits disminuye el error de cuantizacion ( y que es tambien un ruido ) bajando un poco mas el ruido que entra a las muestras.
Por otro lado tenes que ser capaz de no saturar el ADC sino ahi metes errores, asi que deberia ser capaz de llegar a unos 70 db SPL (por dar un ejemeplo), si hay algo mayor a los 66 db SPL eso descartar la muestra por ruido.



Si, eso es cierto, pero me equivoco en pensar que si quiero medir algo de 70db junto con algo de 0db, es numericamente imposible con 16 bits? digo, con 16 bits tengo +-32700 cuentas. 70db es mas de 2000 veces mayor que 0db por lo que si ajusto la ganancia para que 32700 sea 70db, entonces 0db será del orden de las 16 cuentas... si es así, es numericamente imposible medir esas dos señales juntas... no?

Y un por las dudas:
Citar
Measuring signal-to-noise ratios requires the selection of a representative or reference signal. In audio engineering, the reference signal is usually a sine wave at a standardized nominal or alignment level, such as 1 kHz at +4 dBu (1.228 VRMS).
A lo que me refiero con esto es que puedas usar una de tus funciones para encontrar el SNR y asi saber donde esta tu piso de ruido.
http://dsp.stackexchange.com/questions/17871/how-to-calculate-signal-to-noise-ratio

Estudio esto y veo si saco algo que me sirva. Gracias!

Una cosa que por ahi no entiendo, es por que dejar las f1 y f2 y no removerlas. asi uno puede amplificar la señal con el ruido (aunque no se si se ganaria algo haciendolo y por ahi se vuelva muy complicado hacerlo analogicamente, digitalmente parece mucho mas simple, pero era para resolver el rango dinamico del ADC)
Finalmente no se si te ayude o te la complique, en fin, yo me baso que el ruido es algo totalmente aleatoreo, si promedias como ves, vas encontras la señal (y aumentas el SNR), la señal va a aparecer sola por ser de un caracter no aleatorio.

El tema es que yo envío f1 y f2 y si o si recivo f1, f2 y fdp. Por lo que debo ajustar la ganancia del ADC para llegar a 70db como vos dijiste. No puedo eliminar f1 y f2. Lo que podría hacer es, usando el adc de 24 bits leer las señales, eliminar de algun modo f1 y f2 y luego tratar de amplificar la señal y el ruido. Luego con promedidado sincrónico elimino el ruido. Creo que vi a alguien aplicar un metodo similar a esto, pero es bastante mas complejo.

Saludos y gracias por la ayuda!
-
Leonardo Garberoglio

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Noise floor y desviacion standar
« Respuesta #9 en: 28 de Junio de 2015, 21:25:40 »

http://dsp.stackexchange.com/questions/17871/how-to-calculate-signal-to-noise-ratio


Esto está perfecto, es la punta ue necesitaba para empezar a trabajar, viste que dice que se puede analizar en el tiempo o en la frecuencia alrededor de la frecuencia que nos interesa...

voy a ver si puedo hacer algo con esto.

Saludos y gracias!
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Noise floor y desviacion standar
« Respuesta #10 en: 28 de Junio de 2015, 22:53:21 »
Citar
Ok, pero primero, como se calcula el piso de ruido? supongamos que muestreo 1 segundo de ruido, que operacion se realiza sobre esas muestras para determinar el piso de ruido? se saca la fft y el valor de cada punto en la fft es el valor del piso de ruido? o, se promedian valores de la fft alrededor de la frecuencia que nos interesa conocer el piso de ruido? eso es lo primero que me falta.

Justamente tomando muestras con solo ruido, promediandolas asi llegas a su valor medio, si promedias mucho en la FFT vas a notar que el piso de ruido queda casi una linea, ese seria tu valor. Podrias verlo en las imagenes que pusiste
aca:
http://www.todopic.com.ar/foros/index.php?topic=44675.msg371427#msg371427

de tus simulacion, sin la señal eso quedaria una linea aproximada a 0. En esa simulacion. ahora los dB son una medida relativa y no absoluta, aunque los db SPL si son absolutas ya que se contrasta contra 20 micro pascales, si vos tenes una señal que sabes con seguridad que es de por ejemplo 60dB SPL, entonces lo contrastas con el nivel que te dio del ruido y ahi vas a saber cuanto dB por debajo esta el piso de ruido. Creo que se entiendo mas lo que quise explicar con el link que te pase xD

La otra es que si sabes exactamente donde estan las señales podes tomar las frecuencias de la vecindad como "ruido", es la que se me ocurre, como implementarlo por ahi no lo tengo muy claro.

Citar
Si, eso es cierto, pero me equivoco en pensar que si quiero medir algo de 70db junto con algo de 0db, es numericamente imposible con 16 bits? digo, con 16 bits tengo +-32700 cuentas. 70db es mas de 2000 veces mayor que 0db por lo que si ajusto la ganancia para que 32700 sea 70db, entonces 0db será del orden de las 16 cuentas... si es así, es numericamente imposible medir esas dos señales juntas... no?

Si por que tu rango dinamico es menor, al tener una señal de 70dB eso te limita a ciertos valores  de cual es la minima señal que puede detectarse por encima del piso de ruido, o por decirlo asi la maxima diferencia que puede haber entre esa señal y la otra. Cabe aclarar que la formula que pase es para cuando se cumple que el ADC toma todo su rango para obtener la señal, por eso mismo yo pensaba que era mejor si era posible quitar la señales f1 y f2, asi usar todo el rango para solo la del DPOAE , pero luego mirando las simulacion te das cuenta que exige un filtro con una frecuencia de corte exacta y una muy buena pendiente de forma analogica, lo cual es complicado. Si se fuera hacer de manera digital no serviria de nada ya que deberias de tomar toda esa señal de 66dB SPL. La otra que se me ocurre pero es complicar el sistema es que exista una señal desde el DSP que contrarreste esas 2 señales, es decir que exista un "restador" de señales para esas 2. pero es complicar DEMASIADO el sistema.

Citar
En la literatura dice que debemos exitar al oido con dos frecuencias y con amplitud 60db spl y 66 db spl (mas o menos) y el oido responde con otra señal de frecuencia 2f1-f2 y con una amplitud de entre -5 y 15 Db SPL.
Bueno, en simulacion yo creo esas 3 señales, le sumo ruido y corro el algoritomo que permite promediar sincrónicamente muchos ensayos.
Le estaré errando al cálculo de la amplitud a poner en matlab para cada amplitud de cada señal?

Af1 = 1000;     %66 db SPL
Af2 = 500;      %60 db SPL
Afd = 30;       %X  db

Eso supuestamente es la amplitud.
66dB SPL = 0.04 Pa
60dB SPL = 0.02 Pa
15dB SPL = 0.00011 Pa = 110uPa
-5db SPL = 0.000011  =  11uPa

Si no estoy equivocado, no deberia ser aproximadamente 182(0.02/0.00011) veces mas chica en amplitud Afd de Af2 ? es decir que Afd = 3 aproximdamente ?
« Última modificación: 28 de Junio de 2015, 22:57:01 por KILLERJC »

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Noise floor y desviacion standar
« Respuesta #11 en: 28 de Junio de 2015, 23:24:15 »
Af1 = 1000;     %66 db SPL
Af2 = 500;      %60 db SPL
Afd = 30;       %X  db

Eso supuestamente es la amplitud.
66dB SPL = 0.04 Pa
60dB SPL = 0.02 Pa
15dB SPL = 0.00011 Pa = 110uPa
-5db SPL = 0.000011  =  11uPa

Si no estoy equivocado, no deberia ser aproximadamente 182(0.02/0.00011) veces mas chica en amplitud Afd de Af2 ? es decir que Afd = 3 aproximdamente ?

Si, Afd es mucho menor que 30. El tema es que para que pueda ver algo en matlab tengo que poner Afd=30, si pongo algo mas chico no se ve en la salida de la fft. No sé con que presicion trabaja matlab, en teoría con double, pero es algo más que tengo que ver.

Como obtienes esos valores?
con  db SPL = 20 log (X uPa/20uPa) ?

o sea 0db -> 10^(0/20) = X/20 -> X = 20uPa
15 db -> 10^(15/20) = X/20 -> X = 5.63 * 20 = 112.46 uPa... es así? si es así, entonces la razón entre la señal mas grande y la mas chica es 0.04/0.000011 (peor caso) = 3636 veces menor  :5] y en el mejor de los casos 0.04/0.00011 = 363 veces (sin contar los 4db para llegar a 70...)

Saludos!
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Noise floor y desviacion standar
« Respuesta #12 en: 29 de Junio de 2015, 04:25:06 »
Si asi se obtiene los valores, el dB SPL es una medida con respecto a 20uPa (0dB SPL) , asi como existen tambien medidas como el dBm (1mW),dBu,etc,etc etc.

No se como sera la conversion de presion sonora a voltaje por parte del "microfono" imagino que debe ser lo mas plano posible en ese rango de frecuencia. Pero a eso te estas enfrentando, por ahi pienso que el ruido esta mucho mas bajo, ademas se debe llevar a cabo en una habitacion que cumplan ciertos requerimientos de "ruido"

Tambien leyendo un poco tenes que cubrir hasta los 8kHz en frecuencia (como 4 frecuencias desde 1k a 8k creo q era y realacion f2/f1 = 1.22 segun lo que lei), es decir se hace un barrido completo, y por ahi lei que llega hasta 20 segundos para lograr la reduccion suficiente del ruido.. lindo problema xD

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Noise floor y desviacion standar
« Respuesta #13 en: 29 de Junio de 2015, 06:35:13 »
No se como sera la conversion de presion sonora a voltaje por parte del "microfono" imagino que debe ser lo mas plano posible en ese rango de frecuencia. Pero a eso te estas enfrentando, por ahi pienso que el ruido esta mucho mas bajo, ademas se debe llevar a cabo en una habitacion que cumplan ciertos requerimientos de "ruido"

En principio el ruido no me preocupa mucho, con el matlab anterior, pude verificar que el promediado sincrónico se elimina muy bien el ruido. Creo que lo que más me preocupa es la diferencia entre señales y los limites del ADC (16 o 24 bits). creo haber leido que lo resolvían con ADC de 16 bits... lo cual me parece imposible con las cuentas que sacamos... Tengo un paper donde dice que usaron 24bits, voy a revisar a ver si encuentro alguno que diga que lo resolvieron con 16 bits para estar sefuro. En cuanto a micrófono, si, elegimos unos muy buenos microfónos con respuesta casi plana. Si pudieramos usar los nuevos micrófonos MEMS, entonces la repuesta es plana.

Tambien leyendo un poco tenes que cubrir hasta los 8kHz en frecuencia (como 4 frecuencias desde 1k a 8k creo q era y realacion f2/f1 = 1.22 segun lo que lei), es decir se hace un barrido completo, y por ahi lei que llega hasta 20 segundos para lograr la reduccion suficiente del ruido..

jeje, si, así es. Hay varias técnicas, esa de barrer con 4 frecuencias es la más común. El tiempo típico de un estudio es ese 20 seg a 1min. Hace unas semanas llegó un equipo comercial para "estudiar" y nos realizamos el estudio ahí en la facultad, en una sala común. Tiene 2 barras gráficas. Una quemuestra con que "potencia" se encuentra la DPOAE y otra con el ruido, entonces a medida que avanza el ensayo esas barras van actualizándose. La del ruiso, cuando tosés despacio se satura, si alguien habla en la sala, afecta un poco tambien.

lindo problema xD

Y a esto hay que agregarle el ABR, el cual estimula el oido con un sonido y luego se leen señales eléctricas evocadas en el cuero cabelludo, señales de EEG. Cuando lleguemos a esa parte va a ser más divertido  :shock:

sds
-
Leonardo Garberoglio

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4917
Re: Noise floor y desviacion standar
« Respuesta #14 en: 29 de Junio de 2015, 11:47:53 »
Para lo soldomudos le instalabamos por Grupo de 50 pesona + o - 100 metros de cable de 4mm² alrrededor con una Amplicador de pontencia atacabamos el cable en su salida , asi podian sentir vibraciones y sentir los estimulos de los labios cuandos las gente o el locutor hablaban.
yo ahora mismo hacer calculos de Decibelio y presion sonora lo tengo en el olvido :x llevo ya mas de 20 años que no trabajo con sonidos.
Saludos