Home | Develop | Download | Contact
 Todo Estructuras de Datos Funciones Variables 'typedefs' Grupos Páginas
Estructuras de datos
Módulo PdsSpectrograph.

Cálculo de un espectrograma (Spectrograph). Más...

Estructuras de datos

struct  PdsSpectrograph
 Estructura tipo PdsSpectrograph. Esta estructura genera un SPECTROGRAPH de L puntos de tiempo y M puntos de frecuencia. Más...
 

pds_spectrograph_new

Creando nuevas estructuras

PdsSpectrographpds_spectrograph_new (PdsFtNatural L, PdsFtNatural *N)
 Crea una estructura de tipo PdsSpectrograph, para generar un SPECTROGRAPH de L puntos de tiempo y M puntos de frecuencia, (N=2M) >=L. Si N no es potencia de 2, no da error, y se crea una estructura para una SPECTROGRAPH con un N1, que si es potencia de dos y mayor a N1, (N1>=N). El valor de M mínimo es M=2 y N=4. El nuevo valor N1 afectara a M. M=N1/2. El vector W (ventana) se incia con todos los elementos con 1.0 . Más...
 

pds_spectrograph_set

Escribiendo datos

int pds_spectrograph_set_window_rectangular (PdsSpectrograph *SPECTROGRAPH)
 Copia una ventana rectangular a W de la SPECTROGRAPH. Más...
 
int pds_spectrograph_set_window_hanning (PdsSpectrograph *SPECTROGRAPH)
 Copia una ventana de Hann a W de la SPECTROGRAPH. Más...
 
int pds_spectrograph_set_window_hamming (PdsSpectrograph *SPECTROGRAPH)
 Copia una ventana de Hamming a W de la SPECTROGRAPH. Más...
 
int pds_spectrograph_set_window_gauss (PdsSpectrograph *SPECTROGRAPH, PdsFtReal Sigma)
 Copia una ventana de Gauss a W de la SPECTROGRAPH. Más...
 

pds_spectrograph_evaluate

Evaluando datos

int pds_spectrograph_evaluate_real (PdsSpectrograph *SPECTROGRAPH, PdsMatrix *Out, const PdsVector *In)
 Evalua la SPECTROGRAPH de un vector real. El número de lineas la matriz Out debe ser igual N/2=M, Si el tamanho del vector de entrada es menor que L*Out->Ncol se rrelleno con ceros y se realiza el espectrograma, si es mayor, solo se usa lo que necesito y el resto se ignora. Más...
 
int pds_spectrograph_evaluate_complex (PdsSpectrograph *SPECTROGRAPH, PdsMatrix *Out, const PdsCVector *In)
 Evalua la SPECTROGRAPH de un vector complejo. El número de lineas la matriz Out debe ser igual N/2=M, Si el tamanho del vector de entrada es menor que L*Out->Ncol se rrelleno con ceros y se realiza el espectrograma, si es mayor, solo se usa lo que necesito y el resto se ignora. Más...
 

pds_spectrograph_<free>

Liberando memoria

void pds_spectrograph_free (PdsSpectrograph *SPECTROGRAPH)
 Libera una estructura de tipo puntero PdsSpectrograph. Más...
 
void pds_spectrograph_destroy (PdsSpectrograph **SPECTROGRAPH)
 Libera una estructura de tipo puntero PdsSpectrograph, y carga a la estructura con NULL. Más...
 

Descripción detallada

Cálculo de un espectrograma (Spectrograph).

pdsspectrograph.png
Spectrogram

\[ \mathbf{STFT_m} \left \{ x[n] \right \} \equiv Out_m[k] = \sum_{n=0}^{N-1} x_m[n]w[n]e^{-j 2 \pi k \frac{n}{N}} \]

\[ \mathbf{SPECTROGRAPH} \left \{ x[n] \right \} \equiv \mathbf{STFT^2} \left \{ x[n] \right \} \]

graficaM.png
Spectrogram M=N/2=32 puntos de frecuencia y 3 puntos en el tiempo.

Documentación de las funciones

PdsSpectrograph * pds_spectrograph_new ( PdsFtNatural  L,
PdsFtNatural N 
)

Crea una estructura de tipo PdsSpectrograph, para generar un SPECTROGRAPH de L puntos de tiempo y M puntos de frecuencia, (N=2M) >=L. Si N no es potencia de 2, no da error, y se crea una estructura para una SPECTROGRAPH con un N1, que si es potencia de dos y mayor a N1, (N1>=N). El valor de M mínimo es M=2 y N=4. El nuevo valor N1 afectara a M. M=N1/2. El vector W (ventana) se incia con todos los elementos con 1.0 .

Parámetros
[in]LEs el número de muestras de tiempo tomados por el SPECTROGRAPH para generar la FFT de N puntos.
[in,out]NEs el número de elementos de fft del SPECTROGRAPH. La matriz de salida del espectrograma debera tener M=N/2 lineas.
Devuelve
Un puntero a una estructura de tipo PdsSpectrograph. En caso de error devuelve NULL.
Ejemplos:
testprograma3.c.
int pds_spectrograph_set_window_rectangular ( PdsSpectrograph SPECTROGRAPH)

Copia una ventana rectangular a W de la SPECTROGRAPH.

Parámetros
[in,out]SPECTROGRAPHLa estructura a una SPECTROGRAPH de N puntos.
Devuelve
TRUE si todo fue bien o FALSE si no. (Ejem SPECTROGRAPH==NULL)
int pds_spectrograph_set_window_hanning ( PdsSpectrograph SPECTROGRAPH)

Copia una ventana de Hann a W de la SPECTROGRAPH.

Parámetros
[in,out]SPECTROGRAPHLa estructura a una SPECTROGRAPH de N puntos.
Devuelve
TRUE si todo fue bien o FALSE si no. (Ejem SPECTROGRAPH==NULL)
int pds_spectrograph_set_window_hamming ( PdsSpectrograph SPECTROGRAPH)

Copia una ventana de Hamming a W de la SPECTROGRAPH.

Parámetros
[in,out]SPECTROGRAPHLa estructura a una SPECTROGRAPH de N puntos.
Devuelve
TRUE si todo fue bien o FALSE si no. (Ejem SPECTROGRAPH==NULL)
int pds_spectrograph_set_window_gauss ( PdsSpectrograph SPECTROGRAPH,
PdsFtReal  Sigma 
)

Copia una ventana de Gauss a W de la SPECTROGRAPH.

Parámetros
[in,out]SPECTROGRAPHLa estructura a una SPECTROGRAPH de N puntos.
[in]SigmaValor de sigma debe ser <= 0.5, de lo contrario da error.
Devuelve
TRUE si todo fue bien o FALSE si no. (Ejem SPECTROGRAPH==NULL)
Ejemplos:
testprograma3.c.
int pds_spectrograph_evaluate_real ( PdsSpectrograph SPECTROGRAPH,
PdsMatrix *  Out,
const PdsVector *  In 
)

Evalua la SPECTROGRAPH de un vector real. El número de lineas la matriz Out debe ser igual N/2=M, Si el tamanho del vector de entrada es menor que L*Out->Ncol se rrelleno con ceros y se realiza el espectrograma, si es mayor, solo se usa lo que necesito y el resto se ignora.

Parámetros
[in,out]SPECTROGRAPHLa estructura a una SPECTROGRAPH de M puntos.
[out]OutLa matriz real con la SPECTROGRAPH de M puntos.
[in]InEl vector de entrada al que se le desea aplicar la SPECTROGRAPH.
Devuelve
TRUE si todo fue bien o FALSE si no. (Ejem SPECTROGRAPH==NULL, In==NULL, Out==NULL o Out->Nlin!=N/2)
Ejemplos:
testprograma3.c.
int pds_spectrograph_evaluate_complex ( PdsSpectrograph SPECTROGRAPH,
PdsMatrix *  Out,
const PdsCVector *  In 
)

Evalua la SPECTROGRAPH de un vector complejo. El número de lineas la matriz Out debe ser igual N/2=M, Si el tamanho del vector de entrada es menor que L*Out->Ncol se rrelleno con ceros y se realiza el espectrograma, si es mayor, solo se usa lo que necesito y el resto se ignora.

Parámetros
[in,out]SPECTROGRAPHLa estructura a una SPECTROGRAPH de M puntos.
[out]OutLa matriz real con la SPECTROGRAPH de M puntos.
[in]InEl vector de entrada al que se le desea aplicar la SPECTROGRAPH.
Devuelve
TRUE si todo fue bien o FALSE si no. (Ejem SPECTROGRAPH==NULL, In==NULL, Out==NULL o Out->Nlin!=N/2)
void pds_spectrograph_free ( PdsSpectrograph SPECTROGRAPH)

Libera una estructura de tipo puntero PdsSpectrograph.

Parámetros
[in,out]SPECTROGRAPHLa SPECTROGRAPH a liberar.
Devuelve
No retorna valor.
Ejemplos:
testprograma3.c.
void pds_spectrograph_destroy ( PdsSpectrograph **  SPECTROGRAPH)

Libera una estructura de tipo puntero PdsSpectrograph, y carga a la estructura con NULL.

Parámetros
[in,out]SPECTROGRAPHLa SPECTROGRAPH a liberar.
Devuelve
No retorna valor.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed