Está en la página 1de 6

XXXVI CONVENCIÓN DE ESTUDIANTES DE CENTROAMÉRICA Y PANAMÁ, CONESCAPAN, PANAMÁ, 2017 1

Procesamiento digital de señales con


microcontroladores ARM Cortex-M4
Reinhold Arnaldo Normanns Garcı́a, 201245117@ingenieria.usac.edu.gt
José Carlos Samayoa Santiago, 201114487@ingenieria.usac.edu.gt
Facultad de Ingenierı́a, Universidad de San Carlos de Guatemala

Abstract—Se presenta la implementación de un sistema de señal, incluso se puede llegar a realizar una gran variedad de
procesamiento digital, de bajo costo, para señales de audio y efectos de audio tales como eco, reverberación, entre otros.
la información necesaria para llevar a cabo el correcto muestreo
de dichas señales utilizando un microcontrolador ARM Cortex-
M4. Para ello se ha compilado un conjunto de técnicas que En este documento se presentan los principales aspectos a
permiten mejorar la calidad de la señal muestreada y facilitar considerar para realizar un sistema de tratamiento de señales
el acondicionamiento de la señal previa y posteriormente al de audio en tiempo real empleando el microcontrolador Tiva
procesamiento de la misma. Como aplicación, se provee la TM4C123G, ası́ también, se presentan distintas técnicas para
información necesaria para realizar efectos de audio basados en mejorar la calidad del audio al momento de ser muestreado y
filtros FIR y en retardos de muestras.
la implementación de efectos de audio empleando filtros FIR
Keywords—Procesamiento digital de señales, muestreo de au- y efectos basados en retardos.
dio, Cortex-M4, Filtros FIR.

I. I NTRODUCCI ÓN II. E XPOSICI ÓN P RINCIPAL


La evolución rápida y continua en el desarrollo de Para realizar el proyecto, se decidió utilizar los siguientes
procesadores ARM permite que cada vez sean capaces de componentes principales:
realizar tareas más complejas en tiempos menores, mejorando • Microcontrolador ARM Cortex-M4 TM4C123GH6PM

el rendimiento y consumo energético de los mismos. El uso de Texas Instruments, el cual realizarı́a la función de
de estos procesadores en microcontroladores que poseen una procesador digital de señales.
gran variedad de periféricos, facilita la implementación de los • ADC interno del microcontrolador TM4C123GH6PM,

mismos en una mayor cantidad de sistemas que requieran un el cual posee una resolución de 12 bits y una tasa de
balance entre consumo y poder de procesamiento. muestreo máxima de 1MSPS.
• DAC TLV5616, el cual posee una resolución de 12 bits y

Un ejemplo de ello es la familia de procesadores ARM comunicación serial 4-Wire, haciendo uso de la interfaz
Cortex-M4, estos son procesadores embebidos de alto SPI.
rendimiento con una gran flexibilidad de configuración, A continuación se presenta el diagrama de bloques gener-
los cuales han sido diseñados con una gran variedad de alizado para un sistema DSP.
caracterı́sticas orientadas al control de señales digitales. Estos
procesadores poseen extensiones para realizar instrucciones
que anteriormente solo pertenecı́an a los DSP (Procesadores
digitales de señal), tales como instrucciones MAC (Multiply-
Accumulate), SIMD (Single Instruction Multiple Data) con
optimización aritmética y opcionalmente pueden incluir una
FPU (Unidad de punto flotante) de simple precisión.

El costo relativamente bajo de la familia de procesadores Figura 1. Elementos de un sistema de procesamiento digital de señales
Cortex-M4 y su alto rendimiento, permite reemplazar DSPs
de mayor costo en la realización de tareas básicas que A. Acondicionamiento de la señal previo al filtro Anti-aliasing
son esenciales en el aprendizaje del tratamiento digital de Se escogió utilizar señales de audio de nivel de lı́nea (line
señales, tales como Filtos FIR (Finite Impulse Response), level) que se encuentran en salidas de dispositivos comunes
Filtros IIR (Infinite Impulse Response), FFT (Fast Fourier como computadoras y smartphones, las señales de este nivel
Transform), entre otras. Una de las principales aplicaciones usualmente poseen un voltaje aproximado que varı́a entre
de los DSPs que puede ser implementada utilizando este tipo ±1.5V . Debido a que el ADC utilizado posee entrada unipolar,
de procesadores es el tratamiento de señales de audio, las es decir, solo reconoce voltajes positivos comprendidos entre 0
cuales al ser digitalizadas se simplifica su almacenamiento, y 3.3V, se realizó un offset de 1.5V DC a la señal para que esta
transmisión y manipulación. Mediante la manipulación de estuviera en el rango aceptado por el ADC, esto significaba
las señales de audio se pueden lograr cambios audibles en la que la señal de audio ahora estarı́a entre 0 y 3V.
XXXVI CONVENCIÓN DE ESTUDIANTES DE CENTROAMÉRICA Y PANAMÁ, CONESCAPAN, PANAMÁ, 2017 2

B. Elección de la frecuencia de muestreo


Para definir la frecuencia de muestreo de audio, se tomó
como referencia el rango de audición humana que abarca
desde una frecuencia minima (Fmin ) de 20Hz hasta una
frecuencia máxima (Fmax ) de 20kHz aproximadamente.

Con base a lo anterior, se pensaba realizar el muestreo del


audio a una frecuencia Fs = 44.1kHz, es decir, calidad de
CD. Sin embargo, debido a que tanto el filtro de reconstrucción
como el de antialiasing debı́an eliminar frecuencias mayores
a F s/2 = 22.05kHz, la banda de transición de los filtros Figura 3. Respuesta de los filtros usando Fs = 96kHz
debı́a de ser de Fs /2 − Fmax = 2.05kHz, un filtro con
esa respuesta es muy difı́cil de lograr sin componentes de Para realizar Oversampling en el microcontrolador
precisión, además en la práctica un filtro entre mas pequeña TM4C123GH6PM se cuenta con dos opciones: por
sea su banda de transición peor será su rendimiento, ya que software y por hardware. Se eligió esta última ya que
puede existir distorsión armónica, de amplitud y fase. Por el microcontrolador posee un circuito dedicado y no requiere
estas razones se busco una manera de solucionar el problema, poder de procesamiento extra.
ya que no se podı́a optar por realizar la atenuación antes de
los 20kHz ya que se perderı́an sonidos audibles. Debido a que el Oversampling por hardware realiza un
promedio de las muestras, se eligió utilizar un Oversampling
de factor 8, siendo la tasa de muestreo original 0.5 MSPS
Se decidió implementar la técnica de Oversampling, que (F s = 500kHz), esta pasarı́a a ser la octava parte, es
consiste en muestrear a una frecuencia mayor que dos veces decir F s = 62.5kHz, por lo que la banda de transición
la frecuencia de Nyquist, ya que al elegir una frecuencia de los filtros análogos seria de 11.25kHz, algo más fácil
de muestreo mayor, la frecuencia máxima que debe dejar de implementar que los 2.05kHz que se pensaban inicialmente.
pasar el filtro también aumenta y se aleja de los 20kHz
que originalmente se habı́a planeado. En las siguientes
imágenes se ejemplifica la respuesta de los filtros con y sin C. Circuitos de los filtros analógicos
oversampling. Los filtros de anti-aliasing y de reconstrucción utilizados
en este proyecto son pasa bajos tipo Butterworth con una
frecuencia de corte de 20kHz.

D. Técnicas utilizadas para mejorar la calidad del audio


muestreado
Para lograr obtener una mejor calidad de audio se
utilizaron dos técnicas que son Dithering y Oversampling,
ambas técnicas son recomendadas por el fabricante cuando
se toman muestras continuamente y se requiere tener mayor
precisión en el proceso de conversión analógica-digital.

Dithering es una técnica que consiste en aplicar


intencionalmente ruido blanco a la señal que se esta
muestreando. Esto para lograr esparcir el contenido espectral
falso de la señal a través de todo su espectro. Además con
Figura 2. Respuesta de los filtros usando Fs = 44.1kHz esta técnica se consigue ampliar el rango dinámico del ADC.

Respecto al oversampling, a parte de la ventaja que provee


al realizar los filtros analógicos, este también sirve para
reducir el ruido de la señal, ya que el ruido de cuantificación
es distribuido uniformemente a través de todo el espectro
entre DC y la mitad de la frecuencia de muestreo, este
ruido de cuantificación es independiente de la frecuencia de
muestreo, por lo que al utilizar una frecuencia de muestreo
mayor, la potencia del ruido se esparce a través de un rango
mayor de frecuencias.
XXXVI CONVENCIÓN DE ESTUDIANTES DE CENTROAMÉRICA Y PANAMÁ, CONESCAPAN, PANAMÁ, 2017 3

2) Librerı́a CMSIS DSP: La librerı́a CMSIS DSP


para microcontroladores de la gama Cortex-M, provee un
conjunto de funciones optimizadas comúnmente utilizadas en
procesamiento digital de señales (FFT, FIR Filters, ente otras)
además provee estructuras de datos para lograr una mayor
eficiencia y precisión en la manipulación de valores enteros
y de punto flotante. Esta librerı́a fue utilizada al realizar el
código de los filtros y efectos digitales con tal de obtener las
ventajas mencionadas anteriormente.

3) Code Composer Studio IDE: Code Composer Studio


es un entorno de desarrollo integrado que soporta varios
microcontroladores y procesadores embebidos de Texas
Instruments, se conforma por distintas herramientas
Figura 4. Distribución del ruido de cuantificación al utilizar oversampling para desarrollar y depurar aplicaciones embebidas.
Este fue utilizado para la redacción del código, y
Además la técnica de oversampling también sirve para
para la implementación y depuración del mismo en el
aumentar el Número Efectivo de Bits (ENOB) del ADC y
microcontrolador utilizado. Las dos librerı́as mencionadas
mejorar la relación señal a ruido de la señal digitalizada.
anteriormente fueron agregadas a este IDE para el desarrollo
de la aplicación.
A continuación se muestra una tabla con la mejora que
provee el oversampling a la relación señal ruido y al número
efectivo de bits de la señal.

III. R ESULTADOS

A. Circuitos utilizados

A continuación se presenta el diagrama de los circuitos


utilizados en la implementación del sistema DSP.

Figura 5. Mejoras en la señal al realizar oversampling

E. Acondicionamiento de la señal posterior al filtro de recon-


strucción
Como se explicaba anteriormente para adecuar la señal
previo al filtro de aliasing fue necesario el uso de un circuito
de offset, este offset debe ser eliminado al final de la etapa Figura 6. Circuito de offset
de reconstrucción para volver a dejar la señal en los rangos
originales. Para ello se utilizó un circuito de condensador de
acople, el cual elimina las componentes de DC y sirve de
interfaz hacia una carga que se pueda conectar para escuchar
el audio, por ejemplo, una bocina.

F. Software Utilizado
1) Librerı́a TivaWare: La librerı́a TivaWare es un extensa
suite de herramientas de software diseñada para simplificar y
agilizar el desarrollo de aplicaciones para microcontroladores
de la serie Tiva C. Dicha librerı́a fue utilizada para la
configuración de periféricos y rutinas de interrupciones de
los mismos.
Figura 7. Circuito para el filtro de anti-aliasing y reconstrucción
XXXVI CONVENCIÓN DE ESTUDIANTES DE CENTROAMÉRICA Y PANAMÁ, CONESCAPAN, PANAMÁ, 2017 4

int16_t i;
float32_t tmp = 0.0;
x[k] = (float32_t)sample;
x[k+N] = x[k];
k = (k+1) % N;
for (i=0 ; i<N ; i++){
tmp += coeffs[i]*x[k+i];
}
output = (uint32_t)tmp;
Figura 8. Circuito de condensador de acople
if(output>4095){
output=4095;
B. Habilitación de dithering y 8x Oversampling }
if(output<0){
A continuación se muestran las lineas de código utilizadas output = 0;
para habilitar dithering y realizar el oversampling de factor 8 }
en Code Composer Studio para el microcontrolador utilizado. ROM_SSIDataPut(SSI0_BASE, output);

//Habilitación de dithering y oversampling Listing 2: Segmento de código para filtros FIR


HWREG(ADC0_BASE + 0x038) = 0x40; //Dithering
HWREG(ADC0_BASE + 0x030) = 0x03; //Oversampling

Listing 1: Habilitación de dithering y 8x Oversampling

C. Efectos de audio
Se realizó la implementación de efectos de audio utilizando
filtros FIR (Pasa bajos, pasa altos, pasa banda y rechaza
banda) y efectos basados en retardos (delay y eco).

A continuación se ilustra el diagrama de bloques, los


segmentos de código y las gráficas de entrada y salida de los
filtros y efectos empleados.

1) Filtros FIR:
Figura 10. Entrada (rojo) y salida (amarillo) del filtro pasa altos.

Figura 9. Diagrama de bloques de un filtro FIR genérico

Figura 11. Entrada (rojo) y salida (amarillo) del filtro pasa bajos.
XXXVI CONVENCIÓN DE ESTUDIANTES DE CENTROAMÉRICA Y PANAMÁ, CONESCAPAN, PANAMÁ, 2017 5

3) Eco:

Figura 15. Diagrama de bloques para el efecto de eco

Figura 12. Entrada (rojo) y salida (amarillo) del filtro pasa banda.

current_sample -= 2048;
delayed = buffer[buf_ptr];
buffer[buf_ptr]=(current_sample+delayed*GAIN);
buf_ptr = (buf_ptr+1)%BufferSize;
delayed+=4096;
ROM_SSIDataPut(SSI0_BASE, (delayed));

Listing 4: Segmento de código para el efecto eco

Figura 13. Entrada (rojo) y salida (amarillo) del filtro rechaza banda.

2) Delay:

Figura 14. Diagrama de bloques para el efecto de delay

Figura 16. Entrada (rojo) y salida (amarillo) del efecto eco.

IV. C ONCLUSIONES
delayed = buffer[buf_ptr] + current_sample; 1) Un sistema que realice funciones básicas de proce-
buffer[buf_ptr] = current_sample; samiento digital de señales puede ser implementado
buf_ptr = (buf_ptr+1)%BufferSize; utilizando un microcontrolador ARM Cortex-M4 de bajo
ROM_SSIDataPut(SSI0_BASE, (delayed)); costo, en sustitución de procesadores digitales de señal
que suelen ser de mayor costo.
2) La elaboración de efectos digitales de audio, como
Listing 3: Segmento de código para el efecto delay aplicación de los sistemas DSP, en microcontroladores
de bajo costo representa una alternativa viable princi-
palmente en el entorno educativo dónde no siempre es
posible costear procesadores digitales dedicados.
XXXVI CONVENCIÓN DE ESTUDIANTES DE CENTROAMÉRICA Y PANAMÁ, CONESCAPAN, PANAMÁ, 2017 6

3) Es importante considerar los conceptos fundamentales


y técnicas utilizadas en el muestreo de señales para
obtener una representación digital lo más exacta posible
de la señal original.
4) Mediante el uso de librerı́as de software es posible
facilitar y agilizar el desarrollo de aplicaciones de proce-
samiento digital de señales en sistemas embebidos.

R EFERENCES
[1] R. Donald, Digital Signal Processing using the ARM Cortex M4. New
Jersey: Wiley, 2015
[2] L. Gareth, Musimathics: The mathematical foundation of music, Volume
2. MIT Press, 2007
[3] Texas Instruments. ADC Oversampling Techniques for Stellaris Family
Microcontrollers. Application Report SPMA001A, 2013.
[4] Texas Instruments. Using the CMSIS DSP Library in Code Composer
Studio for TM4C MCUs. Application Report SPMA041G, 2015.
[5] Texas Instruments. TivaWare Peripheral Driver Library. User’s Guide,
2015.
[6] Texas Instruments. TM4C123GH6PM Microcontroller Data Sheet. Rev.
E, 2014.

También podría gustarte