pulstran
Tren de pulsos
Descripción
Ejemplos
Este ejemplo genera un tren de pulsos mediante el pulso rectangular predeterminado de ancho unitario. La frecuencia de repetición es 0.5 kHz, la longitud de señal es 60 s y la tasa de muestreo es 1 kHz. El factor de ganancia es una sinusoide 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 sierra asimétrica con una frecuencia de repetición de 3 Hz. La sierra tiene un ancho de 0.2 s y un factor de desviación de –1. La longitud de señal es 1 s y la tasa de muestreo es 1 kHz. Represente 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')
Represente un pulso de RF gaussiano de 10 kHz con un ancho de banda del 50%, muestreado a una tasa de 10 MHz. Trunque el pulso en el que la envolvente está 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 pulsos es 1 kHz, la tasa de muestreo es 50 kHz y la longitud del tren de pulsos es 25 ms. El factor de ganancia es una sinusoide 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);
Represente 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 consistentes en una sinusoide con amortiguamiento por una exponencial. El pulso es una función impar de tiempo. La función de generación cuenta con un segundo argumento de entrada que especifica un solo valor para la frecuencia de sinusoide y el factor de amortiguamiento. Visualice un pulso generado, muestreado a 1 kHz durante 1 segundo, con valores de frecuencia y amortiguamiento 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 pulstran
para generar un tren de pulsos personalizados. El tren se muestrea a 2 kHz durante 1.2 segundos. Los pulsos tienen lugar cada tercio de segundo y tienen amplitudes que decrecen exponencialmente.
Especifique inicialmente el pulso generado como un prototipo. Incluya la tasa de muestreo del prototipo en la llamada a la función. En este caso, pulstran
replica los pulsos en las ubicaciones especificadas.
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 los parámetros de frecuencia y amortiguamiento en la llamada a la función. En este caso, pulstran
genera el pulso para que se centre alrededor de cero.
y = pulstran(t,dd,fnx,30); plot(t,y) xlabel('Time (s)') ylabel('Waveform')
Escriba una función que genera una forma de onda de sierra personalizada y exponencialmente decreciente con una frecuencia de 0.25 Hz. La función de generación cuenta con un segundo argumento de entrada que especifica un solo valor para la frecuencia de sierra y el factor de amortiguamiento. Visualice un pulso generado, muestreado a 0.1 kHz durante 1 segundo, con valores de frecuencia y amortiguamiento igual 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 pulstran
para generar un tren de pulsos personalizados. El tren se muestrea a 0.1 kHz durante 125 segundos. Los pulsos tienen lugar cada 25 segundos y tienen amplitudes que decrecen exponencialmente.
Especifique el pulso generado como un prototipo. Genere tres trenes de pulsos mediante el método de interpolación lineal predeterminado, la interpolación del vecino más cercano y la interpolación cúbica a trozos. Compare los trenes de pulsos en una única gráfica.
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" "Nearest neighbor" "Piecewise cubic"]+" interpolation") hold off
Argumentos de entrada
Valores de tiempo en los que se evalúa func
, especificados como vector.
Desplazamiento eliminado de los valores del arreglo t
, especificado como vector real. Puede aplicar un factor de ganancia opcional a cada evaluación con retardo especificando d
como una matriz de dos columnas, con el desplazamiento definido en la columna 1 y la ganancia asociada en la columna 2. Si especifica d
como vector fila, los valores se interpretan solo como retardos.
Función continua utilizada para generar un tren de pulsos basado en sus muestras, especificada como 'rectpuls'
, 'gauspuls'
, 'tripuls'
o un identificador de función.
Si utiliza func
como un identificador de función, puede pasar los parámetros de la función de la siguiente forma:
y = pulstran(t,d,'gauspuls',10e3,0.5);
Esto crea un tren de pulsos utilizando un pulso gaussiano de 10 kHz con un ancho de banda del 50%.
Función prototipo, especificada como vector. El intervalo de p
viene dado por [0,(length(p)-1)/fs]
y sus muestras son idénticas a cero fuera de este intervalo. De forma predeterminada, la interpolación lineal se utiliza para generar retardos.
Tasa de muestreo en Hz, especificada como escalar real.
Método de interpolación, especificado como una de las opciones de esta tabla.
Método | Descripción | Continuidad | Comentarios |
---|---|---|---|
| Interpolación lineal. El valor interpolado en un punto de consulta se basa en una interpolación lineal de los valores en puntos vecinos de la malla en cada una de las dimensiones respectivas. Este es el método de interpolación predeterminado. | C0 |
|
| Interpolación del vecino más cercano. El valor interpolado en un punto de consulta es el valor en el punto de malla de muestra más cercano. | Discontinuo |
|
| Interpolación del siguiente vecino. El valor interpolado en un punto de consulta es el valor en el siguiente punto de malla de muestra. | Discontinuo |
|
| Interpolación del vecino previo. El valor interpolado en un punto de consulta es el valor en el punto de malla de muestra previo. | Discontinuo |
|
| Interpolación cúbica a trozos que conserva la forma. El valor interpolado en un punto de consulta se basa en una interpolación cúbica a trozos que conserva la forma de los valores en puntos vecinos de la malla. | C1 |
|
| Convolución cúbica usada en MATLAB® 5. | C1 | Los puntos deben estar espaciados uniformemente. |
| Interpolación de Hermite cúbica de Akima modificada. El valor interpolado en un punto de consulta se basa en una función a trozos de polinomios con un grado máximo de tres. La fórmula de Akima se modifica para evitar rebasamientos. | C1 |
|
| Interpolación por splines que utiliza condiciones finales not-a-knot. El valor interpolado en un punto de consulta se basa en una interpolación cúbica de los valores en puntos vecinos de la malla en cada una de las dimensiones respectivas. | C2 |
|
Argumentos de salida
Tren de pulsos generado por la función, devuelto como un vector.
Capacidades ampliadas
Historial de versiones
Introducido antes de R2006a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)