0% encontró este documento útil (0 votos)
16 vistas9 páginas

Práctica Matlab: Señales y Sistemas

La práctica tiene como objetivo revisar conceptos básicos sobre la generación, representación y procesamiento de señales utilizando Matlab, incluyendo la generación de señales discretas y continuas, así como operaciones básicas como filtrado y enventanado. Se abordan actividades previas que incluyen el uso de funciones de Matlab y conceptos teóricos de señales y sistemas, además de ejercicios prácticos para generar y representar señales básicas, así como calcular respuestas en frecuencia y transformadas de Fourier. Finalmente, se enfatiza la importancia de representar señales en el dominio frecuencial y se presentan ejercicios para aplicar estos conceptos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Temas abordados

  • amplitud,
  • análisis espectral,
  • análisis de frecuencia,
  • coeficientes constantes,
  • cálculo de periodos,
  • convolución,
  • análisis temporal,
  • operaciones con señales,
  • modulación,
  • señales básicas
0% encontró este documento útil (0 votos)
16 vistas9 páginas

Práctica Matlab: Señales y Sistemas

La práctica tiene como objetivo revisar conceptos básicos sobre la generación, representación y procesamiento de señales utilizando Matlab, incluyendo la generación de señales discretas y continuas, así como operaciones básicas como filtrado y enventanado. Se abordan actividades previas que incluyen el uso de funciones de Matlab y conceptos teóricos de señales y sistemas, además de ejercicios prácticos para generar y representar señales básicas, así como calcular respuestas en frecuencia y transformadas de Fourier. Finalmente, se enfatiza la importancia de representar señales en el dominio frecuencial y se presentan ejercicios para aplicar estos conceptos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Temas abordados

  • amplitud,
  • análisis espectral,
  • análisis de frecuencia,
  • coeficientes constantes,
  • cálculo de periodos,
  • convolución,
  • análisis temporal,
  • operaciones con señales,
  • modulación,
  • señales básicas

Práctica 0: Señales y Sistemas

en el Dominio Temporal y Frecuencial

19 de septiembre de 2023

1. Objetivos
El objetivo de esta práctica es revisar los conceptos básicos relativos a la generación,
representación y procesado de señales con Matlab, que serán necesarios en prácticas pos-
teriores. En concreto, se persiguen los siguientes objetivos especı́ficos:

1.1. Generación de señales básicas (discretas y continuas) en el dominio temporal.

1.2. Representación de señales discretas y continuas, tanto reales como complejas (en
módulo-fase y parte real-imaginaria).

1.3. Operaciones básicas con señales en el dominio temporal: modulación y enventanado.

1.4. Cálculo de la respuesta al impulso y la salida para entradas arbitrarias en sistemas


lineales e invariantes con el tiempo (LIT) descritos por ecuaciones en diferencias
lineales con coeficientes constantes (EDLCC).

1.5. Obtención de la respuesta en frecuencia de sistemas LIT discretos.

1.6. Obtención de la transformada de Fourier de señales discretas.

1.7. Representación de señales en el dominio frecuencial (en módulo-fase y parte real-


imaginaria).

1
2

2. Actividades Previas
2.1. Revisar las siguientes funciones de Matlab:

Generación de señales básicas: cos, sin, exp, sinc, zeros, ones, rectwin, y
triang.

Representación de funciones: stem, plot, subplot, axis, title, xlabel, ylabel


y hold.

Trabajo con señales complejas: abs, angle, real e imag.

Cálculo de la respuesta de un sistema LIT en tiempo y frecuencia: filter, conv,


freqz, fft y fftshift.

Estructuras de control: for, if, else, elseif y while.

Comparaciones: ==, <, >, <=, >= y ∼=.

Otras: linspace, roots, poly, zplane.

2.2. Revisar los siguientes conceptos teóricos de Señales y Sistemas:

El concepto de “bajas” y “altas” frecuencias en tiempo discreto y su relación


con el diagrama de polos y ceros.

El concepto de señal periódica y el modo de calcular su periodo (tanto en tiempo


continuo como en tiempo discreto). Periodicidad y periodo de una combinación
lineal de señales periódicas.

La transformada de Fourier de señales sinusoidales y exponenciales complejas


de tiempo discreto.

La transformada de Fourier de una ventana rectangular (pulso cuadrado), de


una sinc y del producto de dos señales.

La relación entrada-salida de un sistema LIT, tanto en el dominio del tiempo


(respuesta al impulso y convolución lineal) como en el dominio de la frecuencia
(respuesta en frecuencia).

El concepto de auto-funciones de un sistema LIT.


3

3. Generación y Representación de Señales Básicas


En esta sección se aborda la generación de tres clases de señales básicas necesarias para
el resto de las prácticas (impulso unitario discreto, sinusoides y exponenciales complejas)
y su representación en el dominio temporal.

3.1. Impulsos de tiempo discreto


Genere y represente (mediante el comando stem) las siguientes señales, siempre en el
intervalo −20 ≤ n ≤ 20:

a) x[n] = δ[n].

b) x[n] = δ[n − 5].

c) x[n] = 4δ[n + 1].

d) x[n] = −2δ[n + 3] + δ[n] + 3δ[n − 7].

Nota: Tenga en cuenta que, para representar una señal en Matlab, es necesario utilizar dos
vectores: por un lado el vector temporal (que contiene los instantes temporales, esto es,
los valores de n), y por otro lado el vector con las amplitudes (que contiene los valores
de x[n] para dichos instantes temporales). El vector temporal puede definirse mediante el
comando n = nini:nstep:nfin (véase help colon o doc colon para recordar su uso) o
mediante el comando linspace (véase help linspace o doc linspace para recordar su
uso).
Nota: Puede utilizar el comando axis (véase help axis o doc axis para su uso) para
ajustar los lı́mites de los ejes de abcisas y ordenadas. En caso contrario, Matlab los calculará
automáticamente.
Nota: Puede utilizar los comandos title, xlabel y ylabel para añadir tı́tulos a la
figura y a los ejes.

3.2. Sinusoides en tiempo dicreto


Una sinusoide en tiempo discreto se puede expresar como

x[n] = Ad cos[Ω0 n + θ].


4

Genere y represente (mediante el comando stem) las siguientes sinusoides discretas, en el


intervalo 0 ≤ n < 4N , siendo N el periodo de cada señal (observe que el punto n = 4N no
forma parte del intervalo):

a) x[n] = cos[2πn/5].

b) x[n] = 2 cos[3πn/8].

c) x[n] = cos[πn/2] − cos[3πn/5].

d) Indique el periodo de las tres señales.

Nota: Tenga de nuevo en cuenta que, si decide generar las dos señales de manera indepen-
diente en el apartado (c) y luego combinarlas, los intervalos temporales usados deben ser
idénticos para obtener el resultado correcto.

3.3. Exponenciales complejas


Una exponencial compleja en tiempo discreto se puede expresar como

x[n] = Ad exp[j(Ω0 n + θ)] = Ad ej[Ω0 n+θ] .

Genere y represente (mediante el comando stem o plot según corresponda) las siguien-
tes exponenciales complejas (tanto en módulo-fase como en parte real-imaginaria), en el
intervalo 0 ≤ n < 4N , siendo N el periodo de cada señal (observe que el punto n = 4N no
forma parte del intervalo):

a) x(t) = exp(j(20πt + π/2)) + 2 exp(j(50πt − π/3)).

b) x[n] = 2 exp[j(5πn/3 + π/2)] + 3 exp[j3πn/2].

c) Indique el periodo de cada señal

Nota: Recuerde que los comandos necesarios para calcular el módulo, la fase, la parte
real y la parte imaginaria de una señal compleja son abs, angle, real e imag respectiva-
mente.
Nota: Utilice la función subplot para dividir la ventana de figuras en varias partes
y representar de manera separada las distintas señales. Para distinguirlas es conveniente
asignar a cada una un tı́tulo mediante el comando title. También es conveniente añadir
un texto en los ejes X e Y mediante xlabel e ylabel respectivamente.
5

4. Operaciones con Señales: Filtrado y Enventanado


En esta sección se pretenden revisar las dos operaciones fundamentales que será nece-
sario realizar con las señales a lo largo del laboratorio: filtrado y enventanado.

4.1. Filtrado
Se dispone de un sistema LIT discreto, que está descrito por la siguiente EDLCC:

y[n] = x[n] − 2x[n − 1] + x[n − 2].

Determine la pulsación fundamental y la frecuencia fundamental de las siguientes señales:

a) x1[n] = cos[πn/20].

b) x2[n] = cos[πn/2].

c) x3[n] = cos[19πn/20].

Utilizando la función filter (véase help filter o doc filter para recordar su uso), en-
cuentre la salida para las siguientes señales de entrada y represéntela para n = 0, 1, . . . , 99:
Repita el ejercicio anterior para los siguientes sistemas LIT discretos:

a) y[n] = x[n] + 2x[n − 1] + x[n − 2] + y[n − 1] − 41 y[n − 2].

b) y[n] = x[n] − 2x[n − 2] + x[n − 4].

A la vista de las señales de entrada y de salida, ¿con qué tipo de filtro (paso bajo, paso
alto, etc.) se corresponde cada uno de los 3 sistemas analizados en esta seccion? Usando
la función zplane puede representar el diagrama de polos y ceros y relacionarlo con el
comportamiento del módulo de la respuesta en frecuencia.

4.2. Respuesta al impulso


Encuentre la respuesta al impulso, usando la función filter, de los siguientes sis-
temas LIT discretos y represéntela para n = 0, 1, . . . , 30:

a) y[n] = x[n] − 2x[n − 1] + x[n − 2].

b) y[n] = x[n] + 2x[n − 1] + x[n − 2] + y[n − 1] − 41 y[n − 2].


6

c) y[n] = x[n] − 2x[n − 2] + x[n − 4].

Nota: Recuerde que la respuesta al impulso es simplemente la salida del sistema cuando la
entrada es un impulso unitario.

4.3. Enventanado
Una operación muy habitual en procesado de señal consiste en multiplicar dos señales
muestra a muestra:
y[n] = x[n]w[n].

En determinados contextos (por ejemplo, diseño de filtros o estimación espectral), la se-


gunda señal es de duración finita y dicha operación se conoce como enventanado.

a) Construya la señal enventanada y[n] utilizando

x[n] = cos[2πn/7],

para −50 ≤ n ≤ 50, y 


1, −15 ≤ n ≤ 15;
w[n] =
0, resto.

Represente la señal original y la señal enventanada.

Nota: Para generar una ventana rectangular, como la mostrada en la ecuación ante-
rior, puede utilizar el comando rectwin.

Nota: Para representar dos o más señales en la misma gráfica, puede hacer uso del
comando hold, que evita que las señales anteriores se borren al dibujar una nueva.
En ese caso, es conveniente utilizar diferentes colores y/o tipos de lı́nea para las dos
señales (véase help plot o doc plot para recordar su uso).

b) Repita la operación anterior utilizando

sin(2πn/7)
x[n] = 7 ,
πn
para −50 ≤ n ≤ 50 y una ventana triangular (generada mediante el comando triang)
de longitud igual a 31 muestras centrada en el origen para w[n]. Represente la señal
original y la señal enventanada.
7

Nota: Puede utilizar el comando sinc para obtener x[n]. Alternativamente, puede
implementar x[n] directamente, teniendo en cuenta que la división tiene que realizarse
muestra a muestra y que en n = 0 existe una indeterminación que debe resolver,
asignando el valor correcto a dicha muestra (por defecto Matlab asigna el valor NaN
a las indeterminaciones). Se recomienda llevar a cabo la implementación de ambos
modos y comprobar que ambos resultados coinciden.

5. Representación de Señales y Sistemas en el Domi-


nio Frecuencial
En esta sección se revisa el modo de caracterizar y representar señales y sistemas en el
dominio frecuencial mediante su transformada de Fourier (TF).

5.1. Respuesta en frecuencia


Utilice el comando freqz (véase help freqz o doc freqz para recordar su uso) para
hallar y representar la respuesta en frecuencia de los tres sistemas LIT discretos del
Ejercicio 4.2:

a) y[n] = x[n] − 2x[n − 1] + x[n − 2].

b) y[n] = x[n] + 2x[n − 1] + x[n − 2] + y[n − 1] − 41 y[n − 2].

c) y[n] = x[n] − 2x[n − 2] + x[n − 4].

5.2. Transformada de Fourier


Para calcular la transformada de Fourier de señales discretas utilizaremos el coman-
do fft de Matlab:
X = fft(x,N);

que evalúa la transformada de Fourier de x[n] en N valores equiespaciados de la pulsación


dentro del rango [0, 2π) (véase help fft o doc fft para más información). Utilice dicho
comando para encontrar la TF de cada una de las 3 señales del Ejercicio 4.1:

a) x[n] = cos[πn/20].
8

b) x[n] = cos[πn/2].

c) x[n] = cos[19πn/20].

Represente su transformada de Fourier (en módulo y fase) mediante los comandos plot y
subplot, definiendo correctamente el eje frecuencial. Tenga en cuenta que la transformada
de Fourier de señales discretas, es una función de variable Ω continua, por lo que para su
representación debemos tomar N suficientemente grande.
Nota: Para definir correctamente el eje frecuencial, tenga en cuenta que el comando
fft(x,N) devuelve N muestras equiespaciadas de la TF dentro del rango [0, 2π). Por
tanto, la muestra k-ésima (k = 0, 1, . . . , N − 1) se corresponderá con una pulsación
2πk
Ωk = N
.
Nota: Habitualmente resulta más interesante representar la TF dentro del rango [−π, π).
Una vez calculada la TF, el comando X = fftshift(X); permite obtener la TF en [−π, π)
a partir de la TF en [0, 2π) y viceversa (véase help fftshift o doc fftshift para más in-
formación). Si se ha utilizado el comando fftshift para calcular la TF en el rango [−π, π),
2πk
entonces debe tomar como eje de frecuencias Ωk = N
− π con k = 0, 1, . . . , N − 1.
Nota: Para que la definición del eje frecuencial descrita anteriormente sea correcta al
utilizar el comando fftshift, es necesario que N sea par. Además, el algoritmo de cálculo
fft es más eficiente si N es una potencia de 2. Por tanto, es recomendable que use un
valor de N = 2r para un valor de r suficientemente alto (por ejemplo, N = 29 = 512 o
N = 210 = 1024).
Nota: Tenga en cuenta que las señales xi [n] (i = 1, 2, 3) se han definido en el intervalo
de tiempo 0 ≤ n ≤ 99. Esto es equivalente a enventanar la señal original con una ventana
rectangular de longitud L = 100. Recuerde la propiedad de la modulación de señales y el
efecto de esta modulación en el dominio transformado.

5.3. Filtrado
Se dispone de la siguiente señal:

x[n] = cos[πn/20] + cos[πn/2] + cos[19πn/20],

para n = 0, . . . , 99. Utilice el comando fft para calcular la TF de x[n] y de la salida y[n]
para cada uno de los tres sistemas del Ejercicio 4.1 cuando la entrada es x[n]:
9

a) y[n] = x[n] − 2x[n − 1] + x[n − 2].

b) y[n] = x[n] + 2x[n − 1] + x[n − 2] + y[n − 1] − 14 y[n − 2].

c) y[n] = x[n] − 2x[n − 2] + x[n − 4].

Es posible calcular las señales de salida y[n] en el dominio del tiempo y luego obtener su
transformada de Fourier, o bien puede calcular la transformada de Fourier de la señal de
entrada y la respuesta en frecuencia de los tres sistemas y luego calcular la respuesta de los
sistemas en el dominio de la frecuencia. Pruebe a resolver el ejercicio por los dos caminos.
Represente en una misma ventana el módulo del espectro de la señal de entrada x[n], de
la respuesta al impulso del sistema h[n] y de la señal de salida y[n], definiendo correctamente
el eje frecuencial. A la vista de estas tres transformadas de Fourier, ¿coincide el tipo de
filtro con el deducido en el Ejercicio 4.1?

También podría gustarte