Main Content

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.

pulstran

Descripción

ejemplo

y = pulstran(t,d,func) genera un tren de pulsos basado en muestras de una función continua, .func

ejemplo

y = pulstran(t,d,func,fs) utiliza una frecuencia de muestreo de .fs

ejemplo

y = pulstran(t,d,p) genera un tren de pulsos que es la suma de múltiples interpolaciones retardadas del impulso prototipo en vector.p

ejemplo

y = pulstran(___,intfunc) especifica métodos de interpolación alternativos. Consulte para obtener una lista de los métodos disponibles.interp1 Puede utilizar este parámetro con cualquiera de las sintaxis de entrada anteriores.

Ejemplos

contraer todo

Este ejemplo genera un tren de pulsos utilizando el pulso rectangular predeterminado del ancho de la unidad. La frecuencia de repetición es de 0,5 Hz, la longitud de la señal es de 60 s y la frecuencia de muestreo es de 1 kHz. El factor de ganancia es un sinusoides de frecuencia 0,05 Hz.

t = 0:1/1e3:60; d = [0:2:60;sin(2*pi*0.05*(0:2:60))]'; x = @rectpuls; y = pulstran(t,d,x);  plot(t,y) hold off xlabel('Time (s)') ylabel('Waveform')

Este ejemplo genera una forma de onda de diente de sierra asimétrica con una frecuencia de repetición de 3 Hz. El diente de sierra tiene anchura 0,2 s y factor de sesgo –1. La longitud de la señal es de 1 s, y la frecuencia de muestreo es de 1 kHz. Traza el tren de pulsos.

fs = 1e3; t = 0:1/1e3:1; d = 0:1/3:1;    x = tripuls(t,0.2,-1); y = pulstran(t,d,x,fs);  plot(t,y) hold off xlabel('Time (s)') ylabel('Waveform')

Trazar un pulso de RF gaussiano de 10 kHz con un 50% de ancho de banda, muestreado a una velocidad de 10 MHz. Truncar el pulso donde la envolvente cae 40 dB por debajo del pico.

fs = 1e7; tc = gauspuls('cutoff',10e3,0.5,[],-40);  t = -tc:1/fs:tc;  x = gauspuls(t,10e3,0.5);   plot(t,x) xlabel('Time (s)') ylabel('Waveform')

La frecuencia de repetición de impulsos es de 1 kHz, la frecuencia de muestreo es de 50 kHz y la longitud del tren de pulsos es de 25 ms. El factor de ganancia es un sinusoides de frecuencia 0,1 Hz.

ts = 0:1/50e3:0.025; d = [0:1/1e3:0.025;sin(2*pi*0.1*(0:25))]'; y = pulstran(ts,d,x,fs);

Trazar el tren de pulsos gaussiano periódico.

plot(ts,y) xlim([0 0.01]) xlabel('Time (s)') ylabel('Waveform')

Escriba una función que genere pulsos personalizados que consistan en un sinusoides amortiguado por un exponencial. El pulso es una función extraña del tiempo. La función de generación tiene un segundo argumento de entrada que especifica un único valor para la frecuencia sinusoidal y el factor de amortiguación. Visualice un pulso generado, muestreado a 1 kHz durante 1 segundo, con una frecuencia y un valor de amortiguación, ambos iguales a 30.

fnx = @(x,fn) sin(2*pi*fn*x).*exp(-fn*abs(x));  ffs = 1000; tp = 0:1/ffs:1;  pp = fnx(tp,30);  plot(tp,pp) xlabel('Time (s)') ylabel('Waveform')

Utilice la función para generar un tren de pulsos personalizados.pulstran El tren se muestrea a 2 kHz durante 1,2 segundos. Los pulsos ocurren cada tercio de un segundo y tienen amplitudes exponencialmente decrecientes.

Especifique inicialmente el pulso generado como prototipo. Incluya la frecuencia de muestreo del prototipo en la llamada de función. En este caso, replica los pulsos en las ubicaciones especificadas.pulstran

fs = 2e3; t = 0:1/fs:1.2;  d = 0:1/3:1; dd = [d;4.^-d]';  z = pulstran(t,dd,pp,ffs);  plot(t,z) xlabel('Time (s)') ylabel('Waveform')

Genere el tren de pulsos de nuevo, pero ahora utilice la función de generación como argumento de entrada. Incluya el parámetro de frecuencia y amortiguación en la llamada de función. En este caso, genera el pulso para que se centre alrededor de cero.pulstran

y = pulstran(t,dd,fnx,30);  plot(t,y) xlabel('Time (s)') ylabel('Waveform')

Escriba una función que genere una forma de onda de diente de sierra en descomposición exponencial personalizada de la frecuencia 0,25 Hz. La función de generación tiene un segundo argumento de entrada que especifica un único valor para la frecuencia de diente de sierra y el factor de amortiguación. Visualice un pulso generado, muestreado a 0,1 kHz durante 1 segundo, con una frecuencia y un valor de amortiguación igual es a 50.

fnx = @(x,fn) sawtooth(2*pi*fn*0.25*x).*exp(-2*fn*x.^2);  fs = 100; t = 0:1/fs:1;  pp = fnx(t,50);  plot(t,pp)

Utilice la función para generar un tren de pulsos personalizados.pulstran El tren se muestrea a 0,1 kHz durante 125 segundos. Los pulsos ocurren cada 25 segundos y tienen amplitudes exponencialmente decrecientes.

Especifique el pulso generado como prototipo. Genere tres trenes de pulsos utilizando el método de interpolación lineal predeterminado, la interpolación vecina más cercana y la interpolación cúbica por piezas. Compare los trenes de pulsos en una sola parcela.

d = [0:25:125; exp(-0.015*(0:25:125))]'; ffs = 100; tp = 0:1/ffs:125;  r = pulstran(tp,d,pp); y = pulstran(tp,d,pp,'nearest'); q = pulstran(tp,d,pp,'pchip');   plot(tp,r) hold on plot(tp,y) plot(tp,q) xlim([0 125]) legend('Linear interpolation','Nearest neighbor interpolation','Piecewise cubic interpolation') hold off

Argumentos de entrada

contraer todo

Valores de tiempo en los que se evalúa, especificados como vector.func

Desplazamiento eliminado de los valores de la matriz , especificado como un vector real.t Puede aplicar un factor de ganancia opcional a cada evaluación retrasada especificando como una matriz de dos columnas, con el desplazamiento definido en la columna 1 y la ganancia asociada en la columna 2.d Si especifica como vector de fila, los valores se interpretan únicamente como retrasos.d

Función continua utilizada para generar un tren de pulsos basado en sus muestras, especificadas como , , , o un identificador de función.'rectpuls''gauspuls''tripuls'

Si utiliza como identificador de función, puede pasar los parámetros de función de la siguiente manera:func

y = pulstran(t,d,'gauspuls',10e3,0.5);  

Esto crea un tren de pulsos usando un pulso gaussiano de 10 kHz con un 50% de ancho de banda.

Función de prototipo, especificada como vector. El intervalo de es dado por , y sus muestras son idénticamente cero fuera de este intervalo.p[0,(length(p)-1)/fs] De forma predeterminada, la interpolación lineal se utiliza para generar retrasos.

Frecuencia de muestreo en Hz, especificada como un escalar real.

Método de interpolación, especificado como una de las opciones de esta tabla.

Método

Descripción

Continuidad

Comentarios

'linear'

Interpolación lineal. El valor interpolado en un punto de consulta se basa en la interpolación lineal de los valores en los puntos de cuadrícula vecinos de cada dimensión respectiva. Este es el método de interpolación predeterminado.

C0

  • Requiere al menos 2 puntos

  • Requiere más memoria y tiempo de cálculo que el vecino más cercano

'nearest'

Interpolación de vecino más cercano. El valor interpolado en un punto de consulta es el valor en el punto de cuadrícula de ejemplo más cercano.

Discontinuo

  • Requiere al menos 2 puntos

  • Requisitos de memoria modestos

  • Tiempo de cálculo más rápido

'next'

Siguiente interpolación de vecino. El valor interpolado en un punto de consulta es el valor en el siguiente punto de cuadrícula de ejemplo.

Discontinuo

  • Requiere al menos 2 puntos

  • Requisitos de memoria similares y tiempo de cálculo como'nearest'

'previous'

Interpolación de vecino anterior. El valor interpolado en un punto de consulta es el valor en el punto de cuadrícula de ejemplo anterior.

Discontinuo

  • Requiere al menos 2 puntos

  • Requisitos de memoria similares y tiempo de cálculo como'nearest'

O'pchip''cubic'

Interpolación cúbica por pieza que conserva la forma. El valor interpolado en un punto de consulta se basa en una interpolación cúbica por pieza que conserva la forma de los valores en los puntos de cuadrícula vecinos.

C1

  • Requiere al menos 4 puntos

  • Requiere más memoria y tiempo de cálculo que'linear'

'v5cubic'

Convolución cúbica utilizada en 5.MATLAB®

C1

Los puntos deben estar espaciados uniformemente.

'makima'

Interpolación de hermita cúbica Akima modificada. El valor interpolado en un punto de consulta se basa en una función por parte de polinomios con un grado de como máximo tres. La fórmula Akima se modifica para evitar rebasamientos.

C1

  • Requiere al menos 2 puntos

  • Produce menos ondulaciones que , pero no se aplana tan agresivamente como'spline''pchip'

  • El cálculo es más caro que , pero normalmente menos que'pchip''spline'

  • Los requisitos de memoria son similares a los de'spline'

'spline'

Interpolación de spline utilizando condiciones de extremo no nudo. El valor interpolado en un punto de consulta se basa en una interpolación cúbica de los valores en los puntos de cuadrícula vecinos de cada dimensión respectiva.

C2

  • Requiere al menos 4 puntos

  • Requiere más memoria y tiempo de cálculo que'pchip'

Argumentos de salida

contraer todo

Tren de pulsos generado por la función, devuelto como vector.

Capacidades ampliadas

Consulte también

| | | | | | | | |

Introducido antes de R2006a