You are on page 1of 7

Sistemas Digitales para Procesado de Señal

Generación de señales

UNIVERSIDAD DE MALAGA

Departamento de Tecnología Electrónica. Universidad de Málaga


ETSI de Telecomunicación, Campus de Teatinos, 29071 – Málaga- Spain
E-mail: fgc@uma.es

Departamento de Tecnología Electrónica


Generación de señales

• Práctica 3
• Generar una onda cuadrada de frecuencia 1kHz
• Configurar la frecuencia de muestreo a 8kHz
• La amplitud debe ser 20.000 para el mayor valor y -20.000
para el menor

• Pista: Ir contando el número de interrupciones que se van


produciendo para saber si hay que invertir la salida.

Departamento de Tecnología Electrónica


Generación de señales

• Generación de una señal sinusoidal


• Copiar y probar con varias frecuencias el siguiente código
(completar la función main)
#include "L138_LCDK_aic3106_init.h"
#include "math.h"

#define SAMP_FREC 8000 // Frecuencia de muestreo


#define PI 3.141592

float frecuencia = 2000.0; // Frecuencia del seno a generar


float amplitud = 20000.0; // Amplitud de la señal
float theta = 0.0; // Valor entre -2*PI y 2*PI
float theta_inc; // Incrementos de la señal de salida

interrupt void interrupt4(void)


{
theta_inc = 2*PI*frecuencia/SAMP_FREC;
theta += theta_inc;
if (theta > 2*PI) theta = -2*PI;
output_left_sample((int16_t) amplitud*sin(theta));

return;
}
Departamento de Tecnología Electrónica
Generación de señales

• Manejo de los switches de la placa


• Se puede saber qué switches están activados mediante la función
uint8_t read_LCDK_user_DIP();

• Devuelve una máscara que informa de si los switches 5, 6, 7 u 8


están activados
• No se tiene acceso a los switches 1, 2, 3 y 4

8 7 6 5

• Para saber si algún switch está activado hay que quedarse con el
bit que nos interesa
• Para saber el valor del switch 5 → switches & 0x01
• Para el switch 8 → switches & 0x08
Departamento de Tecnología Electrónica
Generación de señales

• Práctica 4
• Hacer una copia del proyecto del seno
• Hacer que la frecuencia de la señal generada cambie en
función de los switches que estén activados
• Ningún switch activado → 250Hz
• Switch 5 → 500Hz
• Switch 6 → 750Hz
• Switch 7 → 1500Hz
• Switch 8 → 2000Hz
• Si hubiera más de un switch activado tienen preferencia los de
más baja frecuencia

Departamento de Tecnología Electrónica


Generación de señales
• Práctica 5
• Modificar la práctica 4 para que, si hay más de una frecuencia
seleccionada, se generen todas y se superpongan
• Puede darse el caso de que el valor generado no quepa en el
rango de valores que admite una variable con signo de 16 bits
• Una entrada sinusoidal de 20000 de amplitud tras ser
multiplicada por 2 daría la siguiente señal de salida

Departamento de Tecnología Electrónica


Generación de señales
• Para solucionar este problema hay que saturar las señal de salida
para los casos en los que se obtenga un valor mayor (o menor) que
el posible representable con 16 bits con signo
• Para ello es necesario hace todas las operaciones con un tipo de
dato mayor que 16 bits y detectar si se sale del rango
representable con 16 bits
• De esta manera la distorsión es menor

Departamento de Tecnología Electrónica

You might also like