Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Generación de señal y visualización

Este ejemplo muestra cómo generar formas de onda periódicas y aperiódicas ampliamente utilizadas, secuencias (impulso, paso, rampa), señales multicanal, trenes de pulsos, funciones sinc y Dirichlet disponibles en la caja de herramientas de procesamiento de señal™.

Formas de onda periódicas

Además de las funciones de MATLAB®, la caja de herramientas ofrece otras funciones que producen señales periódicas como diente de sierra y cuadrado.sincos

La función genera una onda de diente de sierra con picos a +/-1 y un período de 2 * PI.sawtooth Un parámetro de ancho opcional especifica un múltiplo fraccional de 2 * PI en el que se produce el máximo de la señal.

La función genera una onda cuadrada con un período de 2 * PI.square 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 de diente de Sierra de 50 Hz (respectivamente cuadrada) con una frecuencia 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ódicas

Para generar pulsos triangulares, rectangulares y Gaussianos, la caja de herramientas ofrece las funciones tripuls, rectpuls y gauspuls.

La función genera una muestra aperiódica, pulso triangular de altura de unidad centrado alrededor de t = 0 y con un ancho predeterminado de 1.tripuls

La función genera una muestra aperiódica, pulso rectangular de altura de unidad centrado alrededor de t = 0 y con un ancho predeterminado de 1.rectpuls Tenga en cuenta que el intervalo de amplitud no-cero se define para estar abierto a la derecha, es decir, rectpuls (-0,5) = 1 mientras que rectpuls (0.5) = 0.

Para generar 2 segundos de pulso triangular (respectivamente rectangular) con una frecuencia de muestreo de 10 kHz y una anchura 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 genera un pulso sinusoidal de modulación gaussiana con un tiempo, una frecuencia central y un ancho de banda fraccionados especificados.gauspuls

La función calcula la función sinc matemática para un vector de entrada o una matriz.sinc La función sinc es la transformada de Fourier inversa continua del pulso rectangular de anchura 2 * PI y altura 1.

Genere un pulso de RF gaussiano de 50 kHz con un ancho de banda del 60%, muestreado a una velocidad de 1 MHz. Truncar el pulso donde el sobre cae 40 dB por debajo del pico:

tc = gauspuls('cutoff',50e3,0.6,[],-40);  t1 = -tc : 1e-6 : tc;  y1 = gauspuls(t1,50e3,0.6);

Genere la función sinc para un vector espaciados linealmente:

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')

Las formas de onda de frecuencia barrida

La caja de herramientas también proporciona funciones para generar formas de onda de frecuencia barrida, como la función.chirp Dos parámetros opcionales especifican métodos de barrido alternativos y la fase inicial en grados. A continuación se muestran varios ejemplos del uso de la función Chirp para generar chirrido cuadráticos lineales o cuadráticos, convexos y cóncavas.

Genere 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

Genere un chirp 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

Computa y visualiza 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')

Genere un chirp 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');

Genere un chirp 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');

Calcule y visualice 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 (oscilador controlado por voltaje) que genera una señal oscilando a una frecuencia determinada por el vector de entrada.vco Echemos un vistazo a dos ejemplos usando VCO con una entrada de triángulo y rectángulo.

Generar 2 segundos de una señal muestreada a 10kHz cuya frecuencia instantánea es un triángulo (respectivamente un rectángulo) función 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);

Trazar 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')

Los trenes de pulsos

Para generar trenes de pulsos, podemos utilizar la función.pulstran A continuación, mostramos dos ejemplos sobre cómo utilizar esta función.

Construya un tren de pulsos rectangulares de 2 GHz muestreados a una velocidad de 100 GHz con un espaciado de 7,5 nS.

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);

Genere una señal de pulso gaussiano periódica a 10 kHz, con un ancho de banda del 50%. La frecuencia de repetición de pulso es de 1 kHz, la frecuencia de muestreo es de 50 kHz, y la longitud del tren de pulso es de 10msec. La amplitud de repetición debe atenuarse por 0,8 cada vez. El ejemplo utiliza un identificador de función para hacer referencia 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')