Sunteți pe pagina 1din 4

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA

ESCUELA PROFESIONAL DE INGENIERÍA ELECTRONICA

Telecomunicaciones I
Laboratorio N. 02

Tema: Generación de señales básicas con MatLab

Msc. Ing. Raúl Hinojosa Sánchez

El ToolBox de procesamiento de señales de Matlab posee una gran variedad de funciones para la
generación de señales, estas señales requieren de una representación vectorial de la variable tiempo,
de manera continua o discreta. Para realizar una simulación de un intervalo continuo, se usa un vector
de valores discretos con un intervalo de muestreo muy pequeño.

El siguiente comando genera un vector llamado t de valores que representan la variable tiempo, con un
intervalo de muestreo de 1 ms entre 0 y 1 segundo.

t = 0:0.001:1;

Después de creado el vector que representa la variable tiempo, es posible iniciar el desarrollo de alguna
señal de interés.

En Matlab una señal discreta en el tiempo se representa exactamente, porque los valores de la señal
son representados como los elementos de un vector. Sin embargo las señales de tiempo continuo en
Matlab son tan solo aproximaciones. La aproximación consiste de un vector cuyos elementos son
muestras de la verdadera señal de tiempo continuo. Cuando se usa esta técnica para la representación
de señales continuas es importante escoger el intervalo de muestreo lo suficientemente pequeño para
asegurar que las muestras capturan todos los detalles de la señal.

1
EJEMPLOS DE SEÑALES EN MATLAB

Ejercicio 1

Genere una secuencia de instantes de tiempo que parta de t=0s y llegue hasta t=0.25s en intervalos
de 1ms. Construya una función seno en esa base de tiempo de amplitud 1 y frecuencia 5Hz.
Use plot para dibujar la forma de onda. Además, destaque cada punto de la gráfica con *.

>> Tinicial=0; % Definimos el tiempo inicial


>> Tfinal=0.25; % Definimos el tiempo final
>> step=0.001; % Definimos el paso entre instantes de tiempo
>> t=Tinicial:step:Tfinal-step; % Se genera el vector de tiempos
>> y=1*sin(5*2*pi*t); % Se genera y
>> plot(t,y); hold on; % Dibujamos y
>> plot(t,y);

Por tanto, siendo estrictos, en MATLAB toda señal es discreta en tiempo, mientras que en amplitud
puede ser discreta (cuantizada) o continúa (aunque limitada por la precisión de los tipos
numéricos). No obstante, si los intervalos temporales entre valores son suficientemente pequeños
y el rango temporal en el que se define la señal es suficientemente amplio, la secuencia de
valores empleada para representar la señal y las operaciones realizadas para su análisis
proporcionan una buena aproximación a los resultados teóricos. En el caso más simple y frecuente,
los valores se toman en instantes equiespaciados, intervalo que no debe confundirse con el periodo
de muestreo. De momento, ignoraremos el efecto de la discretización de señales (utilizaremos
intervalos de tiempo suficientemente pequeños, de modo que los efectos sean despreciables).
Asimismo, la amplitud de las señales está sometida a una discretización que, dada la pre- cisión de
los tipos numéricos empleados en MATLAB, podemos ignorar.

2. Señales especiales.

Vamos a ver una posible forma de representar en MATLAB algunas señales analógicas típicas.

SEÑAL ESCALÓN

% Ejemplo de señal escalon


>> t=-10:0.01:10;
>> f_escalon=[zeros(1,1000),ones(1,1001)];
>> plot(t,f_escalon);

2
SEÑAL PULSO

% Ejemplo de señal pulso


>> t=-10:0.01:10;
>> f_pulso=[zeros(1,950),ones(1,101),zeros(1,950)];
>> plot(t,f_pulso);

SEÑAL SAMPLING

% Ejemplo de señal sampling


>> t=-10:0.01:10;
% Señal sampling nula en t=n*pi, n=1,2,...
>> f_sampling=sin(t)./t;
>> plot(t,f_sampling);
% Señal sinc nula en t=n, n=1,2,...
>> f_sinc=sinc(t);
>> plot(t,f_sinc);

SEÑAL IMPULSO O DELTA DE DIRAC

% Ejemplo de señal impulso


>> t=-10:0.01:10;
>> f_impulso=[zeros(1,1000),1,zeros(1,1000)];
>> plot(t,f_impulso);

SEÑAL DIENTE DE SIERRA

% Ejemplo de señal diente de sierra de periodo 0.1Hz


% sawtooth(x,width) señal en diente de sierra con periodo 2*pi para los
% elementos del vector x. El parámetro “width” es un escalar entre
% 0 y 1, y describe la fracción del periodo 2*pi en el que ocurre el
% máximo.
>> t=-10:0.01:10;
>> width=0.10;
>> f_sierra=sawtooth(2*pi*0.1*t,width);
>> plot(t,f_sierra);

SEÑAL TRIANGULAR

% Ejemplo de señal triangular de periodo 0.1Hz


% Es un caso particular de señal diente de sierra con width=0.5
>> t=-10:0.01:10;
>> f_triangular=sawtooth(2*pi*0.1*t,0.5);
>> plot(t,f_triangular);

SEÑAL EXPONENCIAL

% Ejemplo de señal exponencial decreciente


>> t=-10:0.01:10;
% tau: constante de tiempo (RC)
>> tau=200e-2;
>> f_expon=exp(-t/tau);

3
>> plot(t,f_expon);

SEÑAL CUADRADA

% Ejemplo de señal cuadrada de frecuencia 0.5Hz


% square(x,duty) genera una onda cuadrada de periodo 2*pi con un duty
cycle dado
>> t=-10:0.01:10;
>> duty=50; % porcentaje del periodo en el que la señal es positiva
>> f_cuadrada=square(2*pi*0.5*t,duty);
>> plot(t,f_cuadrada);

Ejercicios:

%1. GENERACIÓN DE SEÑALES


%Pulso unitario:
n = [0:10]'; % vector tiempo
imp = [1; zeros(10,1)]; %vector impulso
stem(n, imp) %gráfica señal discreta
axis([0 10 0 2])

%Paso unitario:
n = [0:10]'; % vector tiempo paso=
ones(11,1); %vector paso unitario
stem(n, paso) %gráfica señal discreta
axis([0 10 0 2])

%Rampa unitaria:
n = [0:0.1:1]'; % vector tiempo
ramp = n; %vector rampa unitaria
stem(n, ramp) %gráfica señal discreta
axis([0 1 0 2])
xlabel(' Tiempo (n)')
ylabel('r(n)')
title('Rampa')

%Señal cuadrática:
n = [0:0.1:0.9]'; % vector tiempo
cuadr = n.^2; %cuadrática
stem(n, cuadr) %gráfica señal discreta
axis([0 1 0 2])
xlabel(' Tiempo (n)')
ylabel('x(n)')
title('cuadratica')

%Señal exponencial:
n = [0:0.1:9.9]';
xn= (0.5).^n;
stem(n, xn)
axis([0 10 0 2])
xlabel(' Tiempo (n)')
ylabel('x(n)')
title('x(n)=a^n')
4

S-ar putea să vă placă și