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];
stem(n,x)
xlabel(‘n’); ylabel(‘x[n]’)
title(‘x[n] sequence’)

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)

% write in the editor…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:

n=0:9;
T=impseq(5,0,9);
stem(n,T)
xlabel(‘n’); ylabel(‘T[n]’)
title(‘T[n] sequence’)

% write in the command windows

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

Sin categoría

What is DSP – Digital Signal Processing

Primarily because of its advantages, Digital Signal Processing (DSP) is now becoming a first choice in many technologies and applications, such as consumer electronics, communications, wireless telephones, and medical imaging.

In addition, DSP approach makes it possible to convert an inexpensive personal computer into a powerful signal processor. System using the DSP approach can be developed using software running on a general-purpose computer. In consequence, DSP is relatively convenient to develop and test, and the software is portable.

Most DSP operations can be categorized as being either signal analysis tasks or signal filtering tasks:

Signal analysis: This tasks deal with the measurement of signal properties. It is generally a frequency-domain operation. Some of its applications are:

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

Signal filtering: This task is characterized by the signal-in signal-out situation. The systems that perform this task are generally called filters. It is usually (but not always) a time-domain operation. Some of the applications are:

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

In some applications, such as voice synthesis, a signal is first analyzed to study its characteristics, which are the used in digital filtering to generate a synthetic voice.

Following:

Source:

  • Digital Signal Processing Using Matlab, 3erd ed

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

Análisis de circuitos eléctricos, Ingeniería Eléctrica

Problemas de red eléctrica en régimen transitorio

El conmutador del circuito ha estado en posición A durante mucho tiempo y el circuito ha alcanzado el régimen estacionario. En t=0 s el conmutador  pasa a la posición B de forma que la energía almacenada en el inductor se va disipando en la resistencia R3. Determinar el tiempo necesario para que la energía almacenada en el inductor se reduzca al 50%. Se sabe que: Ig=-5 A; R1=75 ohm; R2=50 ohm; R3=100 ohm; L=200 microH.

Respuesta:

Debido a que el conmutador del circuito ha estado en posición A durante mucho tiempo, el circuito ha alcanzado el régimen estacionario y el circuito equivalente en t<0 es el siguiente:

En régimen permanente el inductor se comporta como un corto circuito, por lo que, aplicando Kirchhoff, sabemos que:

En t≥0  el circuito equivalente es el siguiente:

Aplicando lo aprendido en Respuesta natural y forzada de un circuito RL , podemos determinar la expresión para iL(t) de la manera siguiente:

Para determinar el tiempo necesario para que la energía almacenada en el inductor se reduzca al 50%, de lo aprendido en Respuesta natural y forzada de un circuito RL, utilizamos la siguiente relación:

En t=0 la energía acumulada en el inductor es la siguiente:

Así, el 50% de la energía acumulada en el inductor es:

De la ecuación principal para la energía, podemos deducir dos factores que se restan:

De la ecuación anterior vamos a despejar el valor de la corriente iL(t) para el instante en que la mitad de la energía en el inductor se ha consumido, es decir, para el momento en que W(t)=0.45 mJ:

Ahora, igualamos este último resultado a la expresión general deducida más arriba para iL(t) y despejamos el valor del tiempo t en el cual se alcanza una corriente de iL(t)=2.12 A, el cual es el tiempo en que se ha consumido la mitad de la energía almacenada en el inductor L:

De donde:

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, Valladolid, Quito, Guayaquil, Jaén, Villafranca de Ordizia. 

WhatsApp:  +34633129287   

Twitter: @dademuch

FACEBOOK: DademuchConnection

email: dademuchconnection@gmail.com

Sin categoría

La función Impulso Unitario

La función impulso unitario δ(t), también conocida como Delta de Dirac, tiene un papel fundamental en el análisis de señales. La misma está definida de la siguiente manera:

Esta señal de puede ver como un pulso rectangular de área unidad, ancho ε y altura 1/ε, tal como se muestra en la Figura 1:

Figura 1

Como se puede ver en la Figura anterior, la función impulso unitario es una función par, es decir:

La función impulso unitario δ(t) no es una función en el sentido ordinario como se define una función. Una función ordinaria viene especificada para todos sus valores de tiempo t. La función impulso unitario es cero para todo valor de t, excepto en t=0, y este es el único punto interesante de su dominio, y sin embargo aquí su valor es indefinido. Más útil es definir la función impulso unitario δ(t) como una función generalizada. Una función generalizada se define por sus efectos sobre otras funciones, en vez de ser definida por los valores que asume en su dominio.

En este caso, la función impulso unitario δ(t) se define sobre todo por su propiedad de muestreo y por su propiedad de selección.

Otra manera de decirlo es que la función impulso unitario δ(t) está mejor definida por sus aplicaciones que por los valores que asume en su dominio.

Propiedad de muestreo – multiplicación de una función particular por una función impulso.

Supongamos la multiplicación entre la función δ(t) y una función cualquiera Φ(t) continua en t=0, donde la función tiene una magnitud Φ(0) en ese punto. Se obtiene que:

Este resultado es de gran importancia y se va a aplicar en la siguiente propiedad. Además, se puede generalizar para una función impulso unitario desplazado en t=T:

Propiedad de selección de la función impulso unitario

Integrando el resultado de la propiedad anterior y utilizando la definición del impulso unitario dado al principio, obtenemos que:

La anterior es una de las propiedades más importantes en el análisis de señales y sistemas. Este resultado se puede generalizar como:

Propiedad de escalamiento de la función impulso unitario

Se puede demostrar que:

Lo que implica que:

La función impulso unitario y la función escalón unitario.

Una aplicación de gran importancia en cuanto a la función impulso unitario, es que hace posible la existencia de la derivada de la función escalón unitario en t=0, lo cual no es posible en el sentido de una función ordinaria, pero si en el sentido de una función generalizada. Para esto, integramos el producto de la función Φ(t) definida anteriormente y du(t)/dt:

Este resultado demuestra que du(t)/dt satisface la propiedad de selección de δ(t). Es decir, en términos de una función generalizada:

En consecuencia:

A continuación pasamos a estudiar el caso tiempo discreto.

Impulso unidad delta.

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.

Escalón unidad

La señal escalón unitario se define como:

El escalón unitario es la suma de un tren de impulsos:

De esta manera, complementado el caso de tiempo continuo, el impulso unidad se puede expresar como:

También se puede expresar el escalón unitario como:

Es interesante constatar que en el caso del impulso unidad también se cumple la propiedad de muestreo:

En general, cualquier señal discreta x[n] puede ser representada como una combinación lineal de deltas desplazadas. En general se cumple que:

Ejemplo:

Sea la función x[n] representada por la siguiente gráfica:

La función x[n] de la gráfica anterior puede ser representada mediante la siguiente sumatoria:

A continuación se observa cada una de las gráficas que se suman para formar x[n]:

Suma de convolución

En el ejemplo anterior se ve claramente la importancia de las propiedades de muestreo y selección definidas anteriormente para la función impulso unitario. Su importancia reside en el hecho de que x[n] se puede representar como una superposición de versiones escaladas de un conjunto muy sencillo de funciones elementales, es decir, de impulsos unitarios δ[n-k] desplazados. A partir de este simple hecho vamos a presentar ahora uno de los conceptos más importante del análisis de sistemas lineales, la idea de la suma de convolución.

Decíamos antes que cualquier señal discreta x[n] puede representarse como una combinación lineal de deltas desplazadas:

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

Supongamos ahora que x[n] representa toda entrada para un arbitrario Sistema A cuya salida es y[n]. Recordemos del párrafo anterior que en realidad x[n] es una suma de versiones escaladas (con peso x[k]) de impulsos unitarios δ[n-k] desplazados. Designemos a hk[n] como la respuesta del sistema al impulso unitario desplazado δ[n-k].

Continuación…Sumatoria de Convolución

Fuentes:

  1. Fundamentos_de_Señales_y_Sistemas_usando la Web y Matlab
  2. Análisis de sistemas lineales asistido con Scilab, Ebert Brea.
  3. Analisis_de_Sistemas_Lineales
  4. Oppenheim – Señales y Sistemas
  5. Señales y sistemas – Shaum

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