Está en la página 1de 9

SIGNAL ANALYSIS, OCTOBER 2017 1

Reconstruccion de Senales con Fourier


Jhon Jairo Murcia Zamudio

ResumenLa practica basicamente consiste en utilizar el soft- II. DISE NO DE LA PRACTICA


ware MATLAB para la reconstruccion de 2 senales continuas,
La primera senal a trabajar es la senal triangular que se ve
ademas de hacer una interfaz grafica donde lo anterior se puede
realizar interactivamente; los elementos dados fueron solo los en la figura 1 (1)
graficos de estas 2 senales, la primera senal es de tipo triangular
y la 2 consistio en una senal de tipo escalonado; cuando se
aplica la transformada de Fourier se extraen los coeficientes
correspondientes a cada senal y se calcula la aproximacion grafica
a esta senal; como adicional en la interfaz grafica mostrara el
grafico original, la aproximacion y el error entre ellos.
Index TermsFourier, senal, coeficientes, interfaz, continuo.

I. M ARCO T E ORICO
La transformada de Fourier de una funcion del tiempo en
s es una funcion de frecuencia compleja, cuyo valor absoluto
representa la cantidad de esa frecuencia presente en la funcion
original y cuyo argumento complejo es el desplazamiento de
fase de la sinusoide basica en esa frecuencia.
Figura 1.
La transformada de Fourier se denomina representacion
del dominio de frecuencia de la senal original. El termino La senal se divide en 2; uno con pendiente positiva y otro
transformada de Fourier se refiere tanto a la representacion con pendiente positiva, la primera parte va de T 2 a 0, y la
del dominio de la frecuencia como a la operacion matematica segunda parte va de 0 a T2 . Por lo tanto, todo el periodo de
que asocia la representacion del dominio de la frecuencia a senal es T. Y para la amplitud, las ecuaciones para las dos
una funcion del tiempo. [1] pendientes vistas en la senal tienen que ser descritas.
La primera parte tiene una pendiente positiva y la ecuacion
Uno de los metodos para la representacion de la senal es el de la recta para esta parte es: 2A T (t) + A para la segunda
analisis fourier, donde la senal esta representada por la suma parte tiene pendiente negativa y su ecuacion es 2A T (t) + A.
ponderada de funciones sinusoidales complejas. Esta informacion se utilizara para extraer la transformada de
Fourier.
La representacion fourier se aplica para 4 casos diferentes, vspace 1pt
en este caso para una senal continua no periodica; aqu se
aplica la transformada de Fourier (FT), en este caso la La segunda senal a trabajar es la senal de paso que se ve
representacion no es exacta y se alcanza una aproximacion. en la Figura 2.
[2]

Las ecuaciones para obtener la representacion en fourier


en este caso son:


X
x(t) = x[k]ejkw0 t (1)
k=

parte de coeficientes
Z
1
x[k] = x(t)ejkw0 t dt (2)
T (T )
Figura 2.

La senal se divide en 3; con valor constante en A1 en


jmurcia95@unisalle.edu.co la parte negativa del tiempo que va desde T T
2 hasta 4 , la
SIGNAL ANALYSIS, OCTOBER 2017 2

segunda parte tiene valor constante enA2 y va desde T 4 hasta En el codigo anterior basicamente lo que se hizo fue
T
4 y por ultimmo una con valor constante en A1 que va desde
graficar la senal triangular original dejando como variable a
T T
4 hasta 2 . De aqui se infiere que todo el perodo de la senal es
nuestro gusto el valor A de la amplitud y t del valor en el
T. con amplitudes A1 y A2 dependiendo del sector del tiempo. tiempo que ocurre la senal.

Coeficientes de la senal 1 Para la reconstruccion con transformadas de fourier se


A continuacion segun la ecuacion 2, se planteara para utilizo el siguiente codigo:
poder obtener los valores de los coeficientes de fourier y
luego proceder hacer la aproximacion de la grafica, para toda
1 t = Este valor se i n g r e s a ;
la ecuacion obtendremos el planteamiento de la integral de la
2 t 1 =[ 0.5 t : 0 . 0 0 1 : 0 ] ; %I n t e r v a l o de l a
senal:
parte 1
3 t 2 = [ 0 : 0 . 0 0 1 : 0 . 5 t ] ; %I n t e r v a l o de l a
1
Z 0
2A parte 2
x[k] = ( ( (t) + A)ejkw0 t dt (3) 4 T=[ 0.5 t : 0 . 0 0 1 : 0 . 5 t ] ; %I n t e r v a l o de l a
T (T /2) T
senal completa
Z T /2
2A 5 A= E ste valor se i n g r e s a ;
+ ( (t) + A)ejkw0 t dt) B ( 1 ) =A / 2 ; %V a l o r d e l c o e f i c i e n t e en c e r o
(0) T 6

7 M= E s t e v a l o r s e i n g r e s a
8

Al final y resolviendo la integral tendremos que: 9 f o r i = 2 : 1 :M


10 B ( i ) = (A / ( ( i 1) ( i 1) p i p i ) ) ((A c o s ( ( i
1) p i ) ) / ( ( i 1) ( i 1) p i p i ) ) ;
A Acos(K) 11 end
x[k] =
K 2 2 K 2 2 12 xb=B ( 1 ) ;
De aqui podemos mirar que hay una incongruencia cuando13 f o r i = 1 :M
K=0; por lo tanto para X[0] hacemos Hopital en X[K] hasta14 xb=B ( i ) 2 c o s ( ( 2 p i / t ) ( i 1) . T ) +xb ;
tener un valor en 0, de aqui obtenemos que para K=0 entonces:15 end
16 p l o t ( T , xb )

A En este se tuvo en cuenta que como la senal es par;


x[0] = entonces se puede utilizar la siguiente ecuacion:
2
De X[K] podemos sacar 2 valores, para cuando K=Par y
para cuando K=Impar; y se obtienen lo siguiente:
X
x(t) = X(0) + 2X[m]cos(kw0 t) (4)
x[P ar] = 0 m=1

2A Esto se hace para poder explicar que en el 1 for lo que se


x[Impar] = hace es hacer la sumatoria para los K 0 y luego se aplica
K 2 2
la ecuacion anterior y obtenemos por ultimo la grafica de la
Para obtener en grafica de la senal original, se implemento senal resultante; a demas se agrega como nueva variable la
el siguiente codigo en MATLAB: M, que es el numero de K elementos para representar la senal.

1 t = Este valor se i n g r e s a ; Coeficientes de la senal 2


2 t 1 =[ 0.5 t : 0 . 0 0 1 : 0 . 0 0 1 ] ; %I n t e r v a l o p a r a Igual que con la 1 senal primero obtendremos el
la parte 1 planteamiento de la integral de la senal para calcular los
3 t 2 = [ 0 : 0 . 0 0 1 : 0 . 5 t ] ; %I n t e r v a l o p a r a l a coeficientes:
parte 2
4 T=[ 0.5 t : 0 . 0 0 1 : 0 . 5 t ] ; %Tiempo t o t a l de Z T /4
la senal 1
x[k] = (A1 ejkw0 t dt (5)
5 A= E s t e v a l o r s e i n g r e s a ; %V a l o r maximo T (T /2)
en e l e j e Y Z T /4
6 X1 = [ ( ( ( A / ( t / 2 ) ) ) t 1 ) +A ] ; %E c u a c i o n d e l +A2 ejkw0 t dt
intervalo 1 (T /4)
7 X2 = [ ( ( ( A / ( t / 2 ) ) ) t 2 ) +A ] ; %E c u a c i o n d e l Z T /2
intervalo 2 +A1 ejkw0 t dt)
8 X= [X1 X2 ] ; %Se u n i f i c a t o d a l a s e n a l (T /4)
9 p l o t ( T , X)
10 a x i s ([ t / 2 t / 2 0 A ] )
SIGNAL ANALYSIS, OCTOBER 2017 3

Al final y resolviendo la integral tendremos que: 7 B ( i ) = s i n ( ( i 1) p i / 2 ) ( ( A2A1 ) / ( ( i 1) p i ) )


+ s i n ( ( i 1) p i ) ( ( A1 ) / ( ( i 1) p i ) )
8 end
A2 A1 K A1 B ( 1 ) = (A1+A2 ) / 2 ; % V a l o r en K=0
x[k] = sin( )+ sin(K) 9
K 2 K 10 f o r i = 3 : 2 :M1
De aqui podemos mirar que hay una incongruencia cuando11 B( i ) =0;
K=0; por lo tanto para X[0] hacemos Hopital en X[K] hasta12 end
tener un valor en 0, de aqui obtenemos que para K=0 entonces:13 xb=B ( 1 ) ;
14 f o r i = 1 :M
15 xb=B ( i ) 2 c o s ( ( i 1) ( 2 p i / t ) . T ) +xb ;
A1 + A2
x[0] = 16 end
2 17 p l o t ( T , xb )
De X[K] podemos sacar 2 valores, para cuando K=Par y18 a x i s ([ t / 2 t / 2 A10.5 A2 + 0 . 5 ] )
para cuando K=Impar; y se obtienen lo siguiente:
En este se tuvo en cuenta que como la senal es par;
x[P ar] = 0 entonces se puede utilizar la siguiente ecuacion:
A2 A1
x[Impar] =
K
X
x(t) = X(0) + 2X[m]cos(kw0 t)
Para obtener en grafica de la senal original, se implemento m=1
el siguiente codigo en MATLAB:
Esto se hace para poder explicar que en el 1 for lo que se
hace es hacer la sumatoria para los K 0 y luego se aplica
1 t = Este valor se i n g r e s a ; la ecuacion anterior y obtenemos por ultimo la grafica de la
2 t 1 =[ 0.5 t : 0 . 0 0 1 : 0 . 2 5 t ] ; %I n t e r v a l o de senal resultante; a demas se agrega como nueva variable la
la parte 1 M, que es el numero de K elementos para representar la senal.
3 t 2 =[ 0.25 t : 0 . 0 0 1 : 0 . 2 5 t ] ; %I n t e e r v a l o de
la parte 2
Calculo del error entre senales
4 t 3 = [ 0 . 2 5 t : 0 . 0 0 1 : 0 . 5 t ] ; %I n t e r v a l o de l a
Para calcular el error entre las senales lo unico que se
parte 3
implementa adicional tanto para la senal 1 como para la senal
5 T=[ 0.5 t : 0 . 0 0 1 : 0 . 5 t ] ; %Tiempo t o t a l de
2 se ve a continuacion:
la senal
6 A1= E s t e v a l o r s e i n g r e s a ; %A m p l i t u d de 1 S= (Xxb )
la parte 1 y 3 2 p l ot (T, S)
7 A2= E s t e v a l o r s e i n g r e s a ; %A m p l i t u d de
la parte 2 Donde S es una nueva variable donde se guarda el error y
8 X= [A1 o n e s ( 1 , l e n g t h ( t 1 ) ) A2 o n e s ( 1 , l e n g t h luego se grafica.
( t 2 ) 2) A1 o n e s ( 1 , l e n g t h ( t 3 ) ) ] ; % Interfaz Grafica en MATLAB
V a l o r e s en e l e j e Y Como anexo se agregara el codigo de la interfaz.
9 p l o t ( T , X)
10 a x i s ([ t / 2 t / 2 1 . 5 A2 + 0 . 5 ] )
En el codigo anterior basicamente lo que se hizo fue III. RESULTS
graficar la senal escalonada original dejando como variable a
nuestro gusto los valores A1 y A2 que son las amplitudes y t
del valor en el tiempo que ocurre la senal.
Para la reconstruccion con transformadas de fourier se utilizo
el siguiente codigo:

1 t = Este valor se i n g r e s a ;
2 T=[ 0.5 t : 0 . 0 0 1 : 0 . 5 t ] ; %Tiempo t o t a l de
la senal
3 A1= E s t e v a l o r s e i n g r e s a ; %A m p l i t u d de
partes 1 y 3
4 A2= E s t e v a l o r s e i n g r e s a ; %A m p l i t u d de
la parte 2
5 M= E s t e v a l o r s e i n g r e s a ; %C a n t i d a d de
K Figura 3. Senal triangular original con t=2 y A=2
6 f o r i = 2 : 2 :M
SIGNAL ANALYSIS, OCTOBER 2017 4

Figura 9. Interfaz grafica con un ejemplo cualquiera funcional


Figura 4. Senal escalonada original con t=4, A1=2 y A2=4

IV. AN ALISIS DE RESULTADOS


Para la primera senal ya que es triangular y posee una
forma parecida a una onda sinosoudal entonces no se
requiere de K demasiados altos como para obtener
una aproximacion visual bastante cercana; cosa muy
diferente a lo que sucede con la senal 2 escalonada,
pues aunque se lleve a K elevados siempre se aprecia
visualmente que es una aproximacion no muy precisa.

Figura 5. Senal triangular Reconstruida con t=4, A=2 y M=5 Cuando analisamos las graficas de los errores tanto para
la senal 1 como para la senal 2 encontramos que se
aprecian unos picos; estos se muestran donde la senal
bien sea se corta como en la senal 1 o simplemente
hay una discontinuidad y como en la senal 2 y la
aproximacion pasa por la media de los puntos.

V. CONCLUSIONS
Figura 6. Senal escalonada Reconstruida con t=4, A1=2, A2=4 y M=20
Para poder hacer el analisis de fourier de cualquier primero
se tienen que analizar cual de las 4 posibilidades es aplicable;
ya que las ecuacion X(t) y X[K] cambian dependiendo si es en
tiempo discreto y si son o no continuas; a demas que si la senal
es en tiempo continuo no obtendremos una representacion
exacta de la senal sino una aproximacion.
Como punto fundamental tenemos que analizar si la senal es
o no es par, ya que puede cambiar el codigo y se representaria
la senal completa en la reconstruccion sin poder tomar las
propiedades de una senal par; para una aproximacion exacta
Figura 7. Senal del error escalonada con t=4, A1=2, A2=4 y M=20
en tiempo continuo K tiene que converger a infinito.
La practica fue satisfactoria; ya que se aprecia visualmente
las representaciones graficas de las senales con ayuda de las
transformadas de fourier.

R EFERENCIAS
[1] https://en.wikipedia.org/wiki/Fourier transform
[2] Quintero, J. A. (2017). Senales y Sistemas I. Clase Analisis de Senales
(pags. 30-48). Bogota D.C: Unisalle.

Figura 8. Senal del error Triangular con t=4, A=2 y M=5


SIGNAL ANALYSIS, OCTOBER 2017 5

VI. A NEXOS 34 gui Callback , []) ;


35 i f n a r g i n && i s c h a r ( v a r a r g i n { 1 } )
Codigo de la Interfaz:
36 gui State . gui Callback = str2func (
1 function varargout = untitled ( varargin ) v a r a r g i n {1}) ;
2 % UNTITLED MATLAB c o d e f o r u n t i t l e d . f i g 37 end
3 % UNTITLED , by i t s e l f , c r e a t e s a new 38

UNTITLED o r r a i s e s t h e e x i s t i n g 39 i f nargout
4 % singleton . 40 [ varargout {1: nargout }] = gui mainfcn (
5 % gui State , varargin {:}) ;
6 % H = UNTITLED r e t u r n s t h e h a n d l e t o 41 else
a new UNTITLED o r t h e h a n d l e t o 42 gui mainfcn ( gui State , varargin {:}) ;
7 % the existing singleton . 43 end
8 % 44 % End i n i t i a l i z a t i o n c o d e DO NOT EDIT
9 % UNTITLED ( CALLBACK , h O b j e c t , 45

eventData , handles , . . . ) c a l l s the l o c a l 46

10 % f u n c t i o n named CALLBACK i n 47 % E x e c u t e s j u s t b e f o r e u n t i t l e d i s
UNTITLED .M w i t h t h e g i v e n i n p u t made v i s i b l e .
arguments . 48 f u n c t i o n untitled OpeningFcn ( hObject ,
11 % eventdata , handles , varargin )
12 % UNTITLED ( P r o p e r t y , Value , . . . ) 49 % T h i s f u n c t i o n h a s no o u t p u t a r g s , s e e
c r e a t e s a new UNTITLED o r r a i s e s t h e OutputFcn .
13 % existing singleton . Starting 50 % hObject handle to f i g u r e
from t h e l e f t , p r o p e r t y v a l u e p a i r s 51 % eventdata r e s e r v e d t o be d e f i n e d i n
are a f u t u r e v e r s i o n o f MATLAB
14 % a p p l i e d t o t h e GUI b e f o r e 52 % handles s t r u c t u r e w i t h h a n d l e s and
u n t i t l e d O p e n i n g F c n g e t s c a l l e d . An u s e r d a t a ( s e e GUIDATA)
15 % u n r e c o g n i z e d p r o p e r t y name o r 53 % varargin command l i n e a r g u m e n t s t o
i n v a l i d v a l u e makes p r o p e r t y u n t i t l e d ( s e e VARARGIN)
application 54

16 % stop . All inputs are passed to 55 % Choose d e f a u l t command l i n e o u t p u t f o r


untitled OpeningFcn via varargin . untitled
17 % 56 handles . output = hObject ;
18 % See GUI O p t i o n s on GUIDE s T o o l s 57

menu . Choose GUI a l l o w s o n l y one 58 % Update h a n d l e s s t r u c t u r e


19 % i n s t a n c e to run ( s i n g l e t o n ) . 59 g u i d a t a ( hObject , handles ) ;
20 % 60

21 % See a l s o : GUIDE , GUIDATA, GUIHANDLES 61 % UIWAIT makes u n t i t l e d w a i t f o r u s e r


22 r e s p o n s e ( s e e UIRESUME)
23 % E d i t t h e above t e x t t o modify t h e 62 % uiwait ( handles . figure1 ) ;
response to help u n t i t l e d 63

24 64

25 % L a s t M o d i f i e d by GUIDE v2 . 5 02Oct 2017 65 % O u t p u t s from t h i s f u n c t i o n a r e


19:13:19 r e t u r n e d t o t h e command l i n e .
26 66 function varargout = untitled OutputFcn (
27 % B e g i n i n i t i a l i z a t i o n c o d e DO NOT EDIT hObject , eventdata , handles )
28 gui Singleton = 1; 67 % varargout cell array for returning
29 g u i S t a t e = s t r u c t ( gui Name , o u t p u t a r g s ( s e e VARARGOUT) ;
mfilename , . . . 68 % hObject handle to f i g u r e
30 gui Singleton , 69 % eventdata r e s e r v e d t o be d e f i n e d i n
gui Singleton , . . . a f u t u r e v e r s i o n o f MATLAB
31 gui OpeningFcn , 70 % handles s t r u c t u r e w i t h h a n d l e s and
@untitled OpeningFcn u s e r d a t a ( s e e GUIDATA)
, ... 71

32 gui OutputFcn , 72 % Get d e f a u l t command l i n e o u t p u t from


@untitled OutputFcn handles s t r u c t u r e
, ... 73 v a r a r g o u t {1} = h a n d l e s . o u t p u t ;
33 g u i L a y o u t F c n , [ ] , 74
... 75
SIGNAL ANALYSIS, OCTOBER 2017 6

Figura 10. Interfaz grafica.

76 % E x e c u t e s on b u t t o n p r e s s i n 100 a x i s ([ t / 2 t / 2 1 . 5 A2 + 0 . 5 ] )
radiobutton1 . 101 end
77 f u n c t i o n r a d i o b u t t o n 1 C a l l b a c k ( hObject , 102

eventdata , handles ) 103 % E x e c u t e s on b u t t o n p r e s s i n


78 % hObject handle to radiobutton1 ( see radiobutton2 .
GCBO) 104 f u n c t i o n r a d i o b u t t o n 2 C a l l b a c k ( hObject ,
79 % eventdata r e s e r v e d t o be d e f i n e d i n eventdata , handles )
a f u t u r e v e r s i o n o f MATLAB 105 % hObject handle to radiobutton2 ( see
80 % handles s t r u c t u r e w i t h h a n d l e s and GCBO)
u s e r d a t a ( s e e GUIDATA) 106 % eventdata r e s e r v e d t o be d e f i n e d i n
81 a f u t u r e v e r s i o n o f MATLAB
82 % H i n t : g e t ( h O b j e c t , Value ) r e t u r n s 107 % handles s t r u c t u r e w i t h h a n d l e s and
toggle s t a t e of r a d i o b u t t o n 1 u s e r d a t a ( s e e GUIDATA)
83 L = g e t ( h a n d l e s . s l i d e r 5 , Value ) 108

84 A11 = g e t ( h a n d l e s . s l i d e r 3 , V a l u e ) ; 109 % H i n t : g e t ( h O b j e c t , Value ) r e t u r n s


85 A22 = g e t ( h a n d l e s . s l i d e r 4 , V a l u e ) ; toggle s t a t e of r a d i o b u t t o n 2
86 axes ( handles . axes1 ) ; 110 L = g e t ( h a n d l e s . s l i d e r 5 , Value ) ;
87 T r i a n g u l a r = g e t ( h a n d l e s . r a d i o b u t t o n 2 , 111 A11 = g e t ( h a n d l e s . s l i d e r 3 , V a l u e ) ;
Value ) 112 A22 = g e t ( h a n d l e s . s l i d e r 4 , V a l u e ) ;
88 E s c a l o n = g e t ( h a n d l e s . r a d i o b u t t o n 1 , V a l u e 113 axes ( handles . axes1 ) ;
) 114 Triangular = get ( handles . radiobutton2 ,
89 i f ( E s c a l o n ==1) Value )
90 set ( handles . radiobutton2 , value ,0) ; 115 Escalon = g e t ( h a n d l e s . r a d i o b u t t o n 1 , Value
91 t =L ; )
92 t 1 =[ 0.5 t : 0 . 0 0 1 : 0 . 2 5 t ] ; 116 i f ( T r i a n g u l a r ==1)
93 t 2 =[ 0.25 t : 0 . 0 0 1 : 0 . 2 5 t ] ; 117 set ( handles . radiobutton1 , value ,0) ;
94 t3 =[0.25 t : 0.0 01: 0.5 t ] ; 118 end
95 T=[ 0.5 t : 0 . 0 0 1 : 0 . 5 t ] ; 119 t =L ;
96 A1=A11 ; 120 t 1 =[ 0.5 t : 0 . 0 0 1 : 0 ] ;
97 A2=A22 ; 121 t2 =[0:0.001:0.5 t ] ;
98 X= [A1 o n e s ( 1 , l e n g t h ( t 1 ) ) A2 o n e s ( 1 , l e n g t h 122 T= [ t 1 t 2 ] ;
( t 2 ) 2) A1 o n e s ( 1 , l e n g t h ( t 3 ) ) ] ; 123 A=A11 ;
99 p l o t ( T , X) 124 X1 = [ ( ( ( 2 A) ) t 1 ) +A ] ;
SIGNAL ANALYSIS, OCTOBER 2017 7

125 X2 = [ ( ( ( 2 A) ) t 2 ) +A ] ; 163

126 X= [X1 X2 ] ; 164 % E x e c u t e s d u r i n g o b j e c t c r e a t i o n ,


127 p l o t ( T , X) after setting all properties .
128 165 f u n c t i o n s l i d e r 4 C r e a t e F c n ( hObject ,
129 eventdata , handles )
130 % E x e c u t e s on s l i d e r movement . 166 % hObject h a n d l e t o s l i d e r 4 ( s e e GCBO)
131 f u n c t i o n s l i d e r 3 C a l l b a c k ( hObject , 167 % eventdata r e s e r v e d t o be d e f i n e d i n
eventdata , handles ) a f u t u r e v e r s i o n o f MATLAB
132 % hObject h a n d l e t o s l i d e r 3 ( s e e GCBO) 168 % handles empty h a n d l e s n o t c r e a t e d
133 % eventdata r e s e r v e d t o be d e f i n e d i n u n t i l a f t e r a l l CreateFcns called
a f u t u r e v e r s i o n o f MATLAB 169

134 % handles s t r u c t u r e w i t h h a n d l e s and 170 % Hint : s l i d e r c o n t r o l s u s u a l l y have a


u s e r d a t a ( s e e GUIDATA) l i g h t gray background .
135 171 i f i s e q u a l ( get ( hObject , BackgroundColor )
136 % H i n t s : g e t ( h O b j e c t , Value ) r e t u r n s , get (0 ,
p o s i t i o n of s l i d e r defaultUicontrolBackgroundColor ) )
137 % g e t ( h O b j e c t , Min ) and g e t ( 172 s e t ( hObject , BackgroundColor , [ . 9 . 9
h O b j e c t , Max ) t o d e t e r m i n e r a n g e o f .9]) ;
slider 173 end
138 A11= g e t ( h a n d l e s . s l i d e r 3 , V a l u e ) 174

139 s e t ( h a n d l e s . t e x t 8 , s t r i n g , A11 ) 175

140 176 % E x e c u t e s on b u t t o n p r e s s i n
141 % E x e c u t e s d u r i n g o b j e c t c r e a t i o n , pushbutton1 .
after setting all properties . 177 f u n c t i o n pushbutton1 Callback ( hObject ,
142 f u n c t i o n s l i d e r 3 C r e a t e F c n ( hObject , eventdata , handles )
eventdata , handles ) 178 % hObject handle to pushbutton1 ( see
143 % hObject h a n d l e t o s l i d e r 3 ( s e e GCBO) GCBO)
144 % eventdata r e s e r v e d t o be d e f i n e d i n 179 % eventdata r e s e r v e d t o be d e f i n e d i n
a f u t u r e v e r s i o n o f MATLAB a f u t u r e v e r s i o n o f MATLAB
145 % handles empty h a n d l e s n o t c r e a t e d 180 % handles s t r u c t u r e w i t h h a n d l e s and
u n t i l a f t e r a l l CreateFcns called u s e r d a t a ( s e e GUIDATA)
146 181 L = g e t ( h a n d l e s . s l i d e r 5 , Value )
147 % Hint : s l i d e r c o n t r o l s u s u a l l y have a 182 M = g e t ( h a n d l e s . s l i d e r 6 , Value )
l i g h t gray background . 183 A11 = g e t ( h a n d l e s . s l i d e r 3 , V a l u e ) ;
148 i f i s e q u a l ( g e t ( h O b j e c t , B a c k g r o u n d C o l o r ) 184 A22 = g e t ( h a n d l e s . s l i d e r 4 , V a l u e ) ;
, get (0 , 185 Triangular = get ( handles . radiobutton2 ,
defaultUicontrolBackgroundColor ) ) Value ) ;
149 s e t ( h O b j e c t , B a c k g r o u n d C o l o r , [ . 9 . 9 186 Escalon = g e t ( h a n d l e s . r a d i o b u t t o n 1 , Value
.9]) ; ) ;
150 end 187 axes ( handles . axes2 ) ;
151 188 i f ( T r i a n g u l a r ==1)
152 189 t =L ;
153 % E x e c u t e s on s l i d e r movement . 190 t 1 =[ 0.5 t : 0 . 0 0 1 : 0 . 0 0 1 ] ;
154 f u n c t i o n s l i d e r 4 C a l l b a c k ( hObject , 191 t2 =[0:0.001:0.5 t ] ;
eventdata , handles ) 192 T=[ 0.5 t : 0 . 0 0 1 : 0 . 5 t ] ;
155 % hObject h a n d l e t o s l i d e r 4 ( s e e GCBO) 193 A=A11 ;
156 % eventdata r e s e r v e d t o be d e f i n e d i n 194 B ( 1 ) =A / 2 ;
a f u t u r e v e r s i o n o f MATLAB 195 f o r i = 2 : 1 :M
157 % handles s t r u c t u r e w i t h h a n d l e s and 196 B ( i ) = (A / ( ( i 1) ( i 1) p i p i ) ) ((A c o s ( ( i
u s e r d a t a ( s e e GUIDATA) 1) p i ) ) / ( ( i 1) ( i 1) p i p i ) ) ;
158 197 end
159 % H i n t s : g e t ( h O b j e c t , Value ) r e t u r n s 198 xb=B ( 1 ) ;
p o s i t i o n of s l i d e r 199 f o r i = 1 :M
160 % g e t ( h O b j e c t , Min ) and g e t ( 200 xb=B ( i ) 2 c o s ( ( 2 p i / t ) ( i 1) . T ) +xb ;
h O b j e c t , Max ) t o d e t e r m i n e r a n g e o f 201 end
slider 202 t =L ;
161 A22= g e t ( h a n d l e s . s l i d e r 4 , V a l u e ) 203 T=[ 0.5 t : 0 . 0 0 1 : 0 . 5 t ] ;
162 s e t ( h a n d l e s . t e x t 9 , s t r i n g , A22 ) 204 A=A11 ;
SIGNAL ANALYSIS, OCTOBER 2017 8

205 X1 = [ ( ( ( A / ( t / 2 ) ) ) t 1 ) +A ] ; 252 % eventdata r e s e r v e d t o be d e f i n e d i n


206 X2 = [ ( ( ( A / ( t / 2 ) ) ) t 2 ) +A ] ; a f u t u r e v e r s i o n o f MATLAB
207 X= [X1 X2 ] ; 253 % handles empty h a n d l e s n o t c r e a t e d
208 p l o t ( T , [ xb ; X ] ) u n t i l a f t e r a l l CreateFcns called
209 a x i s ([ t / 2 t / 2 0 A ] ) 254

210 end 255 % Hint : s l i d e r c o n t r o l s u s u a l l y have a


211 i f ( E s c a l o n ==1) l i g h t gray background .
212 t =L ; 256 i f i s e q u a l ( get ( hObject , BackgroundColor )
213 T=[ 0.5 t : 0 . 0 0 1 : 0 . 5 t ] ; , get (0 ,
214 A1=A11 ; A2=A22 ; defaultUicontrolBackgroundColor ) )
215 f o r i = 2 : 2 :M 257 s e t ( hObject , BackgroundColor , [ . 9 . 9
216 B( i ) = s i n ( ( i 1) p i / 2 ) ( ( A2A1 ) / ( ( i 1) p i ) ) .9]) ;
+ s i n ( ( i 1) p i ) ( ( A1 ) / ( ( i 1) p i ) ) 258 end
217 end 259

218 B ( 1 ) = (A1+A2 ) / 2 ; 260

219 f o r i = 3 : 2 :M1 261 % E x e c u t e s on s l i d e r movement .


220 B( i ) =0; 262 f u n c t i o n s l i d e r 6 C a l l b a c k ( hObject ,
221 end eventdata , handles )
222 xb=B ( 1 ) ; 263 % hObject h a n d l e t o s l i d e r 6 ( s e e GCBO)
223 f o r i = 1 :M 264 % eventdata r e s e r v e d t o be d e f i n e d i n
224 xb=B ( i ) 2 c o s ( ( i 1) ( 2 p i / t ) . T ) +xb ; a f u t u r e v e r s i o n o f MATLAB
225 end 265 % handles s t r u c t u r e w i t h h a n d l e s and
226 t =L ; u s e r d a t a ( s e e GUIDATA)
227 t 1 =[ 0.5 t : 0 . 0 0 1 : 0 . 2 5 t ] ; 266

228 t 2 =[ 0.25 t : 0 . 0 0 1 : 0 . 2 5 t ] ; 267 % H i n t s : g e t ( h O b j e c t , Value ) r e t u r n s


229 t3 =[0.25 t : 0.0 01: 0.5 t ] ; p o s i t i o n of s l i d e r
230 T=[ 0.5 t : 0 . 0 0 1 : 0 . 5 t ] ; 268 % g e t ( h O b j e c t , Min ) and g e t (
231 A1=A11 ; h O b j e c t , Max ) t o d e t e r m i n e r a n g e o f
232 A2=A22 ; slider
233 X= [A1 o n e s ( 1 , l e n g t h ( t 1 ) ) A2 o n e s ( 1 , l e n g t h 269 M= g e t ( h a n d l e s . s l i d e r 6 , V a l u e )
( t 2 ) 2) A1 o n e s ( 1 , l e n g t h ( t 3 ) ) ] ; 270 s e t ( h a n d l e s . t e x t 7 , s t r i n g ,M)
234 p l o t ( T , [ xb ; X ] ) 271

235 a x i s ([ t / 2 t / 2 A10.5 A2 + 0 . 5 ] ) 272 % E x e c u t e s d u r i n g o b j e c t c r e a t i o n ,


236 end after setting all properties .
237 273 f u n c t i o n s l i d e r 6 C r e a t e F c n ( hObject ,
238 % E x e c u t e s on s l i d e r movement . eventdata , handles )
239 f u n c t i o n s l i d e r 5 C a l l b a c k ( hObject , 274 % hObject h a n d l e t o s l i d e r 6 ( s e e GCBO)
eventdata , handles ) 275 % eventdata r e s e r v e d t o be d e f i n e d i n
240 % hObject h a n d l e t o s l i d e r 5 ( s e e GCBO) a f u t u r e v e r s i o n o f MATLAB
241 % eventdata r e s e r v e d t o be d e f i n e d i n 276 % h a n d l e s empty h a n d l e s n o t c r e a t e d
a f u t u r e v e r s i o n o f MATLAB u n t i l a f t e r a l l CreateFcns called
242 % handles s t r u c t u r e w i t h h a n d l e s and 277
u s e r d a t a ( s e e GUIDATA) 278 % Hint : s l i d e r c o n t r o l s u s u a l l y have a
243 l i g h t gray background .
244 % H i n t s : g e t ( h O b j e c t , Value ) r e t u r n s 279 i f i s e q u a l ( get ( hObject , BackgroundColor )
p o s i t i o n of s l i d e r , get (0 ,
245 % g e t ( h O b j e c t , Min ) and g e t ( defaultUicontrolBackgroundColor ) )
h O b j e c t , Max ) t o d e t e r m i n e r a n g e o f 280 s e t ( hObject , BackgroundColor , [ . 9 . 9
slider .9]) ;
246 L= g e t ( h a n d l e s . s l i d e r 5 , V a l u e ) 281 end
247 s e t ( handles . text6 , s t r i n g ,L) 282

248 283

249 % E x e c u t e s d u r i n g o b j e c t c r e a t i o n , 284 % E x e c u t e s on b u t t o n p r e s s i n
after setting all properties . pushbutton2 .
250 f u n c t i o n s l i d e r 5 C r e a t e F c n ( hObject , 285 f u n c t i o n pushbutton2 Callback ( hObject ,
eventdata , handles ) eventdata , handles )
251 % hObject h a n d l e t o s l i d e r 5 ( s e e GCBO) 286 % hObject handle to pushbutton2 ( see
GCBO)
SIGNAL ANALYSIS, OCTOBER 2017 9

287 % eventdata r e s e r v e d t o be d e f i n e d i n 339 A1=A11 ;


a f u t u r e v e r s i o n o f MATLAB 340 A2=A22 ;
288 % handles s t r u c t u r e w i t h h a n d l e s and 341 X= [A1 o n e s ( 1 , l e n g t h ( t 1 ) ) A2 o n e s ( 1 , l e n g t h
u s e r d a t a ( s e e GUIDATA) ( t 2 ) 2) A1 o n e s ( 1 , l e n g t h ( t 3 ) ) ] ;
289 L = g e t ( h a n d l e s . s l i d e r 5 , Value ) 342 p l o t ( T , [ xb ; X ] )
290 M = g e t ( h a n d l e s . s l i d e r 6 , Value ) 343 a x i s ([ t / 2 t / 2 A10.5 A2 + 0 . 5 ] )
291 A11 = g e t ( h a n d l e s . s l i d e r 3 , V a l u e ) ; 344 end
292 A22 = g e t ( h a n d l e s . s l i d e r 4 , V a l u e ) ; 345 S= (Xxb )
293 T r i a n g u l a r = g e t ( h a n d l e s . r a d i o b u t t o n 2 , 346 p l ot (T, S)
Value ) ;
294 Escalon = g e t ( h a n d l e s . r a d i o b u t t o n 1 , Value
) ;
295 axes ( handles . axes3 ) ;
296 i f ( T r i a n g u l a r ==1)
297 t =L ;
298 t 1 =[ 0.5 t : 0 . 0 0 1 : 0 . 0 0 1 ] ;
299 t2 =[0:0.001:0.5 t ] ;
300 T=[ 0.5 t : 0 . 0 0 1 : 0 . 5 t ] ;
301 A=A11 ;
302 B ( 1 ) =A / 2 ;
303 f o r i = 2 : 1 :M
304 B( i ) = (A / ( ( i 1) ( i 1) p i p i ) ) ((A c o s ( ( i
1) p i ) ) / ( ( i 1) ( i 1) p i p i ) ) ;
305 end
306 xb=B ( 1 ) ;
307 f o r i = 1 :M
308 xb=B ( i ) 2 c o s ( ( 2 p i / t ) ( i 1) . T ) +xb ;
309 end
310 t =L ;
311 T=[ 0.5 t : 0 . 0 0 1 : 0 . 5 t ] ;
312 A=A11 ;
313 X1 = [ ( ( ( A / ( t / 2 ) ) ) t 1 ) +A ] ;
314 X2 = [ ( ( ( A / ( t / 2 ) ) ) t 2 ) +A ] ;
315 X= [X1 X2 ] ;
316 p l o t ( T , [ xb ; X ] )
317 a x i s ([ t / 2 t / 2 0 A ] )
318 end
319 i f ( E s c a l o n ==1)
320 t =L ;
321 T=[ 0.5 t : 0 . 0 0 1 : 0 . 5 t ] ;
322 A1=A11 ; A2=A22 ;
323 f o r i = 2 : 2 :M
324 B( i ) = s i n ( ( i 1) p i / 2 ) ( ( A2A1 ) / ( ( i 1) p i ) )
+ s i n ( ( i 1) p i ) ( ( A1 ) / ( ( i 1) p i ) )
325 end
326 B ( 1 ) = (A1+A2 ) / 2 ;
327 f o r i = 3 : 2 :M1
328 B( i ) =0;
329 end
330 xb=B ( 1 ) ;
331 f o r i = 1 :M
332 xb=B ( i ) 2 c o s ( ( i 1) ( 2 p i / t ) . T ) +xb ;
333 end
334 t =L ;
335 t 1 =[ 0.5 t : 0 . 0 0 1 : 0 . 2 5 t ] ;
336 t 2 =[ 0.25 t : 0 . 0 0 1 : 0 . 2 5 t ] ;
337 t3 =[0.25 t : 0.0 01: 0.5 t ] ;
338 T=[ 0.5 t : 0 . 0 0 1 : 0 . 5 t ] ;

También podría gustarte