Sin categoría

La función coseno en tiempo discreto – Matlab

Las señales sinusoidales son muy importantes porque la Transformada de Fourier afirma que la mayoría de las señales de uso práctico se pueden descomponer en una suma infinita de señales sinusoidales. Una señal sinusoidal en el tiempo discreto se representa mediante:

Donde A es la amplitud y θo es la fase en radianes. Por su parte, ωo=2πf es la frecuencia angular y x[n] puede ser escrita como:

Es muy importante entender que la frecuencia de una sinusoide de tiempo discreto no está definida de forma única. Esta ambigüedad fundamental se debe a la siguiente propiedad trigonométrica:

En palabras, el valor de una sinusoide no cambia si un número entero múltiplo de se suma a su argumento. Sumando 2πkn al argumento de la ecuación (1) obtenemos:

Se distinguen dos casos. Si k≥-f, la ecuación (2) es equivalente a una sinusoide con frecuencia f+k sin cambio de fase:

Por otra parte, si k<-f, la ecuación (3) conduce a una frecuencia negativa. Para evita esto, definimos:

Además hacemos uso de la siguiente propiedad:

En consecuencia, volviendo a las ecuaciones (2) y (3), obtenemos una sinusoide de frecuencia l-f con una inversión de fase:

En conclusión: “a discrete-time sinusoid with frequency f is identical to a same-phase sinusoid of frequency f+k, where k is any integer greater than –f, or to a phase-reversed sinusoid of frequency l-f if l>f“.

La ecuación (3) se puede expresar de forma más concisa utilizando la notación exponencial compleja:

Because value of a complex exponential does not change if a multiple of is added to its argument, we get:

Equation (5) is equivalent to equation (4). Because of this fundamental frequency ambiguity, we will often implicitly assume that the angular frequency of a discrete-time sinusoid is restricted to the range –π≤ω≤π, or equivalent, that -1/2≤f≤1/2.

The Matlab function cos or sin generates the sinusoidal sequences. For example, for x[n]=3cos(0.1πn+π/3)+2sin(0.5πn), 0n10, we will use the following script:

n=[0:10]; x=3*cos(0.1*pi*n+pi/3)+2*sin(0.5*pi*n);
stem(n,x)

This script yields:

Source:

  • Digital Signal Processing Using Matlab, 3erd ed

PREVIOUS:

Literature review by:

Prof. Larry Francis Obando – Technical Specialist – Educational Content Writer

Exercises are solved!!

WhatsApp:  +34633129287  Inmediate Attention!!

Twitter: @dademuch

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     

Twitter: @dademuch

FACEBOOK: DademuchConnection

email: dademuchconnection@gmail.com

Sin categoría

The sinusoidal function in discrete time – Matlab

Sine waves are important because Fourier´s Theorem states that most signals of practical interest can be decomposed into an infinite sum of sine waves. Discrete-time signals (also called time series) are defined over the set of integers, that is, they are indexed sequences. A discrete-time sine wave is defined by:

Where A is an amplitude and  θo is the phase in radians. Meanwhile, ωo=2πf is the angular frequency and x[n] could be written as:

It is important to understand that the frequency of a discrete-time sinusoid is not uniquely defined. This fundamental ambiguity is a consequence of a basic trigonometric property:

In words, the value of a sinusoid does not change if an integer multiple of is added to its argument. Adding the 2πkn to the argument of equation (1) we get:

Two cases must be distinguished. If k≥-f, the equation (2) is equivalent to a sinusoid with frequency f+k with no change in phase:

On the other hand, if k<-f, equation (3) leads to a negative frequency. To avoid this, we introduce:

We also make use of the property:

In consequence, returning to equations (2) and (3), we obtain a sinusoid of frequency l-f with a reversal in phase:

In conclusion, a discrete-time sinusoid with frequency f is identical to a same-phase sinusoid of frequency f+k, where k is any integer greater than –f, or to a phase-reversed sinusoid of frequency l-f if l>f.

Equation (3) can be expressed more concisely using complex exponential notation:

Because value of a complex exponential does not change if a multiple of is added to its argument, we get:

Equation (5) is equivalent to equation (4). Because of this fundamental frequency ambiguity, we will often implicitly assume that the angular frequency of a discrete-time sinusoid is restricted to the range –π≤ω≤π, or equivalent, that -1/2≤f≤1/2.

The Matlab function cos or sin generates the sinusoidal sequences. For example, for x[n]=3cos(0.1πn+π/3)+2sin(0.5πn), 0n10, we will use the following script:

n=[0:10]; x=3*cos(0.1*pi*n+pi/3)+2*sin(0.5*pi*n);
stem(n,x)

This script yields:

Source:

  • Digital Signal Processing Using Matlab, 3erd ed

PREVIOUS:

Literature review by:

Prof. Larry Francis Obando – Technical Specialist – Educational Content Writer

Exercises are solved!!

WhatsApp:  +34633129287  Inmediate Attention!!

Twitter: @dademuch

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     

Twitter: @dademuch

FACEBOOK: DademuchConnection

email: dademuchconnection@gmail.com

Sin categoría

La Serie Geométrica – Procesamiento de Señales Digitales en Matlab

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], 0n10, we will use the following script:

n=[0:10]; x=exp(3j*n);
stem(n,k)

This script yields:

Fuente:

  • Digital Signal Processing Using Matlab, 3erd ed

ANTERIOR:

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!!

Twitter: @dademuch

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     

Twitter: @dademuch

FACEBOOK: DademuchConnection

email: dademuchconnection@gmail.com

Sin categoría

Generar y graficar la función impulso unitario con Matlab

Se trata de una de las señales discretas más simples, la señal impulso unitario discreto, la cual se define como:

De hecho, la señal impulso unitario discreto es la base de la representación de las señales discretas, cualquier señal discreta se puede obtener como combinación lineal de deltas desplazadas. El ejemplo más relevante es el escalón unidad o escalón unitario.

Generar la función Impulso Unidad en Matlab

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:

n=[0:9];
T=impseq(5,0,9);
stem(n,T)

Obtenemos:

T =     0     0     0     0     0     1     0     0     0     0

La imagen tiene un atributo ALT vacío; su nombre de archivo es null-8.png

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.

Graficar la Función Impulso Unidad en Matlab

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:

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!!

Twitter: @dademuch

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     

Twitter: @dademuch

FACEBOOK: DademuchConnection

Sin categoría

Secuencias elementales en Matlab- procesamiento de señales digitales

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

La imagen tiene un atributo ALT vacío; su nombre de archivo es null-8.png

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

La imagen tiene un atributo ALT vacío; su nombre de archivo es null-7.png

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], 0n10, 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), 0n10, 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:

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!!

Twitter: @dademuch

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     

Twitter: @dademuch

FACEBOOK: DademuchConnection

email: dademuchconnection@gmail.com

Sin categoría

Elementary sequences in digital signal processing with Matlab

In MATLAB we can represent a finite-duration sequence by a row vector of appropriate values. However, such a vector does not have any information about sample position n. therefore, a correct representation of a discrete function x[n] would require two vectors, one each for x and n. For example, a sequence x[n] ={2,1,-1,0,1,4,3,7} can be represented in Matlab by:

>> n=[-3,-2,-1,0,1,2,3,4]; x=[2,1,-1,0,1,4,3,7]

Generally, we will use the x-vector representation alone when the sample position information is not required or when such information is trivial (e.g. when the sequence begins at n=0)

Types of sequences

We use several elementary sequences in Digital Signal Processing for analysis purposes.

Unit Sample sequence

The function zeros(1,N) generates a row vector of N zeros, which can be used to implement δ[n] over a finite interval. However, the logical relation n==0 is an elegant way of implementing δ[n]. For example, to implement:

Over the n1< no < n2  interval, will use the following Matlab function:

function[x,n]=impseq(n0,n1,n2)

%generates x[n]=delta(n-no); n1<=n<=n2

n=[n1:n2]; x=[(n-n0)==0];

Now, we can use the impseq function as follows, to implement an arbitrary function T=δ[n-5] over the 0< no < 9  interval:

>> T=impseq(5,0,9)

Result:

T =     0     0     0     0     0     1     0     0     0     0

Note: to see how to implement a Matlab function see: matlab getstart, page 176, (4-22)

The power of this approach can be see in the follow example.

Example 1. Generate and plot the following sequence over the indicated interval:

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]’)

This commands yield:

Unit Step sequence

The function ones(1,N) generates a row vector of N ones. It can be used to generate u[n] over a finite interval. Once again, an elegant approach is to use the logical relation n>=0. To implement:

Over the n1< no < n2  interval, will use the following Matlab function:

function[x,n]=stepseq(n0,n1,n2)

% Generates x(n)=u(n-n0); n1<=n<=n2

n=[n1:n2]; x=[(n-n0)>=0];

Now, we can use the stepseq function as follows, to implement an arbitrary function P=u[n-5] over the 0< no < 18 interval:

>> P=stepseq(5,0,18)

Result:

P =     0     0     0     0     0     1     1     1     1     1     1     1     1     1     1     1     1     1     1

Example 2. Generate and plot each of the following sequence over the indicated interval:

n=[0:20]; x1=10*exp(-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’)

This commands yield:

Real-valued exponential sequence

In Matlab an array operator “” is required to implement a real exponential sequence of the form:

Over the n1< no < n2 interval. For example, to implement:

We will use the following Matlab function:

n=[0:10];;
x=(0.9).^n;
stem(n,x);
xlabel(‘n’); ylabel(‘x[n]’)

This script yields:

Geometric series

A one-side exponential sequence of the form:

Where α is an arbitrary constant. This sequences is called a geometric series.  In DSP, the convergence and expression for the sum of this series are used in many applications. The series converges for:

While this condition is true, the sum of the geometric series components converges to:

From here, we also need an expression for the sum of any finite number of terms of the series, and that is given by:

These two important results will be used deeply throughout DSP.

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], 0n10, we will use the following script:

n=[0:10]; x=exp(3j*n);
stem(n,k)

This script yields:

Sinusoidal sequence 

Sine waves are important because Fourier´s Theorem states that most signals of practical interest can be decomposed into an infinite sum of sine waves. Discrete-time signals (also called time series) are defined over the set of integers, that is, they are indexed sequences. A discrete-time sine wave is defined by:

Where A is an amplitude and  θo is the phase in radians. Where A is an amplitude and teta is the phase in radians. Meanwhile, ωo=2πf is the angular frequency and x[n] could be written as:

It is important to understand that the frequency of a discrete-time sinusoid is not uniquely defined. This fundamental ambiguity is a consequence of a basic trigonometric property:

In words, the value of a sinusoid does not change if an integer multiple of is added to its argument. Adding the 2πkn to the argument of equation (1) we get:

Two cases must be distinguished. If k≥-f, the equation (2) is equivalent to a sinusoid with frequency f+k with no change in phase:

On the other hand, if k<-f, equation (3) leads to a negative frequency. To avoid this, we introduce:

We also make use of the property:

In consequence, returning to equations (2) and three, we obtain a sinusoid of frequency l-f with a reversal in phase:

In conclusion, a discrete-time sinusoid with frequency f is identical to a same-phase sinusoid of frequency f+k, where k is any integer greater than –f, or to a phase-reversed sinusoid of frequency l-f if l>f.

Equation (3) can be expressed more concisely using complex exponential notation:

Because value of a complex exponential does not change if a multiple of is added to its argument, we get:

Equation (5) is equivalent to equation (4). Because of this fundamental frequency ambiguity, we will often implicitly assume that the angular frequency of a discrete-time sinusoid is restricted to the range –π≤ω≤π, or equivalent, that -1/2≤f≤1/2.

The Matlab function cos or sin generates the sinusoidal sequences. For example, for x[n]=3cos(0.1πn+π/3)+2sin(0.5πn), 0n10, we will use the following script:

n=[0:10]; x=3*cos(0.1*pi*n+pi/3)+2*sin(0.5*pi*n);
stem(n,x)

This script yields:

In construction ….

Source:

  • Digital Signal Processing Using Matlab, 3erd ed
  • Fundamentos_de_Señales_y_Sistemas_usando la Web y Matlab
  • Oppenheim – Señales y Sistemas
  • Análisis de Sistemas Lineales Asistido con Scilab – Un Enfoque desde la Ingeniería Eléctrica.

PREVIOUS:

Literature review by:

Prof. Larry Francis Obando – Technical Specialist – Educational Content Writer

Exercises are solved!!

WhatsApp:  +34633129287  Inmediate Attention!!

Twitter: @dademuch

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     

Twitter: @dademuch

FACEBOOK: DademuchConnection

email: dademuchconnection@gmail.com

Sin categoría

¿Cómo procesar una suma de funciones sinusoidales con Matlab?

Supongamos que queremos los valores generados por la señal x(t) siguiente a lo largo de un período de tiempo desde 0 hasta 1 segundos, con incrementos de 0.1 segundos, es decir, t=0:0.1:1:

>> t=0:0.1:1

t =   0    0.1000    0.2000    0.3000    0.4000    0.5000    0.6000    0.7000    0.8000    0.9000    1.0000

Vemos que la operación consiste en evaluar x(t) 11 veces (para 11 valores distintos de t):

¿Qué pasaría si tuviéramos que evaluar en un rango más amplio, tal como t entre 0 y 1, pero con incrementos de 0.01, es decir, t=0:0.01:1? Tendríamos que repetir el cálculo anterior 101 veces!!.

He aquí donde se observa claramente la ventaja del procesamiento de señales digitales, ya que la computadora nos permite hacer este trabajo iterativo mediante flujos de control aportados por aplicaciones que están al alcance de presupuestos ajustados. Veamos cómo se hace con Matlab.

Podemos expresar la función x(t) de nuestro ejemplo de la manera siguiente:

Primer método: En este enfoque, calcularemos cada componente sinusoidal en un paso como un vector, utilizando el tiempo t=0:0.1:1 como otro vector y luego sumando cada componente sinusoidal mediante un bucle for..end.

>> t=0:0.1:1;

>> xt=zeros(1,length(t));

>> for k=1:3

xt=xt+(1/k)*sin(2*pi*k*t);

>> end

Este algoritmo nos permite obtener de una manera muy eficiente, los valores de x(t) para el período de tiempo de interés:

xt = 0    1.3803    1.0490    0.4612    0.4293    0.0000   -0.4293   -0.4612   -1.0490   -1.3803   -0.0000

Segundo método: Veremos ahora como, por medio de la multiplicación matriz-vector, Matlab puede ser incluso más eficiente. Para fines de demostración, considere solo cuatro valores para t:

Que se puede escribir en forma de matriz como:

Después de realizar la transposición:

En consecuencia, el código en Matlab es:

>> t=0:0.1:1; k=1:3;

>> xt=(1./k)*sin(2*pi*k’*t)

Respuesta:

xt =    0    1.3803    1.0490    0.4612    0.4293    0.0000   -0.4293   -0.4612   -1.0490   -1.3803   -0.0000

Este es el código más compacto y la ejecución más eficiente en Matlab, especialmente cuando el número de términos sinusoidales es muy grande.

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!!

Twitter: @dademuch

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 Caracas.

Escuela de Turismo de la Universidad Simón Bolívar, Núcleo Litoral.

Contacto: España. +34633129287

Caracas, Quito, Guayaquil, Jaén. 

WhatsApp:  +34633129287   

Twitter: @dademuch

FACEBOOK: DademuchConnection

Sin categoría

Qué es PDS – Procesamiento de señales digitales

Principalmente debido a sus ventajas, el procesamiento de señales digitales (DSP – Digital Signal Processing) se está convirtiendo en la primera opción en muchas tecnologías y aplicaciones, como la electrónica de consumo, las comunicaciones, los teléfonos inalámbricos y las imágenes médicas.

Ventajas 

Además, el enfoque DSP hace posible convertir una computadora personal económica en un potente procesador de señales. El sistema que utiliza el enfoque DSP se puede desarrollar utilizando software que se ejecuta en una computadora de uso general. En consecuencia, DSP es relativamente conveniente de desarrollar y probar, y el software es portátil.

Desventajas
Clasificación y aplicaciones 

La mayoría de las operaciones de PDS se pueden clasificar como tareas de análisis de señales o tareas de filtrado de señales:

Análisis de señales: estas tareas se ocupan de la medición de las propiedades de las señales. Generalmente es una operación en el dominio de la frecuencia. Algunas de sus aplicaciones son:

  • Spectrum (frequency or/and phase analysis)
  • Speech recognition
  • Speaker verification
  • Target detection

Filtrado de señales: esta tarea se caracteriza por la situación de señal de entrada y salida. Los sistemas que realizan esta tarea generalmente se denominan filtros. Suele ser (pero no siempre) una operación en el dominio del tiempo. Algunas de las aplicaciones son:

  • Removal of unwanted background noise
  • Removal of interference
  • Separation of frequency bands
  • Shaping of the signal spectrum

En algunas aplicaciones, como la síntesis de voz, primero se analiza una señal para estudiar sus características, que son las que se utilizan en el filtrado digital para generar una voz sintética.

SIGUIENTE:

Fuente:

  • Digital Signal Processing Using Matlab, 3erd ed

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!!

Twitter: @dademuch

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     

Twitter: @dademuch

FACEBOOK: DademuchConnection

email: dademuchconnection@gmail.com

Sin categoría

Código de Matlab para DSP – Procesamiento de señales digitales

Matlab proporciona una variedad de comandos que nos permiten controlar el flujo de comandos en un programa.

Algoritmos de control

El constructo más común es la estructura if-elseif-else. Otro constructo de flujo de control común es el bucle for..end. Es simplemente un ciclo de iteración que le dice a la computadora que repita alguna tarea un número determinado de veces. El siguiente ejemplo ilustra el concepto:

Ejemplo 1

Considere la siguiente suma de funciones sinusoidales. Utilice Matlab para generar muestras de x (t) en las instancias de tiempo 0:0.1:1.

Primer método: En este enfoque, calcularemos cada componente sinusoidal en un paso como un vector, usando el vector de tiempo t=0:0.1:1 y luego sumaremos todos los componentes usando un bucle for..end.

>> t=0:0.1:1;

>> xt=zeros(1,length(t));

>> for k=1:3

xt=xt+(1/k)*sin(2*pi*k*t);

>> end

Obtenemos el siguiente resultado:

xt =     0    1.3803    1.0490    0.4612    0.4293    0.0000   -0.4293   -0.4612   -1.0490   -1.3803   -0.0000

Segundo método: en este enfoque, usaremos la multiplicación matriz-vector. Veremos qué tan eficiente podría ser Matlab de esta manera. Para fines de demostración, considere solo cuatro valores para t:

Que se puede escribir en forma de matriz como:

Después de realizar la transposición:

En consecuencia, el código Matlab es:

>> t=0:0.1:1; k=1:3;

>> xt=(1./k)*sin(2*pi*k’*t)

Resultado:

xt =  0    1.3803    1.0490    0.4612    0.4293    0.0000   -0.4293   -0.4612   -1.0490   -1.3803   -0.0000

Este es el código más compacto y la ejecución más eficiente en Matlab, especialmente cuando el número de términos sinusoidales es muy grande.

En construcción…

ANTERIOR

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!!

Twitter: @dademuch

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 Caracas.

Escuela de Turismo de la Universidad Simón Bolívar, Núcleo Litoral.

Contacto: España. +34633129287

Caracas, Quito, Guayaquil, Jaén. 

WhatsApp:  +34633129287   

Twitter: @dademuch

FACEBOOK: DademuchConnection

email: dademuchconnection@gmail.com

Sin categoría

Matlab Code for DSP – Introduction

Matlab provides a variety of commands that allow us to control the flow of commands in a program.

Control Flow

The most common construct is the if-elseif-else structure. Another common control flow construct is the for..end loop. It is simply an iteration loop that tells the computer to repeat some task a given number of times. The following example illustrates the concept:

Example 1.

Consider the following sum of sinusoidal functions. Use Matlab to generate samples of x(t) at the time instances 0:0.1:1.

First method: In this approach, we will compute each sinusoidal component in one step as a vector, using the time vector t=0:0.1:1 and then add all components using one for..end loop.

>> t=0:0.1:1;

>> xt=zeros(1,length(t));

>> for k=1:3

xt=xt+(1/k)*sin(2*pi*k*t);

>> end

We obtain the following:

xt =   0    1.3803    1.0490    0.4612    0.4293    0.0000   -0.4293   -0.4612   -1.0490   -1.3803   -0.0000

Second method: In this approach, we will use matrix-vector multiplication. We will see how efficient could be Matlab by this way. For the purpose of demostration, consider only four values for t:

Which can be written in matrix form as:

After taking transposition:

Thus, the Matlab code is:

>> t=0:0.1:1; k=1:3;

>> xt=(1./k)*sin(2*pi*k’*t)

We obtain:

xt =   0    1.3803    1.0490    0.4612    0.4293    0.0000   -0.4293   -0.4612   -1.0490   -1.3803   -0.0000

This is the most compact code and the most efficient execution in Matlab, especially when the number of sinusoidal terms is very large.

Scripts and Functions

In construction…

Plotting

In construction….

Source:

  • Digital Signal Processing Using Matlab, 3erd ed

PREVIOUS:

NEXT:

Literature review by:

Prof. Larry Francis Obando – Technical Specialist – Educational Content Writer

Exercises are solved!!

WhatsApp:  +34633129287  Inmediate Attention!!

Twitter: @dademuch

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 Caracas.

Escuela de Turismo de la Universidad Simón Bolívar, Núcleo Litoral.

Contacto: España. +34633129287

Caracas, Quito, Guayaquil, Jaén. 

WhatsApp:  +34633129287   

Twitter: @dademuch

FACEBOOK: DademuchConnection

email: dademuchconnection@gmail.com