Está en la página 1de 21

UNIVERSIDAD NACIONAL DE CÓRDOBA

Facultad de Ciencias Exactas, Físicas y Naturales

Procesamiento Digital de Señales


Trabajo Práctico Final

● Integrantes: Calvo, Santiago.


Mammana, Nicolás.
Risma, Carlos.

● Profesores: Molina, German.


Parlanti, Gustavo.
Rossi, Roberto.
INTRODUCCIÓN
Una guitarra eléctrica es un instrumento musical de seis cuerdas comúnmente, que utiliza el
principio de inducción electromagnética para convertir las vibraciones de sus cuerdas de metal
en señales eléctricas. El sonido de la guitarra se verá influido por el diseño y ubicación de las
pastillas, la escala y en menor medida por el puente y la cejilla, el uso de los círculos de la escala
modificará el sonido de cada una de sus cuerdas.
Esta señal de salida de la guitarra eléctrica puede ser fácilmente alterada mediante circuitos
electrónicos para modificar algunos aspectos del sonido. A lo largo de los años se ha convertido
en un instrumento musical de cuerdas, capaz de una multitud de sonidos y estilos gracias al
desarrollo de sistemas externos como los pedales análogicos y digitales. Dentro de los efectos
de pedales digitales se encuentra el llamado Pitch Shifter el cual produce un cambio de tono de
la nota a una más aguda o más grave en tiempo real.
En el caso del presente trabajo de laboratorio se llevará a cabo la realización de un “pedal” de
efecto para guitarra eléctrica con la placa FRDM-K64F de la empresa NXP. El efecto que se
realizará es el de elevar la frecuencia de las notas una octava más aguda, lo cual
matemáticamente significa elevarla al doble de su valor, en tiempo real. Para llevarlo a cabo se
pretende usar los conocimientos adquiridos sobre FFT en el curso de Procesamiento Digital de
Señales y aplicados por primera vez en el Trabajo de Laboratorio 3.
DESARROLLO
Ancho de banda de la guitarra
Haciendo un esquema del mástil de una guitarra en la siguiente imagen se puede analizar los
valores de frecuencia de las fundamentales de cada nota​.

Como se puede observar las


frecuencias fundamentales
van desde los 82Hz hasta los
1047Hz, a esas frecuencias
fundamentales al momento
de hacer vibrar cada cuerda
se le suman sus respectivos
armónicos como se puede
observar en la segunda
imagen. Considerando que
la mayor parte de la energía
de la señal se distribuye
hasta la quinta armónica, el
ancho de banda del
instrumento es de
aproximadamente 5Khz.

Acondicionamiento de la señal
Las cuerdas de una guitarra son de material ferromagnético, que cuando cualquiera de ellas
vibra induce una fuerza electromotriz (f.e.m) en una bobina llamada bobina captora. Dicha
bobina lleva como núcleo un imán permanente que se encuentra de frente a la cuerda
magnetizando en la porción más cercana. Cuando la cuerda vibra con una frecuencia
determinada, el segmento magnetizado produce un flujo magnético variable a través de la
bobina captora. La f.e.m. inducida en la bobina es la señal de salida de la guitarra, la cual tiene
valores de tensión alterna que se encuentran entre 100-500 mV pico a pico variando según el
tipo de bobinado.
Para el acondicionamiento de la señal se construyeron 2 circuitos, uno a la entrada y otro a la
salida.
El circuito de la entrada tiene dos objetivos: uno es el de amplificar la señal para que la misma
utilice todo el rango dinámico del ADC de 3,3V y el otro es el de sumarle una componente de
continua ya que el ADC solo soporta valores de tensión por encima de los 0V.
El circuito de salida realiza lo opuesto al de entrada, le quita la componente de continua de la
señal y atenúa la misma a los valores propios de una señal de una guitarra.

Hardware
Las características más importantes de una señal son: Amplitud, frecuencia, forma. En una
guitarra eléctrica estas características dependen de factores como la construcción del
micrófono, la distancia entre el micrófono y las cuerdas, la forma de tocar, etc.
Se tuvo como objetivo lograr una interfaz de entrada/salida a la board de forma que sea lo más
versátil posible, pudiendo ser ajustable a distintos tipos de guitarras (incluso bajos), micrófonos,
etc.
La interfaz en sí, se puede dividir en dos partes: La primera, que tiene como entrada la señal de
guitarra y como salida la señal de entrada del ADC. Y la segunda, que tiene como entrada la
salida del DAC y como salida la señal de entrada del amplificador (que debe ser de
características similares a la señal de guitarra, para el correcto funcionamiento del
amplificador).

Guitarra >>> ADC:


La señal de la guitarra cuenta con las siguientes características:
● La amplitud de salida máxima de una guitarra eléctrica puede variar entre 50mVp y
400mVp aproximadamente.
● La frecuencia fundamental está acotada entre 82.4Hz (E2) y 1318Hz (E6)
aproximadamente. Y las armónicas pueden llegar hasta 5KHz como se muestra en el
siguiente gráfico.
Conectar la salida de la guitarra al ADC directamente tiene una serie de desventajas:
1. La señal no tiene componentes de continua, por lo que por momentos la señal es
negativa, lo cual dañaría al ADC, ya que acepta señales entre 0V y Vref = 3,3V. Además
de que se perdería información de la señal. Por ello, se la monta en una continua Voffset
= 1,62V (idealmente 1,65V).
2. Siendo la resolución de 16bits, se tiene un paso de Vref/2^16 = 0,05mV. Tomando como
máxima señal 400mV, la resolución real con la que se muestrea es 400mV/0,05mV =
8000 < 10bits. Por lo que se amplifica la señal para aprovechar la máxima resolución
posible.
3. Dado que se muestrea a 20KS/s, se puede sufrir el efecto de alias al muestrear
frecuencias mayores a 10KHz. Para evitar estos efectos no deseados se filtra la señal en
5KHz.

En el anexo se puede ver el esquemático del circuito final utilizado. En este apartado se
analizarán las formas constitutivas del mismo. Vale recalcar que se intentó hacer que el circuito
sea lo más versátil posible, de manera que sirva para conectar a módulos ADC distintos tipos de
guitarras, bajos, etc.

Fuente de alimentación:
El circuito se diseñó para ser alimentado por una fuente simple de 9Vdc (batería) ya que esta es
la fuente de la mayoría de los pedales de guitarra.
A partir de VCC+ = 9V se generan otras tensiones, como VBIAS = 4.5V que es donde se monta la
señal para su procesamiento en los amplificadores operacionales y VOFFSET = 1.62V que es
(casi) el valor medio entre 0V y 3.3V del rango del ADC. Se usa 1.62V en vez de 1.65V debido a
que se genera por divisores resistivos cuyas resistencias son normalizadas.

Buffer de entrada, acople de continua y amplificación:


Se busca tener una impedancia de entrada alta para que la interfaz no cargue a los micrófonos,
logrando que la corriente que circule por los mismos sea mínima.
Se coloca un capacitor C3 para evitar que la tensión de continua VBIAS esté presente en los
micrófonos ya que esto provocaría que se quemen debido a la disipación de calor generada por
la continua presente en los bobinados.
A continuación, se suma la tensión de offset a la de señal y se preamplifica la señal con
ganancia variable (ajustable mediante dos preset y dos jumpers) con el objetivo de que en este
paso se compensen las diferencias de amplitud entre las salidas de distintos tipos de
micrófonos.
Luego se realiza una amplificación fija de 4,7 veces. En este punto ya se tiene un nivel de
tensión alterna adecuado para ingresarlo a la placa por el ADC. Pero montado en una continua
de VBIAS.
Por último, se pone un circuito de protección para que la señal de entrada al ADC no sea mayor
a Vref. Para esto se usan diodos, generando hard clipping para tensiones pico mayores a 1.4V
aproximadamente (2.8Vpap máximo). En el esquema se observa que en realidad se tienen
2,1Vp pero ese par de diodos extra se colocaron por si era necesario ponerlas en algún
momento, pero se terminando cortocircuitando (D5 y D6) con un jumper.
Filtro antialias
Se confecciono un pasabajos de segundo orden de 5KHz usando la topología Sallen-Key y a la
salida se quita la tensión VBIAS con C22 y se suma VOFFSET, dejando a la señal lista para
ingresar a la placa. C23 y R30 son componentes que no se ingresaron en la placa pero se
ubicaron en caso de que hacer modificaciones sobre la placa sea más simple.

DAC >>> Amplificador


La otra parte del circuito hace los pasos inversos de la primer parte para obtener una señal de
entrada al amplificador con las características de la señal de guitarra. Por lo tanto, se quita el
offset mediante el capacitor C2. Nuevamente se usa una impedancia de entrada alta para
mantener la corriente de salida del DAC baja. Mediante R5, RV2 (preset) y R7 se disminuye la
tensión proveniente del DAC, R28 y R29 no se colocan y están para posibles cambios como ya
se explicó anteriormente. También se vuelve a montar la señal en VBIAS para tener una máxima
excursión simétrica en el trabajo de los amplificadores operacionales.
Por último, se usa un filtro de 5KHz de cuarto orden usando dos topologías Sallen-Key en
cascada. A la salida se ubica una red RC con el objetivo de proveer una impedancia de salida tal
que la capacidad introducida por el cable de guitarra (coaxial) influya en el sonido y para evitar
que un cortocircuito en la salida dañe al amplificador operacional de salida.

A continuación se muestra una imagen del circuito final físico.


Análisis de frecuencias
Dado a que el efecto en cuestión eleva todas las frecuencias al doble de su valor el ancho de
banda de salida debe ser de al menos 10KHz por lo tanto al usar la misma frecuencia para el
muestreo en el ADC como para el DAC de salida, necesitamos que la misma sea de al menos el
doble, 20Khz.
Es importante destacar que la resolución en frecuencia de la FFT para una correcta detección es
de 5Hz ya que es la mínima distancia entre 2 notas consecutivas. Como se aprendió en el TP3 el
ancho de banda que se obtiene de la FFT es de la mitad de la velocidad de muestreo que en
nuestro caso debe ser de al menos 20Khz, es decir que como resultado el ancho de banda de la
FFT es de 10Khz. Por esta razón el tamaño de nuestra FFT deberá ser de 2048 muestras ya que:
Ancho de Banda[Hz] 10000
Resolución = Cantidad de muestras
= 2048
= 4.88Hz

Esta necesidad presenta un grave problema, ya que a tal velocidad de muestreo (20KHz) la
obtención de 2048 muestras tardaría 102.4ms el cual es un retardo muy perceptible a la hora
de tocar el instrumento en cuestión y no se estaría cumpliendo la especificación de hacer el
efecto en tiempo real. Además, no se hubiera podido solucionar este problema con aumentar la
velocidad de muestreo ya que esto hubiera implicado un aumento del ancho de banda de la FFT
y una pérdida de resolución.
Para solucionar este
problema se recurrió a
la técnica de
zero-padding, la cual
consiste en completar
el vector de las
muestras tomadas por
el ADC con ceros, para
así poder utilizar
menos muestras,
obteniendo un
menor retardo y
todo esto
manteniendo la
resolución y sin
cambiar el resultado
de la FFT. Se
consideró que un
retardo aceptable
seria de 30ms
aproximadamente,
por lo cual se toman 512 muestras por el ADC para la fft, completando el vector de 2048
elementos con ceros. En las imágenes se puede ver un ejemplo de zero-padding donde se
compara el resultado de la fft cuando se utilizan las 2048 muestras con el resultado de solo usar
512 muestras completando las 2048 muestras con ceros.

Software
En esta sección se pretende explicar el funcionamiento del programa, tanto la configuración de
registros como la lógica del mismo.
De manera general, el código se basa en esperar interrupciones del timer y en el Handler
(rutina de interrupción) correspondiente efectuar los comandos para la digitalización de la
señal y el almacenamiento de la misma en un array, junto con la obtención del valor de
continua a la cual se encuentra montada la señal. Dicho valor se utiliza para restarlo a los
valores obtenidos de la señal (De este modo se tendría la señal digitalizada sin su componente
de continua). Una vez que se llena dicho array, se levanta una bandera que habilita en el
programa principal a que se ejecute el procesamiento de la señal el cual consiste en 4 etapas:
zero padding, FFT, pitch shift y IFFT.
En la etapa de zero-padding como ya se explicó anteriormente se introducen las 512 muestras
obtenidas del ADC dentro del array al que se le va a aplicar la FFT, completando los 2048
lugares del mismo con ceros. Luego se le aplica la transformada rápida de Fourier real en la
función “FFT()”. Una vez obtenido el resultado de la FFT se toma la primera mitad de los valores
del array y se los distribuye de forma que tal que cada par de valores (real e imaginario) se
ubique en el doble de frecuencia de el que se encontraba. Es decir, que el vector pasará de ser:
[ R0 − I 0 − R1 − I 1 − ··· − R1023 − I 1023 ]

a ser:
[ 0 − 0 − R0 − I 0 − 0 − 0 − R1 − I 1 − ··· − 0 − 0 − R511 − I 511 ] .

Una vez realizada esta operación, se procede a la realización de la anti transformada rápida de
Fourier real la cual entrega la señal al doble de frecuencia.
Dentro de la interrupción del timer también se cargan los valores resultantes de la
antitransformada en el DAC.
La configuración de los diferentes periféricos se realiza a través de Processor Expert. Para
mantener un cierto orden en el desarrollo se explica el seteo inicial de cada periférico por
separado:
● Configuración de interrupción por timer: Se lo configura inicialmente en el main para
que interrumpa con un periodo de 50µs.
● Configuración del ADC: Se seleccionaron dos canales ADC0 y ADC1, el primero para la
señal y el segundo para el valor de continua a restar a la señal. Ambos se los seteo para
que realicen conversiones de 16 bits y en modo continuo.
● Configuración del DAC: Se configuró al pin 11 del puerto 4 para que se comporte como
la salida del DAC.
Para realizar la transformada rápida de Fourier se utilizó la función de CMSIS
“arm_rfft_fast_f32”, correspondiente a la transformada real. La misma función se inicializo con
la función “arm_rfft_fast_init_f32”.

Programa desarrollado:
“main.c”:

** @file main.c
** @version 01.01
** @brief
** Main module.
** This module contains user's application code.
*/
/*!
** @addtogroup main_module main module documentation
** @{
*/
/* MODULE main */

/* Including needed modules to compile this module/procedure */


#include "Cpu.h"
#include "Events.h"
#include "clockMan1.h"
#include "pin_init.h"
#include "osa1.h"
#include "adConv1.h"
#include "daConv1.h"
#include "adConv2.h"
#include "hwTim1.h"
#include "gpio1.h"
#if CPU_INIT_CONFIG
#include "Init_Config.h"
#endif
/* User includes (#include below this line is not maintained by Processor Expert) */

#include <math.h>
#include "arm_math.h"
#define TAM_BUFF 512
#define TAM_FFT 2048

arm_rfft_fast_instance_f32 S;

uint8_t start = 0;
float32_t inputBuff[TAM_BUFF]; //Senal - Offset
float32_t fftBuff[TAM_FFT];
float32_t fftOut[TAM_FFT];
float32_t ifftOut[TAM_FFT];
float32_t fftMag[TAM_FFT/2];
uint8_t fftFlag = 0;
uint8_t ifftFlag = 1;
uint16_t tamFFT = TAM_FFT;
uint16_t tamBuff = TAM_BUFF;

float32_t realBuff[TAM_FFT];
float32_t imagBuff[TAM_FFT];
float32_t ifftIn[TAM_FFT];

void fftInit(void);
void zero_padding(void);
void fft(void);
void pitchShift(void);
void ifft(void);

int main(void)
{

PE_low_level_init();
​/*** End of Processor Expert internal initialization. ***/
HWTIMER_SYS_SetPeriod(&hwTim1_Handle, 50);
fftInit();
for(;;){
if(start == 1){ //si el buffer de entrada se llenó, ejecuta instrucciones
zero_padding();
fft();
pitchShift();
ifft();
start = 0;
}
}

#ifdef PEX_RTOS_START
PEX_RTOS_START();
#endif
for(;;){}
}

void fftInit(void){
arm_rfft_fast_init_f32 (&S, tamFFT); //inicializa la FFT, se hace una sola vez
}

void zero_padding(void){
for(uint16_t i=0; i<tamFFT; i++){
if(i<tamBuff){
fftBuff[i] = inputBuff[i]; ​//iguala buffer de FFT con el de entrada
}
else{
fftBuff[i] = 0; //rellena con ceros al resto del buffer
}
}
}

void fft(void){
arm_rfft_fast_f32(&S, fftBuff, fftOut, fftFlag); //aplica FFT
}

void pitchShift(void){
/* Desplazamiento de los valores del buffer de la FFT, de modo que al
aplicar IFFT la señal tenga el doble de frec
fftOut = [R I R I R I ... R I]
realBuff = [R 0 0 0 R 0 0 0 R … R 0]
imagBuff = [0 I 0 0 0 I 0 0 0 I ...0 I]
ifftIn = [0 0 R I 0 0 R I ...R I]
*/

for(uint16_t i=0; i<tamFFT/2; i++){ /​/toma la primera mitad del buffer con los
datos de la FFT
if(i%2==0){
ifftIn[i*2] = fftOut[i]; //separa en valores reales e imag y los
desplaza
}
else{
ifftIn[i*2-1] = fftOut[i];
}
}

}
void ifft(void){
arm_rfft_fast_f32(&S, ifftIn, ifftOut, ifftFlag); //aplica antitransformada
}

/* END main */
“events.c”​:
/*!
** @file Events.c
** @version 01.00
** @brief
** This is user's event module.
** Put your event handler code here.
*/
/*!
** @addtogroup Events_module Events module documentation
** @{
*/
/* MODULE Events */

#include "Cpu.h"
#include "Events.h"

#ifdef __cplusplus
extern "C" {
#endif

/* User includes (#include below this line is not maintained by Processor Expert) */
#include <math.h>
#include "arm_math.h"

#define TAM_BUFF 512


#define TAM_FFT 2048

float32_t adc0Buff[TAM_BUFF]; //Señal


float32_t adc1Buff[TAM_BUFF]; //Offset
extern float32_t inputBuff[TAM_FFT]; //Señal - Offset
uint16_t adc0Value = 0;
uint16_t adc1Value = 0;
uint16_t i = 0;
uint16_t k=0;
uint16_t dacValue = 0;
uint8_t shiftFlag = 0;

extern uint8_t start;


extern uint16_t tamBuff;
extern uint16_t tamFFT;
extern float32_t ifftOut[TAM_FFT];

void hwTim1_OnTimeOut(void* data)


{
/* Write your code here ... */
if (start == 0){
adc0Value = ADC16_DRV_GetConvValueRAW(adConv1_IDX, 0U);
adc1Value = ADC16_DRV_GetConvValueRAW(adConv2_IDX, 0U); ​//continua
sobre la que se monta la señal
adc0Buff[i] = (float32_t) adc0Value;
adc1Buff[i] = (float32_t) adc1Value;

inputBuff[i] = adc0Buff[i] - adc1Buff[i]; //resta componente de continua a la


señal de interes

i++;
if(i >= tamBuff){ //cuando se llena el buffer de entrada se levanta bandera para
procesar señal
i = 0;
start = 1;
}
}

dacValue = ((uint16_t) (ifftOut[k] + adc1Value)) >> 4;


DAC_DRV_Output(daConv1_IDX, dacValue);

k++;
if((k >= tamFFT/8)&&(k < tamFFT/4)){
k = tamFFT/2; //1024 (es donde sigue la señal, el resto son ceros por el zero
padding)
}
else if(k >= (tamFFT/2+tamFFT/8)){ //1024 + 255
k = 0;
}
}

/* END Events */

#ifdef __cplusplus
} /* extern "C" */
#endif

FUNCIONAMIENTO
Finalizado el proceso de configuración y codificación, se procedió a debuggear el programa
sobre la placa. Para verificar el correcto funcionamiento de lo realizado, se conectó un
generador de funciones, el cual proporcionaba una señal senoidal de un valor Vpp de 400mV
(Amplitud de tensión promedio de una guitarra) en el circuito de entrada descrito
anteriormente. Al circuito de entrada también se le conectó una fuente de alimentación que
proporcionaba la continua a la cual se montará la señal. La salida del circuito de entrada se
conectó al ADC y en uno de los canales de un osciloscopio. En el otro canal del osciloscopio, se
conectó el pin de salida del DAC, donde se encontraba la señal procesada por la placa.
Luego una vez corroborado el correcto funcionamiento con un solo tono se prosiguió a
reemplazar el generador de funciones por una guitarra y a conectar el circuito de salida a un
amplificador para poder evaluar el sonido además de la forma de la señal. Para poder analizar
la salida en el osciloscopio se pauso el mismo en distintas notas tocadas en la guitarra.

● En esta imagen se puede


ver en amarillo la señal
proveniente del generador de
funciones entregando una señal
senoidal de 1Khz cuya amplitud se
encuentra elevada a una tensión
pico a pico de 2.86V, denotando el
correcto funcionamiento del
circuito analógico. En celeste se
aprecia la señal proveniente de la
placa al doble de frecuencia
(2KHz→t=500µs), claramente
digitalizada y conservando la
amplitud de la entrada.

● En esta imagen se puede


ver en amarillo la señal
proveniente del generador de
funciones entregando una señal
triangular de 1Khz cuya amplitud
se encuentra elevada a una
tensión pico a pico de 2.86V,
denotando el correcto
funcionamiento del circuito
analógico. En celeste se puede ver
la señal proveniente de la placa al
doble de frecuencia(2Khz→t=500µs), claramente digitalizada y conservando la amplitud de la
entrada.

● En esta imagen se puede


ver en amarillo la señal
proveniente del generador de
funciones entregando una señal
cuadrada de 1Khz cuya amplitud
se encuentra elevada a una
tensión pico a pico de 2.86V,
denotando el correcto
funcionamiento del circuito
analógico. En celeste se puede
apreciar la señal proveniente de la
placa al doble de frecuencia
(2Khz→t=500µs), claramente
digitalizada y conservando la
amplitud de la entrada.

● En esta imagen la señal


de la guitarra es la que se
encuentra abajo(celeste) y se
trata de la nota B4(2da cuerda)
que tiene una fundamental de
494Hz lo cual se puede
corroborar observando el
periodo de aproximadamente
2ms. La señal de arriba (amarilla)
proveniente de la placa, se
puede ver que esta al doble de
frecuencia y se trata de la nota
B5 con una fundamental de
988Hz (t ≅ 1ms).
● En esta imagen la
señal de la guitarra es la que
se encuentra abajo(celeste) y
se trata de la nota F#5(1ra
cuerda) que tiene una
fundamental de 740Hz lo
cual se puede corroborar
observando el periodo de
aproximadamente 1,35ms.
La señal de arriba (amarilla)
proveniente de la placa, se
puede ver que claramente
esta al doble de frecuencia y
se trata de la nota F#6 con
una fundamental de 1480Hz
(t ≅ 675us).

● En esta imagen la
señal de la guitarra es la que
se encuentra abajo(celeste) y
se trata de la nota E5(1ra
cuerda) que tiene una
fundamental de 659Hz lo
cual se puede corroborar
observando el periodo de
aproximadamente 1,5ms. La
señal de arriba (amarilla)
proveniente de la placa, se
puede ver que claramente
está al doble de frecuencia y
se trata de la nota E6 con
una fundamental de 1318Hz
(t ≅ 750us).
● En esta imagen la
señal de la guitarra es la que
se encuentra abajo(celeste) y
se trata de la nota A#3(4ta
cuerda) que tiene una
fundamental de 234Hz lo
cual se puede corroborar
observando el periodo de
aproximadamente 4,3ms. La
señal de arriba (amarilla)
proveniente de la placa, se
puede ver que está al doble
de frecuencia y se trata de la
nota A#4 con una
fundamental de 468Hz (t ≅
2,1ms).

● En esta imagen la
señal de la guitarra es la que
se encuentra arriba(amarilla)
y se trata de la nota E3(5ta
cuerda) que tiene una
fundamental de 165Hz lo
cual se puede corroborar
observando el periodo de
aproximadamente 6ms. La
señal de abajo (celeste)
proveniente de la placa, se
puede ver que está al doble
de frecuencia y se trata de la
nota E4 con una
fundamental de 330Hz (t ≅
3ms).
OBSERVACIONES
Es importante destacar las diferentes formas de onda entre las distintas cuerdas de la guitarra,
producto de una distinta naturaleza en la vibración y desencadenando en una distribución de
potencia entre las distintas armónicas. También se pudo ver una diferencia en la forma de onda
dentro de una misma cuerda dependiendo de la nota y del momento en que se captura a la
misma.
Se puede ver como la señal de salida copia la forma de la señal solo limitada por la digitalización
de la misma, lo cual implica una correcta detección de las componentes de frecuencia.
Por último, es destacable el hecho de que por la naturaleza del procesamiento este efecto es
polifónico a diferencia de la mayoría de los pedales encontrados comercialmente.

CONCLUSIONES
Se logró desarrollar con éxito la programación e implementación de la propuesta sugerida,
logrando procesar la señal de una guitarra elevando al doble la frecuencia de la misma gracias a
la herramienta de la transformada rápida de Fourier.
Como principales dificultades del proyecto se pueden considerar el desarrollo de la etapa
analógica de entrada y de salida la cual fue esencial para hacer de interfaz entre la guitarra, la
placa y el amplificador que debido a sus especificaciones técnicas son incompatibles. También
cabe destacar las complicaciones en cuanto a la resolución en frecuencia necesitada para poder
captar las frecuencias fundamentales más bajas de la guitarra y además distinguirlas entre sí ya
que se encuentran muy cercanas unas de otras. Dicha complicación fue condicionada por la
gran velocidad de procesamiento necesaria para el óptimo funcionamiento a la hora de tocar el
instrumento.
Se pudieron llevar a cabo conceptos vistos en el curso, más específicamente la técnica de
zero-padding la cual permitió cumplir con las especificaciones tanto en velocidad de
procesamiento y resolución en frecuencia.

También podría gustarte