Está en la página 1de 11

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA

SEDE SECCIONAL SOGAMOSO


ESCUELA DE INGENIERÍA ELECTRÓNICA
PRÁCTICAS DE LABORATORIO PARA PROCESAMIENTO DIGITAL DE SEÑAL

Jeison Alexander Nausa Gomez


E-mail:Jeison.nausa@uptc.edu.co
201520880
Javier Hernesto Perez
E-mail:Javier.Perez@uptc.edu.co
201420640

PROCEDIMIENTO
RESUMEN
En esta practica se realizo simulaciones en el sofware Maltab 1. Simulación en Matlab
donde se genero muestras de diferentes señales (senoidal y -sinusoide oscilando a 200 Hz.
cuadrada).Por medio de la funcion sine_intr.c se generó una
señal senoidal a diferentes frecuencias de muestreo al igual que
con la función función sine_lut_intr.c.

OBJETIVOS
-Generar señales muestreadas con ayuda del Software Matlab.
-Con la Tarjeta de DSP FM4-176L-S6E2CC-ETH y con ayuda
de las funciones sine_intr.c, sine_lut_intr.c generar las señales
(senoidales y cuadrada) a diferentes frecuencias de muestreo.

MATERIALES

-tarjeta de DSP FM4-176L-S6E2CC-ETH.


-Osciloscopio Figura1.Muestras de una Señal senoidal oscilando a 200 Hz.

Pregunta 1: Modifique el código del script de la figura 1, de


INTRODUCCION acuerdo a los valores de fs y frec mostrados en la tabla 1. En
cada caso, observe las gráficas, interprete y comente los
En aplicaciones típicas del DSP la generación de formas de resultados. Puede ser necesario ajustar el tiempo máximo t_max
onda o señales es una tarea común. Diferentes técnicas de DSP para visualizar apropiadamente las formas de onda.
son usadas para la creación y control preciso de formas de onda
sintetizadas. Sin embargo, ciertas restricciones son impuestas
por el hardware y las técnicas de procesamiento y deben ser
tenidas en cuenta para lograr tareas eficientes
computacionalmente. En esta práctica se ganará experiencia
generando formas de onda tanto en simulación como en
hardware DSP en tiempo real usando el kit ARM Cortex M4.

Laboratorio DSP Mon. Wilson Silva Página 1


-Fs=8000 hz y fseñal=1000 hz -Fs=8000 y fseñal=4000

Figura2.Muestras de una Señal senoidal con fs=8kHz y F=1kHz.


Figura4.Muestras de una Señal senoidal con fs=8kHz y F=4kHz.
Para este caso se puede apreciar la señal recuperada, pero con
menor resolución debido a la cantidad de puntos.

-Fs=8000 y fseñal=2000 -Fs=8000 y fseñal=7000

Figura5.Muestras de una Señal senoidal con fs=8kHz y F=7kHz.


Figura3.Muestras de una Señal senoidal con fs=8kHz y F=2kHz.

Laboratorio DSP Mon. Wilson Silva Página 2


-Fs=16000 y fseñal=7000

Figura7.Muestras de una Señal cuadrada.

Figura6.Muestras de una Señal senoidal con fs=16kHz y F=7kHz.

¿En que casos ocurrirá aliasing? Justifique su respuesta. Incluya


en cada caso donde ocurra aliasing y comente lo que observa en
las formas de onda resultantes.

RTA: como se puede observar en las gráficas para frecuencias


de muestreo de 8khz, para las señales de 1khz,4khz,8khz, las
señales observadas se recuperan con su frecuencia acorde de
oscilación, esto indica que no se produce aliasing como lo es
para frecuencias superiores a 2 veces fs, estas graficas se
visualizan no tan continúas debido a los puntos que se toman en
el programa, en cambio para el caso en el que la frecuencia es
de 7khz y fs=8khz no se cumple la ley de Nyquist, por lo tanto
se evidencia que se recupera una señal sinusoidal pero con
frecuencia distinta a la original, para el caso de fs de 16k se debe
recuperar la frecuencia original pero debido a los puntos
tomados la señal se distorsiona debido a esto

Figura8.Muestras de una Señal cuadrada continua.


Otros tipos de forma de onda resultantes que pueden ser
generados usando Matlab. La figura 2 muestra un script para Pregunta 2: Asuma que las muestras corresponden a un periodo
generar una forma de onda cuadrada. de la onda cuadrada. ¿Cuál es la frecuencia de la onda
cuadrada?

Rta: asuminedo T=8000 entonces F=1/T = 1/8k= 0.000125 hz.

Laboratorio DSP Mon. Wilson Silva Página 3


2. Generación de señales en Tiempo Real – Sinusoides
de frecuencia arbitraria.

El código del programa sine_intr.c mostrado en la figura 5


genera formas de onda sinusoidales en la tarjeta de DSP FM4-
176L-S6E2CC-ETH. La estructura del programa es idéntica a
los ejemplos de la asignación del primer laboratorio. Esto es, el
programa está basado en interrupciones y opera a una
frecuencia de muestreo de 5 kHz. Aunque las muestras del ADC
no son usadas, son utilizadas con base a llamados a la función
sin(). La frecuencia de la señal que es generada es controlada
por la frecuencia variable. El DAC reconstruirá una señal
continua en tiempo basada en valores muestra.

Para asegurar la generación de la señal, una parte del cálculo en


sine_intr.c debe ser realizada usando aritmética de punto
flotante. Observe que las variables theta_increment y theta son
de tipo float32_t. Debido a que los últimos valores enviados al Figura10. Salida análoga generada por la función
DAC deben ser enteros, observe el tipo cast (conversión entre sine_intr.(dominio del tiempo.)
tipos primitivos) que a int16_t cuando se asigna la variable
audio_chL.

Figura11. Salida análoga generada por la función


sine_intr.(dominio de la frecuencia.)

Donde se verifico que la señal de salida la frecuencia era de


1khz.

Figura 9. Estructura de programa sine_intr.c -Modifique el script anterior de acuerdo a los valores de
frecuencia mostrados en la tabla de abajo. En cada caso,
Conecte un osciloscopo a un canal de la salida del audífono en capture imágenes de la señal de salida en el dominio del
la board Cypress FM4 y observe la señal tiempo y la frecuencia e interprete los resultados.
en los dominios del tiempo y de la frecuencia (Función math fft
o Analizador de espectro). Verifique la salida sinusoidal a 1
kHz.

A continuación se observa la gráfica obtenida:

Laboratorio DSP Mon. Wilson Silva Página 4


Valor asignado de frecuencia
1500 hz
2641 hz PARA F= 2641 Hz, Fs=8khz
3500 hz
4500 hz
7000 hz
Tabla. Valores de frecuencia a modificar en script sine_intr.c

PARA F= 1500 Hz, Fs=8khz

Figura14. Salida análoga generada por la función


sine_intr.(dominio del tiempo.)

Figura12. Salida análoga generada por la función


sine_intr.(dominio del tiempo.)

Figura15. Salida análoga generada por la función


sine_intr.(dominio de la frecuencia.)

Al modificar el código por un frecuencia de la señal de 2.641


Figura13. Salida análoga generada por la función khz se verifico que la señal de salida obtenida es efectivamente
sine_intr.(dominio de la frecuencia.) de 2.641 khz esto ocurrió ya que la frecuencia de muestreo es
mayor a dos veces la frecuencia de la señal (Teorema de
Al modificar el código por un frecuencia de la señal de 1.5 khz Nyquist Shannon).
se verifico que la señal de salida obtenida es efectivamente de
1.5 khz esto ocurrió ya que la frecuencia de muestreo es
mayor a dos veces la frecuencia de la señal (Teorema de
Nyquist Shannon).

Laboratorio DSP Mon. Wilson Silva Página 5


PARA F= 3500 Hz, Fs=8khz

Figur18. Salida análoga generada por la función


sine_intr.(dominio del tiempo.)
Figura16. Salida análoga generada por la función
sine_intr.(dominio del tiempo.)

Figura19. Salida análoga generada por la función


Figura17. Salida análoga generada por la función sine_intr.(dominio de la frecuencia.)
sine_intr.(dominio de la frecuencia.)
Al modificar el código por un frecuencia de la señal de 4.5 khz
Al modificar el código por un frecuencia de la señal de 3.5 khz se verifico que la señal de salida obtenida no es la esperada
se verifico que la señal de salida obtenida es efectivamente de esto ocurrió ya que la frecuencia de muestreo es de 8khz por
3.5 khz esto ocurrió ya que la frecuencia de muestreo es lo que no se está cumpliendo con el teorema de muestreo de
mayor a dos veces la frecuencia de la señal (Teorema de Nyquist Shannon y por lo tanto hay perdida de información ya
Nyquist Shannon). que se obtuvo una señal de salida con una frecuencia de 3.5
khz aproximadamente.

PARA F= 4500 Hz, Fs=8khz


Laboratorio DSP Mon. Wilson Silva Página 6
PARA F= 7000 Hz, Fs=8khz El código fuente en C sine_lut_intr.c de la figura 5 genera una
señal sinusoidal usando el método LUT y opera como sigue:

Una LUT es inicializada en el arreglo sine_table tal que los


valores del arreglo corresponden a la expresión

sine_table[i] = 10000 sin(2i/8)

Figura20. Salida análoga generada por la función


sine_intr.(dominio del tiempo.)

Figura22. Estructura de programa sine_lut_intr.c

- Modifique la función sine_lut_intr.c para usar una tasa de


Figura21. Salida análoga generada por la función muestreo de 48 kHz cambiando el parámetro hz8000 a
sine_intr.(dominio de la frecuencia.) hz48000 en el llamado a la función audio_init(). ¿Cuál
deberá ser la nueva frecuencia de la sinusoide? Jusitifique
Al modificar el código por un frecuencia de la señal de 7 khz su respuesta. Incluya un osciloscopio y analizador de
se verifico que la señal de salida obtenida no es la esperada espectro que capture la sinusoide generada.
esto ocurrió ya que la frecuencia de muestreo es de 8khz por
lo que no se está cumpliendo con el teorema de muestreo de Solucion: Como son 8 muestras por ciclo de salida a una
Nyquist Shannon y por lo tanto hay perdida de información ya
frecuencia de muestreo de 48khz entonces:
que se obtuvo una señal de salida con una frecuencia de 1 khz
aproximadamente.
FS= Frecuencia de muestreo

m=Muestras por ciclo


3. Generación se señales en tiempo real – Método de 𝑭𝑺
tablas de búsqueda (LUTs) 𝒇𝒔𝒆ñ𝒂𝒍 =
𝒎

Laboratorio DSP Mon. Wilson Silva Página 7


𝟒𝟖𝒌𝒉𝒛 Use el osciloscopio y analizador de espectro para capturar
𝒇𝒔𝒆ñ𝒂𝒍 = = 𝟔𝒌𝒉𝒛
𝟖 la sinusoide generada, comente las líneas de código
incluidas en el script.
Por lo que la señal de salida debe tener una frecuencia de
6khz la cual se verifico. Solución: Se debe modificar el código de la figura 22 en
donde las muestras por ciclo está dada por:

𝐹𝑠
𝑚=
𝑓𝑠𝑒ñ𝑎𝑙

Fseñal = 2khz

Fs= 8khz

8𝑘ℎ𝑧
𝑚= =4
2𝑘ℎ𝑧

Entonces de sebe modificar:

Const int loop_size=4;

La frecuencia de muestreo si está en 8khz.

Figura23. Salida análoga generada por la función Senoide generada:


sine_lut_intr.c (dominio del tiempo.)

Figura25. Salida análoga generada por la función


sine_lut_intr.c (dominio del tiempo.)

Figura24. Salida análoga generada por la función


sine_lut_intr.c (dominio de la frecuencia.)

Donde se puede observar en las figuras 20 y 21 que la


frecuencia de la señal de salida efectivamente es de
6khz.

-Modifique la función sine_lut_intr.c para generar una


sinusoide de 2 kHz usando una tasa de muestreo de 8 kHz.

Laboratorio DSP Mon. Wilson Silva Página 8


Figura26. Salida análoga generada por la función
sine_lut_intr.c.(dominio de la frecuencia.) Figura27. Salida análoga generada por la función
sine_lut_intr.c (dominio del tiempo.)
En las figuras 25 y 26 se comprobó la señal de salida con una
frecuencia de 2khz.

- Repita el problema anterior pero esta vez


genere una sinusoide a 1.5 kHz.

Solución: Se debe modificar el código de la figura 22 en


donde las muestras por ciclo está dada por:

𝐹𝑠
𝑚=
𝑓𝑠𝑒ñ𝑎𝑙

Fseñal = 1.5 khz

Fs= 8khz

8𝑘ℎ𝑧
𝑚= ≈5
1.5𝑘ℎ𝑧

Entonces de sebe modificar: Figura28. Salida análoga generada por la función


sine_lut_intr.c.(dominio de la frecuencia.)
Const int loop_size=5;

La frecuencia de muestreo si está en 8khz.


En las figuras 27 y 28 se comprobó la señal de salida con una
Senoide generada: frecuencia de aproximadamente 1.5khz.

4. Generación de señales en Tiempo Real – Ondas


Cuadradas

Considere la secuencia de muestras {10000, 10000, 10000,


10000,- 10000,- 10000,- 10000,- 10000}. La secuencia
representa las muestras de un periodo de onda cuadrada. Puesto
que hay ocho muestras en un periodo, usando una frecuencia de
muestreo de 8 kHz se tendría una onda cuadrada en 1 kHz.

Laboratorio DSP Mon. Wilson Silva Página 9


Edite el programa sine_lut_intr.c de manera que obtenga la
onda cuadrada a 1 kHz. Necesitará definir un nuevo arreglo que
contenga los valores de muestra de la onda cuadrada

int16_t square_table[LOOP_SIZE] = {10000, 10000, 10000,


10000,- 10000,- 10000,- 10000,- 10000};

Y modifique el resto del programa de acuerdo a los


requerimientos. Obtenga las capturas del osciloscopio y
analizador de espectro de la onda cuadrada generada. La
forma de onda en el dominio del tiempo se parece a la onda
cuadrada? ¿Cómo la forma de onda se compara con la onda
cuadrada generada usando Matlab?

Solución: Después de modificar el código respectivamente se


obtuvo las grafica cuadrada de 1 khz como se observa a
continuación.
Figura30. Salida análoga generada por la función
m=8, Fs=8khz sine_lut_intr.c. (Dominio de la frecuencia.)
𝐹𝑠 La forma de onda en el tiempo obtenida no se parece a
𝑓𝑠𝑒ñ𝑎𝑙 = = 1𝑘ℎ𝑧
𝑚
una onda cuadrada debido que se necesita mucho más
número de muestras y por el fenómeno de Gibbs en el
que se dice que si una función dada se aproxima por
medio de series de Fourier habrá un error considerable
en la vecindad de la discontinuidad por lo que se
obtiene una oscilación.

- Modifique el programa para generar una onda cuadrada


a 500 Hz usando una tasa de muestreo de 8 kHz. Obtenga
las capturas del osciloscopio y analizador de espectro de la
onda cuadrada generada. Incluya en su respuesta las líneas
de código que haya modificado.

Figura29. Salida análoga generada por la función


sine_lut_intr.c (dominio del tiempo.).

Figura31. Salida análoga generada por la función


sine_lut_intr.c (dominio del tiempo.).

Laboratorio DSP Mon. Wilson Silva Página 10


aunque eso influye en el gasto computacional que
deseemos equipar.

-El efecto aliasing produce una distorsión de la señal


tomada que interpreta con otra forma de onda con
frecuencia distinta.
Nyquist
mucho
proceso
conversión
que
nos
-El teorema
conpara
de
dicha
nosA/D
el
de
ayuda
cota
ya
BIBLIOGRAFIA

[1] Mathworks, http://www.mathworks.com/.

[2] Gnu Octave, https://www.gnu.org/software/octave/.

[3] ARM University Worldwide Education Program. ARM-


based Digital Signal Processing Lab-in-a-Box, 2014.

Figura32. Salida análoga generada por la función


sine_lut_intr.c.(dominio de la frecuencia.)

8𝑘ℎ𝑧
𝑚= ≈ 16
500 ℎ𝑧

Entonces de sebe modificar:

Const int loop_size=16;

- Examine cuidadosamente las capturas del analizador de


espectro para la onda cuadrada a 500 Hz y 1 kHz.
¿Corresponden esas mediciones a la transformada de
Fourier (o Series de Fourier) de la onda cuadrada? ¿Qué
sugiere esas mediciones acerca del filtro de reconstrucción
del sistema DSP en tiempo real?

Solución: Si corresponde por que como se puede observar para


la Figura30 el primer armónico se encuentra a la frecuencia de
la señal y el segundo al doble de la frecuencia al igual que la
Figura 32.Sugiere que se tengo un filtro de antialiasing que
tiene como función limpiar la función antes de la
conversión analógica-Digital.

CONCLUSIONES

-Se concluye según la práctica que para poder muestrear


una señal según la ley de nyquist es recomendable que la
frecuencia de muestreo mínima sea el doble de la
frecuencia de la señal o mayor para ser más confiable,

Laboratorio DSP Mon. Wilson Silva Página 11

También podría gustarte