Re: Tp-espectrograma
de PELLE PATRICIA ALEJANDRA - La verdad que la profesora no se acuerda demasiado qué fue lo que te dijo. La explicación completa es así: specgram hace dos cosas, primero calcula el espectrograma y después lo dibuja. Si vos no querés que dibuje, por ejemplo para hacer el gráfico como más te guste a vos, tenés que invocarlo así:
[B,f,t] = specgram(.... lo mismo de siempre... );
donde t y f son vectores que te van a servir para graficar, y B es la matriz del espectrograma, o sea una matriz que en sus columnas tiene cada una de las DFT calculadas (la mitad de la DFT, de 0 a Nfft/2). Si querés la podés graficar vos mismo, y sacarte la duda de si el problema es el logaritmo. Specgram cuando grafica hace esto (lo dice en el help)
imagecs(t,f,log(abs(B)))
vos podés hacer esto:
imagecs(t,f,abs(B))
pero en este caso te va a dar una imagen muy distinta, porque el logaritmo te cambia "la cara" de las cosas.
Si te da todo rojo, es porque tenés muchas amplitudes altas. O también puede ser que haya un -infinito en algún lugar. Si hacés el logaritmo de algo que vale cero, eso da -infinito, y entonces no le queda más remedio que dibujar todo el resto muy alto, o sea, te puede dar todo rojo. Si querés también podés dibujar así:
imagecs(t,f,log(abs(B+0.00001))),
que no cambia demasiado el gráfico como si lo hace la escala lineal, y te asegurás que nunca haya un cero por ahí dando vueltas. Espero que sea eso lo que te haya dicho antes. Saludos, nos vemos
Patricia
[B,f,t] = specgram(.... lo mismo de siempre... );
donde t y f son vectores que te van a servir para graficar, y B es la matriz del espectrograma, o sea una matriz que en sus columnas tiene cada una de las DFT calculadas (la mitad de la DFT, de 0 a Nfft/2). Si querés la podés graficar vos mismo, y sacarte la duda de si el problema es el logaritmo. Specgram cuando grafica hace esto (lo dice en el help)
imagecs(t,f,log(abs(B)))
vos podés hacer esto:
imagecs(t,f,abs(B))
pero en este caso te va a dar una imagen muy distinta, porque el logaritmo te cambia "la cara" de las cosas.
Si te da todo rojo, es porque tenés muchas amplitudes altas. O también puede ser que haya un -infinito en algún lugar. Si hacés el logaritmo de algo que vale cero, eso da -infinito, y entonces no le queda más remedio que dibujar todo el resto muy alto, o sea, te puede dar todo rojo. Si querés también podés dibujar así:
imagecs(t,f,log(abs(B+0.00001))),
que no cambia demasiado el gráfico como si lo hace la escala lineal, y te asegurás que nunca haya un cero por ahí dando vueltas. Espero que sea eso lo que te haya dicho antes. Saludos, nos vemos
Patricia