jueves, 19 de febrero de 2009

UN DSP EN CASA

El DSP del que voy a hablar es el de mi teléfono móvil, es una HTC touch

http://www.celulando.com/app/images/product_images/htc-touch.jpg

Este móvil lleva incorporado un DSP de la marca de Texas Instrument, de la familia  TI TMS320C54x, la información sobre este DSP está disponible en la página web de Texas Instrument en el apartado que tiene reservado para este producto:

http://focus.ti.com/paramsearch/docs/parametricsearch.tsp?family=dsp&sectionId=2&tabId=132&familyId=324

Este DSP tiene diferentes utilidades entre las que podemos destacar las de telefonía móvil, y sistemas de comunicación personales, PDA’s, comunicaciones de datos sin cables e inalámbricas, Internet portátil, módems etc.

Este DSP es de 16 bits de coma fija con una disipación baja de energía de unos 40mW,  y también tiene integradas las configuraciones de memoria RAM y ROM.

Las funciones que realiza este DSP se pueden observar en la siguiente tabla sacada de la web de TEXAS INSTRUMENT, las cosas a destacar de las funciones que realiza este DSP son que realiza la FFT, también realiza convoluciones y además filtra con filtro FIR y con filtros IIR, destaco estas funciones ya que son más conocidas y utilizadas en la carrera, para quien quiera saber algunas o todas las demás funciones puede ver la tabla que antes he comentado que está aquí debajo 

TMS320C54x DSP Functions

Benchmark

Description

Formula

Polynomial

Computes the sine of elements of vector x. It uses Taylor series to compute the sine of angle x. This benchmark is given as example of a polynomial evaluation (19 cycles). The core benchmark is given per sample.

~P

Delayed LMS

Computes the Adaptive Delayed LMS (Least-mean-square) FIR filter coefficients stored in vector h. Coefficients are updated after each sample based on the LMS algorithm and using a constant step = 2*mu. The real short input is stored in vector dbuffer. The filter output result is stored in vector r. LMS algorithm is used but adaptation using the previous error and the previous sample ("delayed") to take advantage of the C54x LMS instruction. The core benchmark is given per sample.

14 + 2*nh

256-point complex FFT sintab.q15, macros.asm

Computes a complex nx-point Decimation-in-Time FFT on vector x, which is in bit-reversed order. The original content of vector x is destroyed in the process. The nx complex elements of the result are stored in vector x in normal-order. This is a macro based implementation. The macros defined in "macros.asm": and the twiddle factors are contained in file "sintab.q15".

8542 cycles

R2 butterfly (DIT)

Radix 2 decimation-in-time FFT Butterfly core.

8 cycles

Complex bit reverse

Bit-reverses the position of elements in complex vector x into output vector r. In-place bit-reversing is allowed. The core benchmark is given for off-place bit reversal.

2 + 3*nx

Real block FIR

Computes a real block FIR filter (direct-form) using the coefficients stored in vector h. This function maintains an array, dbuffer, containing the previous delayed input values to allow consecutive processing of input short blocks. In place computation (r = x) is allowed. The core benchmark is given per sample.

4 + nx * (4 + nh)

Real symmetrical FIR

Computes a real FIR filter (direct-form) with nh symmetric coefficients using the FIRS instruction approach. The filter is assumed to have a symmetric impulse response, with the first half of the filter coefficients stored in the array h. This function maintains the array dbuffer containing the previous delayed input values to allow consecutive processing of input short blocks. This function can be used for both block-by-block (nx >= 2) and sample-by-sample filtering (nx = 1). In place computation (r = x) is allowed. The core benchmark is given per sample. It's assumed that nh is even.

16 + nh/2

Complex block FIR

Computes a complex FIR filter (direct-form) using the coefficients stored in a vector h. The complex input data is stored in a vector x. The filter output result is stored in a vector r. This function maintains an array, dbuffer, containing the previous delayed input values to allow consecutive processing of short input blocks. This function can be used for both block-by-block (nx >= 2) and sample-by-sample filtering (nx = 1). In place computation (r = x) is allowed. The core benchmark is given per sample.

13 + 8*nh

Convolution

Computes the real convolution of two real vectors x and h, and places the results in vector r. Typically used for block FIR filter computation when there is no need to retain an input delay buffer. This function can also be used to implement single-sample FIR filters (nr = 1) provided the input delay history for the filter is maintained external to this function. In place computation (r = x) is allowed, but be aware that the r output vector is shorter in length than the x input vector. The core benchmark is given per sample.

nr * (nh + 4)

Maximum value search

Returns the maximum element of a vector x. The core benchmark is given per sample.

2*nx

Matrix multiply

This function multiplies two matrices.

row1*(7 + (11 + (6 * col1)) * col2)

Matrix transpose

This function transposes matrix x.

(5 + 6*col) * row

IIR (4 Coefs)

Computes a cascade IIR filter of nbiq biquad sections. Each biquad section is implemented using Direct-form II. All biquad coefficients (4 per biquad) are stored in vector h. The core benchmark is given per sample.

11 + 4*nbiq

http://focus.ti.com/dsp/docs/dspplatformscontentaut.tsp?sectionId=2&familyId=324&tabId=507

No hay comentarios:

Publicar un comentario