En MATLAB podemos representar una secuencia de duración finita mediante un vector de fila de valores apropiados. Sin embargo, dicho vector no tiene información sobre la posición n de la muestra. por lo tanto, una representación correcta de requeriría dos vectores, uno para x y otro para n. Por ejemplo
>> n=[-3,-2,-1,0,1,2,3,4]; x=[2,1,-1,0,1,4,3,7]
Generalmente, usaremos la representación del vector x solo cuando la información de la posición de la muestra no sea necesaria o cuando dicha información sea trivial (por ejemplo, cuando la secuencia comience en n = 0)
Tipos de secuencias
Usamos varias secuencias elementales en Procesamiento de señales digitales para propósitos de análisis. Lo ideal al utilizar Matlab para el procesamiento de señales digitales es diseñar funciones en archivos .m para aumentar la eficiencia y la claridad de los programas (scripts) que utilizaremos en la consola (Command Window) para procesar señales complejas que son combinaciones de las señales elementales. Proponemos este método a continuación. Para algunas funciones elementales sin embargo, como por ejemplo la secuencia sinusoidal coseno, ya Matlab tiene lo necesario en su menú.
Unit Sample sequence - Impulso Unitario
La función zeros(1,N) genera un vector de fila de N ceros, que se puede utilizar para implementar δ[n] en un intervalo finito. Sin embargo, la relación lógica n==0 es una forma elegante de implementar δ[n]. Por ejemplo, para implementar:

En el intervalo n1< no < n2 , usaremos la siguiente función en Matlab:
function[x,n]=impseq(n0,n1,n2)
%generates x[n]=delta(n-no); n1<=n<=n2
n=[n1:n2]; x=[(n-n0)==0];
Ahora podemos usar la función impseq como sigue, para implementar una función arbitraria T=δ[n-5] en el intervalo 0< no < 9:
>> T=impseq(5,0,9)
Obtenemos:
T = 0 0 0 0 0 1 0 0 0 0

Note: para ver como se implementa una función en Matlab ver: matlab getstart, page 176, (4-22)
El poder y la eficiencia de esta aproximación se puede apreciar en el siguiente ejemplo.
Ejemplo 1. Generar y graficar la siguiente secuencia sobre el intervalo indicado:

n=[-5:5];
x=2*impseq(-2,-5,5)-impseq(4,-5,5);
stem(n,x); title(‘Secuencia de Problema 1’)
xlabel(‘n’); ylabel(‘x[n]’)
Estos comandos generan el siguiente gráfico:

…
Unit Step sequence - Escalón Unitario
La función ones(1,N) genera un vector fila de N unos. Se puede utilizar para generar u[n] en un intervalo finito. Una vez más, un enfoque elegante es utilizar la relación lógica n>=0. Para implementar:

En el intervalo n1< no < n2 , utilizaremos la siguiente función Matlab:
function[x,n]=stepseq(n0,n1,n2)
% Generates x(n)=u(n-n0); n1<=n<=n2
n=[n1:n2]; x=[(n-n0)>=0];
Ahora podemos utilizar la función stepseq como sigue,para implementar una función arbitraria P=u[n-5] en el intervalo 0< no < 18:
>> P=stepseq(5,0,18)
Obtenemos:
P = 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Ejemplo 2. Generar y graficar la siguiente secuencia sobre el intervalo indicado:

n=[0:20]; x1=10exp(-0.3(n-10)).(stepseq(10,0,20)-stepseq(20,0,20)); x2=n.(stepseq(0,0,20)-stepseq(10,0,20));
x=x1+x2;
stem(n,x); title(‘Secuencia de Problema 2’)
Estos comandos generan el siguiente gráfico:

Secuencia exponencial con valores reales
En Matlab es requerido el operador “.ˆ” para implementar a real exponential sequence de la forma:

En el intervalo n1< no < n2. Por ejemplo, para implementar:

Usaremos la siguiente función de Matlab:
n=[0:10];;
x=(0.9).^n;
stem(n,x);
xlabel(‘n’); ylabel(‘x[n]’)
Este script genera:

Serie Geométrica
Una secuencia exponencial de un solo lado, de la forma:

Donde α es una constante arbitraria. Esta secuencia es llamada a geometric series. En PDS, la convergencia y la expresión para la suma de los componentes de esta serie are es utilizado en muchas aplicaciones. La serie converge para:

Mientras se cumpla esta condición, la suma de los componentes de la serie geométrica converge a:

A partir de aquí, necesitamos además una expresión para la suma de cualquier número finito de términos de la serie, y está dado por:

Estos dos importantes resultados se utilizarán ampliamente en PDS.
Complex-valued exponential sequence

Where σ produces an attenuation (if<0) or amplification (if>0) and ωo is the frequency in radians. The Matlab function exp generates the exponential sequences. For example, for x[n] =exp[(2+j3)n], 0≤n≤10, we will use the following script:
n=[0:10]; x=exp(3j*n);
stem(n,k)
This script yields:

Secuencia sinusoidal

Donde A es la amplitud y θo es la fase en radianes. Más sobre la frecuencia angular en La sinusoide en tiempo discreto
Las funciones Matlab cos o sin generan una secuencia sinusoidal. Por ejmplo, para x[n] =3cos(0.1πn+π/3)+2sin(0.5πn), 0≤n≤10, utilizaremos el siguiente script:
n=[0:10]; x=3*cos(0.1*pi*n+pi/3)+2*sin(0.5*pi*n);
stem(n,x)
Este script genera:

En construcción….
Fuente:
- Digital Signal Processing Using Matlab, 3erd ed
ANTERIOR:
- Cómo procesar una suma de funciones sinusoidales con Matlab
- Código de Matlab para DSP
- ¿Qué es PDS?
- El Impulso Unitario, Graficar el impulso Unitario con Matlab
- Sumatoria de Convolución
- Señales de tiempo discreto – muestreo en matlab
- La serie geométrica
- La sinusoide en tiempo discreto
Revisión literaria hecha por:
Prof. Larry Francis Obando – Technical Specialist – Educational Content Writer
Se hacen trabajos, se resuelven ejercicios!!
WhatsApp: +34633129287 Atención Inmediata!!
Copywriting, Content Marketing, Tesis, Monografías, Paper Académicos, White Papers (Español – Inglés)
Escuela de Ingeniería Electrónica de la Universidad Simón Bolívar, USB Valle de Sartenejas.
Escuela de Ingeniería Eléctrica de la Universidad Central de Venezuela, UCV CCs
Escuela de Turismo de la Universidad Simón Bolívar, Núcleo Litoral.
Contacto: España. +34633129287
Caracas, Quito, Guayaquil, Jaén.
WhatsApp: +34633129287
FACEBOOK: DademuchConnection
email: dademuchconnection@gmail.com
10 comentarios en “Secuencias elementales en Matlab- procesamiento de señales digitales”