pulstran
Tren de pulsos
Descripción
Ejemplos
Pulso rectangular periódico
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')
Forma de onda de sierra asimétrica
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')
Pulso gaussiano periódico
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')
Trenes de pulsos personalizados
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')
Cambiar el método de interpolación con un pulso personalizado
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 interpolation','Nearest neighbor interpolation','Piecewise cubic interpolation') hold off
Argumentos de entrada
t
— Valores de tiempo
vector
Valores de tiempo en los que se evalúa func
, especificados como vector.
d
— Desplazamiento
vector fila | Matriz de dos columnas
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.
func
— Función continua
'rectpuls'
| 'gauspuls'
| 'tripuls'
| identificador de función
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%.
p
— Pulso prototipo
vector
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.
fs
— Tasa de muestreo
1
(predeterminado) | escalar real
Tasa de muestreo en Hz, especificada como escalar real.
intfunc
— Método de interpolación
'linear'
(predeterminado) | 'nearest'
| 'next'
| 'previous'
| 'pchip'
| 'cubic'
| 'v5cubic'
| 'makima'
| 'spline'
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
y
— Tren de pulsos
vector
Tren de pulsos generado por la función, devuelto como un vector.
Capacidades ampliadas
Historial de versiones
Introducido antes de R2006a
Abrir ejemplo
Tiene una versión modificada de este ejemplo. ¿Desea abrir este ejemplo con sus modificaciones?
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)