Вы находитесь на странице: 1из 8

Visualización y generación de señal

Probar este ejemplo


Este ejemplo muestra cómo generar ampliamente utilizados formas de onda periódicas y
aperiódicos, secuencias (impulso, paso, rampa), las señales multicanales, trenes de pulso, sinc y
Dirichlet funciones disponibles en el Signal Processing Toolbox™.

Formas de onda periódicas


Además de las funciones de pecado y lechuga romana en MATLAB®, la caja de herramientas
ofrece otras funciones que producen señales periódicas como diente de sierra o cuadrada.
El diente de sierra función genera una onda de diente de sierra con picos en +-1 y un periodo de 2
* pi. Un parámetro de ancho opcional especifica un múltiplo fraccionario de 2 * pi en el que la señal
de máximo ocurre.
La función de Plaza genera una onda cuadrada con un periodo de 2 * pi. Un parámetro opcional
especifica el ciclo de trabajo, el porcentaje del período para el cual la señal es positiva.
Para generar 1,5 segundos de una onda (respectivamente cuadrada) diente de Sierra de 50 Hz con
una velocidad de muestreo de 10 kHz, utilice:
fs = 10000;
t = 0:1/fs:1.5;
x1 = sawtooth(2*pi*50*t);
x2 = square(2*pi*50*t);
subplot(2,1,1)
plot(t,x1)
axis([0 0.2 -1.2 1.2])
xlabel('Time (sec)')
ylabel('Amplitude')
title('Sawtooth Periodic Wave')
subplot(2,1,2)
plot(t,x2)
axis([0 0.2 -1.2 1.2])
xlabel('Time (sec)')
ylabel('Amplitude')
title('Square Periodic Wave')
Formas de onda aperiódicos
Para generar triangular, pulsos rectangulares y Gaussianos, la caja de herramientas ofrece el
tripuls, rectpuls y gauspuls.
La función tripuls genera un muestreados aperiódicos, altura unidad triangular impulso centrada
en t = 0 y con un valor predeterminado de la anchura de 1.
La función rectpuls genera un muestreados aperiódicos, altura unidad rectangular impulso
centrada en t = 0 y con un valor predeterminado de la anchura de 1. Nota que el intervalo de
amplitud diferente a cero se define como abierta a la derecha, es decir, rectpuls(-0.5) = 1 y
rectpuls(0.5) = 0.
Para generar 2 segundos de un pulso triangular (respectivamente rectangular) con una velocidad
de muestreo de 10 kHz y un ancho de 20 ms, utilice:
fs = 10000;
t = -1:1/fs:1;
x1 = tripuls(t,20e-3);
x2 = rectpuls(t,20e-3);
subplot(2,1,1)
plot(t,x1)
axis([-0.1 0.1 -0.2 1.2])
xlabel('Time (sec)')
ylabel('Amplitude')
title('Triangular Aperiodic Pulse')
subplot(2,1,2)
plot(t,x2)
axis([-0.1 0.1 -0.2 1.2])
xlabel('Time (sec)')
ylabel('Amplitude')
title('Rectangular Aperiodic Pulse')

La función gauspuls genera un impulso sinusoidal gaussiana modulado con un período de tiempo
especificado, frecuencia central y ancho de banda fraccional.
La función sinc calcula la función sinc matemática entrada vector o matriz. La función sinc es la
continua inversa de Fourier del pulso rectangular de anchura 2 * pi y altura 1.
Generar un pulso de 50 kilociclos RF Gaussiano con ancho de banda de 60%, muestreada a una
frecuencia de 1 MHz. truncar el pulso donde la envoltura cae 40 dB por debajo del máximo:
tc = gauspuls('cutoff',50e3,0.6,[],-40);
t1 = -tc : 1e-6 : tc;
y1 = gauspuls(t1,50e3,0.6);
Generar la función sinc para un vector linealmente espaciado:
t2 = linspace(-5,5);
y2 = sinc(t2);
subplot(2,1,1)
plot(t1*1e3,y1)
xlabel('Time (ms)')
ylabel('Amplitude')
title('Gaussian Pulse')
subplot(2,1,2)
plot(t2,y2)
xlabel('Time (sec)')
ylabel('Amplitude')
title('Sinc Function')

Formas de onda de frecuencia de barrido


La caja de herramientas también proporciona funciones para generar formas de onda de
frecuencia de barrido como la función de chirrido . Dos parámetros opcionales especifican
métodos de barrido alternativo y fase inicial en grados. A continuación se muestran varios ejemplos
de uso de la función de chirrido generar chirridos cuadráticos lineales o cuadráticas, convexas y
cóncavas.
Generar un chirp lineal:
t = 0:0.001:2; % 2 secs @ 1kHz sample rate
ylin = chirp(t,0,1,150); % Start @ DC, cross 150Hz at t=1sec
Generar un chirrido cuadrático:
t = -2:0.001:2; % +/-2 secs @ 1kHz sample rate
yq = chirp(t,100,1,200,'q'); % Start @ 100Hz, cross 200Hz at t=1sec
Calcular y mostrar los espectrogramas
subplot(2,1,1)
spectrogram(ylin,256,250,256,1E3,'yaxis')
title('Linear Chirp')
subplot(2,1,2)
spectrogram(yq,128,120,128,1E3,'yaxis')
title('Quadratic Chirp')
Generar un chirrido cuadrático convexo.
t = -1:0.001:1; % +/-1 second @ 1kHz sample rate
fo = 100;
f1 = 400; % Start at 100Hz, go up to 400Hz
ycx = chirp(t,fo,1,f1,'q',[],'convex');
Generar un chirrido cuadrático cóncavo:
t = -1:0.001:1; % +/-1 second @ 1kHz sample rate
fo = 400;
f1 = 100; % Start at 400Hz, go down to 100Hz
ycv = chirp(t,fo,1,f1,'q',[],'concave');
Calcular y mostrar los espectrogramas.
subplot(2,1,1)
spectrogram(ycx,256,255,128,1000,'yaxis')
title('Convex Chirp')
subplot(2,1,2)
spectrogram(ycv,256,255,128,1000,'yaxis')
title('Concave Chirp')
Otro generador de funciones es el vco (oscilador controlado por tensión) que genera una señal
oscilante a una frecuencia determinada por el vector de entrada. Veamos dos ejemplos con vco
con un triángulo y un rectángulo de entrada.
Generar 2 segundos de una señal muestreada a 10kHz cuya frecuencia instantánea es una función
de triángulo (respectivamente un rectángulo) de tiempo:
fs = 10000;
t = 0:1/fs:2;
x1 = vco(sawtooth(2*pi*t,0.75),[0.1 0.4]*fs,fs);
x2 = vco(square(2*pi*t),[0.1 0.4]*fs,fs);
La trama de los espectrogramas de las señales generadas:
subplot(2,1,1)
spectrogram(x1,kaiser(256,5),220,512,fs,'yaxis')
title('VCO Triangle')
subplot(2,1,2)
spectrogram(x2,256,255,256,fs,'yaxis')
title('VCO Rectangle')
Trenes de pulso
Para generar trenes de pulsos, podemos utilizar la función pulstran . A continuación, a mostrar dos
ejemplos de cómo utilizar esta función.
Construir un tren de pulsos rectangulares de 2 GHz muestreada a una frecuencia de 100 GHz en
un espacio de 7.5nS.
fs = 100E9; % sample freq
D = [2.5 10 17.5]' * 1e-9; % pulse delay times
t = 0 : 1/fs : 2500/fs; % signal evaluation time
w = 1e-9; % width of each pulse
yp = pulstran(t,D,@rectpuls,w);
Generar una señal periódica pulso gaussiano a 10 kHz, con ancho de banda de 50%. La
frecuencia de repetición de pulso es de 1 kHz, frecuencia de muestreo es de 50 kHz, y longitud de
tren de pulso es 10mseg. La amplitud de repetición debe atenuar por 0.8 cada vez. El ejemplo
utiliza un controlador de función para referirse a la función de generador.
T = 0 : 1/50e3 : 10e-3;
D = [0 : 1/1e3 : 10e-3 ; 0.8.^(0:10)]';
Y = pulstran(T,D,@gauspuls,10E3,.5);
subplot(2,1,1)
plot(t*1e9,yp);
axis([0 25 -0.2 1.2])
xlabel('Time (ns)')
ylabel('Amplitude')
title('Rectangular Train')
subplot(2,1,2)
plot(T*1e3,Y)
xlabel('Time (ms)')
ylabel('Amplitude')
title('Gaussian Pulse Train')

Вам также может понравиться