Documentos de Académico
Documentos de Profesional
Documentos de Cultura
12/09/2011
Índice
1. Introducción 1
2. Preparación del ambiente 2
3. Generación de señales 2
3.1. El dominio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.2. Senoidales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.3. Impulso unitario, escalón y rampa . . . . . . . . . . . . . . . . . . . . 4
1. Introducción
Una señal es una descripción de cómo un parametro se relaciona con otro parámetro.
Por ejemplo, en electrónica es común una señal en la cual la tensión varía en el tiem-
po.
En el contexto del procesamiento de señales las mismas pueden ser clasicadas
como analógicas, en tiempo-discreto o digitales. Una señal analógica es una señal re-
presentable por una función matemática en la cual ambos parámetros pueden tomar
un rango continuo de valores. Por este motivo dichas señales son también denomi-
nadas señales continuas. Una señal en tiempo-discreto es una señal representable
por una función que puede tomar valores de un rango continuo sobre un dominio
discreto, por ejemplo, un dominio entero. El proceso de conversión por el cual se
obtiene una señal en tiempo-discreto a partir de una señal analógica se denomina
muestreo. Una señal digital es una señal en tiempo-discreto que tiene un número
discreto de niveles de amplitud. En otras palabras, una señal digital puede ser repre-
sentada como una función matemática cuyo dominio e imagen son ambos conjuntos
discretos. El proceso de conversión por el cual se obtiene una señal digital a partir
de una señal en tiempo-discreto se denomina cuanticación.
1
En este apunte daremos una introducción a las señales digitales utilizando el
ambiente PyLab, esto es, el lenguaje Python y sus extensiones SciPy, NumPy y
matplotlib.
También aparecerá una línea de espera de órdenes, cuyo número entre corchetes
se incrementará a medida que se ingresen nuevos comandos:
In [1]:
El texto impreso más arriba nos muestra las diferente formas de requerir ayuda
y documentación al sistema.
3. Generación de señales
3.1. El dominio
2
In [1]: xs = numpy.arange(1, 100, 0.01)
In [2]: xs
Out[2]: array([ 1. , 1.01, 1.02, ..., 99.97, 99.98, 99.99])
In [3]: len(xs)
Out[3]: 9900
Ejercicio
Generar un vector de NumPy representando un intervalo [0; 2π), con un paso
entre valores de 0,1. Utilizar el valor de π provisto por el sistema.
3.2. Senoidales
In [4]: g = sin(xs)
In [5]: pylab.plot(xs, g)
3
De esta forma hemos generado una señal senoidal que se extiende cerca de dieci-
seis ciclos. Si suponemos que la frecuencia de muestreo, fs , es de mil muestras por
segundo, entonces en total tenemos dieciseis ciclos en diez (9,9) segundos. Bajo estos
supuestos, la frecuencia de la señal generada, fg , es de unos 1,6Hz .
Ejercicio
Generar una señal senoidal de 10Hz de frecuencia y de 4 unidades de ampli-
tud, suponiendo que fs = 100 muestras/s.
0.4
0.2
0.0
0 5 10 15
Muestras
4
1.0
0.8
0.6
Amplitud
0.4
0.2
0.0
0 5 10 15
Muestras
In [3]: d[0] = 1
In [4]: pylab.scatter(xs, d)
In [5]: pylab.xlim(-1, 20)
Out[5]: (-1, 20)
In [6]: pylab.xlabel('Muestras')
In [7]: pylab.ylabel('Amplitud')
Ejercicio
Escriba en Python una función impulso_unitario(x, k) tal que tome como
parámetros de entrada un vector x y un desplazamiento k y retorne un vector.
Por ejemplo
(
1, n ≥ 0
u[n] = para n ∈ Z
0, n < 0
5
1.0
0.8
0.6
Amplitud
0.4
0.2
0.0
0 5 10 15
Muestras
Ejercicio
1. Implemente las funciones escalon_unitario(x, k) y rampa_unitaria(x, k)
en Python, asumiendo el mismo signicado para los parámetros x y k .
2. Genere la señal mostrada en la gura 6 mediante una combinación lineal
de tres señales rampa unitaria con diferentes desplazamientos.
6
14
12
10
8
Amplitud
6
4
2
0
0 5 10 15
Muestras
2
1
0
0 5 10 15
Muestras
7
En Pylab, podemos obtener la media de una señal f de la siguiente manera:
In [1] numpy.mean(f)
o
In [1] f.mean()
Ejercicio
Genere un vector de NumPy con 100 valores aleatorios y encuentre su
desviación estándar y varianza con las funciones apropiadas de dicha biblioteca.