Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Lab1p1 2021

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

INGENIERÍA MECATRÓNICA

SEÑALES Y SISTEMAS
LABORATORIO CALIFICADO 1 PARTE 1

2021-II

INTRODUCCIÓN

SEÑALES Y SISTEMAS
Las señales se clasifican en general en señales analógicas y discretas. Una señal análoga será denotada por 𝑥 (𝑡),
en la cual la variable t puede representar cualquier cantidad física, pero asumiremos que representa el tiempo en
segundos. Una señal discreta será denotada por 𝑋 (𝑛), en la que la variable n es valor entero y representa instancias
discretas en el tiempo. Por lo tanto también se llama señal de tiempo discreto, que es una secuencia numérica y
que será denotada por:
𝑥(𝑛) = {𝑥(𝑛)} = {… , 𝑥(−1), ⏟
𝑥(0) , 𝑥(1), … }

Donde la flecha hacia arriba indica la muestra en donde n = 0.
En MATLAB podemos representar una secuencia de duración finita por un vector de filas de valores apropiados.
Sin embargo, dicho vector no tiene ninguna información sobre la posición de la muestra n. Por lo tanto, una
representación correcta de x(n) requiere de dos vectores una para x y otra para n
Por ejemplo para x(n)= {2, 1, -1, 0, 1, 4, 3, 7} puede ser representada en MATLAB por

>> n= [-3,-2,-1,0,1,2,3,4] ; x= [2,1,-1,0,1,4,3,7];

SECCIÓN 1
1.1 Implementar en MATLAB la función impulso unitario
Si tenemos que:
1, 𝑥 = 0
𝛿 (𝑛 ) = { ={… ,0,0, ⏟
1 , 0,0, … . }
0, 𝑥 ≠ 0 ↑
En MATLAB la función zeros(1,N), genera un vector fila de N ceros , el cual puede ser usado en la
implementación de la función 𝜹(𝒏)
La notación n==0 es una forma elegante en la implementación de 𝜹(𝒏)sobre un intervalo finito

Implementar la siguiente función:


1, 𝑛 = 𝑛0
𝛿 (𝑛 − 𝑛 0 ) = {
0, 𝑛 ≠ 𝑛0
En el intervalo de 𝑛1 ≤ 𝑛0 ≤ 𝑛2, utilizando la siguiente función

function[x,n]=impsec(n0,n1,n2)
% Genera x(n) = delta(n-n0); n1<= n <= n2
%-------------------------------------------------------
%[x,n]= impsec(n0,n1,n2)
%
n=[n1:n2]; x=[(n-n0)==0];

Ejemplo 1

%ejemplo 1
x=impsec(0,-4,5)
stem((-4:5),x)
ans =
0 0 0 0 0 1 0 0 0 0

1.2 Implementar la función escalón unitario


Si tenemos que:
1, 𝑛 ≥ 0
𝑢 (𝑛 ) = { ={… ,0,0, ⏟
1 , 1,1 … }
0, 𝑛 < 0 ↑
En MATLAB la función ones(1,N) genera una vector fila de unos. La cual puede ser usada para generar 𝒖(𝒏)sobre
un intervalo finito, sin embargo podemos tener una aproximación utilizando la relación lógica n>=0.
Implementar
1, 𝑛 ≥ 𝑛0
𝑢 (𝑛 − 𝑛0 ) = {
0, 𝑛 < 𝑛0
Sobre el intervalo 𝑛1 ≤ 𝑛 ≤ 𝑛2 , utilizando la siguiente función

function[x,n]= escalonun(n0,n1,n2)
%genera x(n)=u(n-n0);n1<=n<=n2
%[x,n]=escalonun(n0,n1,n2)
%
n=(n1:n2); x=((n-n0)>=0);

Ejemplo 2

%ejemplo2
x=escalonun(1,-1,5)
stem((-1:5),x)
x=
0 0 1 1 1 1 1

1.3 SEÑALES ANALÓGICAS

Consideremos la siguiente señal analógica


𝒙(𝒏) = 𝒔𝒆𝒏(𝟐𝝅𝟓𝟎𝒕) + 𝟎. 𝟓𝒔𝒆𝒏(𝟐𝝅𝟏𝟓𝟎𝒕)

y supongamos que se muestrea esta señal con una frecuencia Fs= 600 Hz ( se puede verificar que la frecuencia de
muestreo elegida cumple con el Teorema de Muestreo de Shannon, es decir Fs > FN , donde FN es la tasa de
muestreo de Nyquist). La señal en tiempo discreto resultante x(n) se obtiene tomando los valores de x(t) en los
instantes nTs = (n/Fs ) donde Ts es el denominado intervalo de muestreo.
Es decir, en el caso de este ejemplo se tiene
𝟐𝝅𝟓𝟎 𝟐𝝅𝟏𝟓𝟎
𝒙(𝒏) = 𝒔𝒆𝒏 ( 𝒏) + 𝟎. 𝟓𝒔𝒆𝒏 ( 𝒏)
𝟔𝟎𝟎 𝟔𝟎𝟎
Las señales en tiempo continuo x(t) y en tiempo discreto x(n) pueden graficarse usando los comandos Matlab plot
y stem, respectivamente. La siguiente sucesión de comandos permite generar y graficar estas señales

%ejemplo3: señales analogicas


t=0:0.0001:0.04;
x=sin(2*pi*50*t)+0.5*sin(2*pi*150*t);
td=0:1/600:0.04;
xn=sin(2*pi*50*td)+0.5*sin(2*pi*150*td);
plot(t,x)
hold on
stem(td,xn)
grid;
xlabel('Tiempo [seg]'); ylabel('x(t)');

El resultado es la siguiente grafica


1.5

0.5
x(t)

-0.5

-1

-1.5
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04
Tiempo [seg]

1.3. Ejemplo 4
Supongamos que se desea generar y graficar las señales x1 (t) y x2 (t) en tiempo continuo definidas como

y las correspondientes señales en tiempo discreto que se obtienen muestreando con una frecuencia F s = 500 Hz.
Notar que las dos señales tienen asociada la misma señal muestreada. Los comandos Matlab para generar y
graficar las señales se incluyen a continuación, ingresar el código y graficar la resultante

Fs = 500; % frecuencia de muestreo en Hz


t1 = (0:1/(20*Fs):1)'; % vector tiempo “continuo”
F1 = 50; % frecuencia de la señal x1
F2 = F1 + Fs; % frecuencia de la señal x2
x1 = cos(2*pi*F1*t1); % señal x1
x2 = cos(2*pi*F2*t1); % señal x2
t = (0:1/Fs:1)'; % vector tiempo discreto
xm = cos(2*pi*F1*t); % señal muestreada
plot(t1,x1,'b--',t1,x2,'r--',t,xm,'go'); % gráfica
axis([0 0.02 -1 1]); % escalado en los ejes
xlabel('Tiempo [s]'); % rotulado del eje de abscisas
grid; % grilla
title('Señales x1(t), x2(t) y muestreadas'); % título

1.4 SINTESIS DE UNA SECUENCIA O SERIE IMPAR Y PAR


Una secuencia valor real xe (n) se denomina par (simétrica) si:
xe (-n) = xe (n)
De manera similar, una secuencia de valor real xo (n) se llama impar (asimétrica) si:
xo (-n) = -xo (n)
Entonces cualquier secuencia arbitraria de valor real x (n) se puede descomponer en sus componentes pares e
impares
x(n) = xe(n) + xo(n)
de donde todas las partes pares e impares esta dada respectivamente por :
𝟏 𝟏
xe(n) =𝟐[x(n) + x(−n)] y xo(n) =𝟐[x(n) − x(−n)]

Vamos a utilizar mas adelante esta descomposición en el estudio de las propiedades de la Transformada de
Fourier.

Por lo tanto, es un buen ejercicio desarrollar una función MATLAB para descomponer una secuencia dada, en sus
componentes par e impar.

Usando las operaciones de MATLAB podemos obtener la siguiente función “parimpar”.


function [xe, xo, m] = parimpar(x,n)

% descomposicion dela señal en partes par e impar


% -------------------------------------------------
% [xe, xo, m] = parimpar(x,n)
%

if any(imag(x) ~= 0)
error('x is not a real sequence')
end
m = -fliplr(n);
m1 = min([m,n]); m2 = max([m,n]); m = m1:m2;
nm = n(1)-m(1); n1 = 1:length(n);
x1 = zeros(1,length(m)); x1(n1+nm) = x; x = x1;
xe = 0.5*(x + fliplr(x));
xo = 0.5*(x - fliplr(x));

Se debe de comprobar si la secuencia dada es real y se determina el soporte de los componentes pares e impares
en el arreglo m.
Luego se implementa con especial atención a la operación de indexación de MATLAB.
La resultante los componentes se almacenan en arreglos xe y xo.

1.4.a Ejercicio:

Sea 𝒙 (𝒏) = 𝒖 (𝒏) − 𝒖 (𝒏 − 𝟏𝟎). Descomponga 𝒙(𝒏) en componentes pares e impares


NOTA: La secuencia 𝒙 (𝒏), que es distinta de cero sobre 0 ≤ n ≤ 9, se denomina impulso rectangular.
Usar MATLAB para determinar y trazar sus partes pares e impares
𝒚(𝒏) = 𝑻[𝒙(𝒏)]

SECCIÓN 2
EJERCICIOS ADICIONALES
1.- Generar y representar gráficamente cada una de las siguientes secuencias en el intervalo indicado

a. 𝒛(𝒏) = 𝒄𝒐𝒔(𝟎. 𝟎𝟒𝝅𝒏) + 𝟎. 𝟐𝝎(𝒏), 0 ≤ n ≤ 50, donde 𝝎(𝒏) es una secuencia gaussiana aleatoria con media
cero y varianza unitaria

b. 𝑥̅ (n)={ ..., 5,4,3,2,1,𝟓,


⏟ 4,3,2,1,5,4,3,2,1,.. . ); -10<9.

c. 𝒛(𝒏) = 𝒄𝒐𝒔(𝟎. 𝟏𝟎𝝅𝒏) , 0 ≤ n ≤ 50,

2.- Indicar como se clasifican las señales


3.- Indicar cuales son las señales básicas
4.- Que entiende por secuencias o funciones Par e Impar

CUESTIONARIO

INFORME DE LABORATORIO

• Resolver los ejercicios de cada sección del laboratorio, analizar los códigos de las funciones e indicar sus
observaciones y conclusiones, modificarlos y obtener su propia versión para cada caso, el estudiante deberá
de presentar un informe escrito y un archivo digital de los códigos
• Indicar algunas aplicaciones en el mundo real que encuentren
• El informe se entregará y sustentará en la clase siguiente

BIBLIOGRAFIA
Leis, John W.; Digital Signal Processsing Using MATLAB for Students and Researchers; John Wiley & Sons, Inc.,
Vinay K. Ingle,John G. Proakis;Digital Signal Processing Using MATLAB; Cengage Learning
Chaparro, Luis; Akan Aydin: Signals and Systems Using MATLAB; Elseiver

También podría gustarte