• No se han encontrado resultados

TUTORIAL DE SEÑALES EN MATLAB

N/A
N/A
Protected

Academic year: 2021

Share "TUTORIAL DE SEÑALES EN MATLAB"

Copied!
22
0
0

Texto completo

(1)
(2)

SEÑALES ELEMENTALES

El objeto básico usado en MATLAB es una matriz numérica con la posibilidad de almacenar números complejos. Los datos encontrados en el estudio de señales y sistemas son siempre, muy bien representados en forma de matrices. En esta sección se usará MATLAB para la generación de señales elementales como lo son las señales exponenciales, senoidales, etc.

El ToolBox de procesamiento de señales de MATLAB posee una larga variedad de funciones para la generación de señales, estas señales requieren de una representación vectorial de la variable tiempo, de manera continua o discreta. Para realizar una simulación de un intervalo continuo, se usa un vector de valores discretos con un intervalo de muestreo muy pequeño.

El siguiente comando genera un vector llamado t de valores que representan la variable tiempo, con un intervalo de muestreo de 1ms entre 0 y 1seg.

t = 0:0.001:1;

Para generar un vector llamado n de valores que representan la variable tiempo para una señal discreta en el intervalo de 0 a 1000, se puede usar el siguiente comando.

n = 0:1000;

Después de creado el vector que representa la variable tiempo, es posible iniciar el desarrollo de alguna señal de interés.

En MATLAB una señal discreta en el tiempo se representa exactamente, porque los valores de la señal son representados como los elementos de un vector. Sin embargo las señales de tiempo continuo en MATLAB son tan solo aproximaciones. La aproximación consiste de un vector cuyos elementos son muestras de la verdadera señal de tiempo continuo. Cuando se usa esta técnica para la representación de señales continuas es importante escoger el intervalo de muestreo lo suficientemente pequeño para asegurar que las muestras capturan todos los detalles de la señal.

SEÑALES PERIODICAS

La generación de señales periódicas tales como ondas cuadradas y triangulares es una actividad muy fácil de realizar en MATLAB. Consideremos primero la generación de una onda cuadrada de amplitud A, frecuencia fundamental w (medida en radianes por segundo) y ciclo útil rho. Recordemos que el ciclo útil es la fracción de cada periodo en donde la señal es positiva.

Para generar dicha señal se puede usar el siguiente conjunto de comandos:

>> A = 1;

(3)

>> rho = 0.5; >> t = 0:0.001:1; >> sq = A*square(w*t+rho); >> plot(t,sq);

El resultado se puede observar en la siguiente gráfica:

En la segunda línea, pi es una función interna de matlab que calcula el número más cercano a la constante PI en formato de coma flotante. El último comando es usado para ver la señal generada. El comando plot dibuja líneas conectando los valores sucesivos de la señal y así da la apariencia de una señal en tiempo continuo.

Consideremos ahora la generación de una onda triangular de amplitud A, frecuencia fundamental w y ancho Wdt . El periodo de la onda triangular será T con el máximo valor de la señal ocurriendo en t = WT . El comando básico para generar esta señal es:

A * sawtooth(w * t + Wdt)

El listado complete de comandos sería: >> A = 1; >> w = 10 * pi; >> Wdt = 0.5; >> t = 0:0.001:1; >> tri = A*sawtooth(w * t + Wdt); >> plot(t,tri);

(4)

El resultado se puede visualizar en la siguiente gráfica.

Como se menciono anteriormente, una señal generada en MATLAB es inherentemente de naturaleza discreta. Para visualizar una señal en tiempo discreto se puede hacer uso del comando stem. Específicamente stem( n , x ),bosqueja los datos contenidos en el vector x como una señal de tiempo discreto con los valores de tiempo definidos por el vector n. Los vectores n y x deben tener dimensiones compatibles, es decir deben tener el mismo número de elementos. El siguiente ejemplo genera una señal cuadrada en tiempo discreto de amplitud igual a la unidad, ciclo útil igual a 50% y una frecuencia angular igual a : >> A = 1; >> omega = pi / 4; >> rho = 0.5; >>n = -10:10; >>x = A*square(omega*n +rho); >>stem(n,x);

El resultado se puede ver en la siguiente gráfica:

SEÑALES EXPONENCIALES

Las señales exponenciales se pueden clasificar según su comportamiento en decrecientes y crecientes. El comando en MATLAB para generar una señal exponencial decreciente es:

B * exp(-a*t);

Para generar una señal exponencial creciente se usa el comando:

B * exp( a * t);

En ambos casos el parámetro a es positivo. El siguiente ejemplo muestra la generación de una señal exponencial decreciente:

>> B = 5; >> a = 6;

>> t = 0:0.001:1;

>> x = B * exp( -a * t ); % señal exponencial decreciente. >> plot( t, x );

(5)

Siendo el resultado como sigue:

Para la generación de una señal exponencial creciente se puede usar el siguiente ejemplo: >> B = 1; >> a = 5; >> t = 0:0.001:1; >> x = B * exp( a * t ); >> plot( t, x ) ;

Existen casos particulares en los que la base de la operación de exponenciación no es el número irracional e, puede ser cualquier otro número. Para estos casos se usa una notación diferente la cual esta basada en la utilización del símbolo ^. Observando el ejemplo que sigue se nota que r es un número mientras que n es un vector, por lo tanto se usa una combinación del símbolo exponenciación con el carácter “.” Lo cual significa que a cada valor del vector le será aplicada la función.

El siguiente ejemplo genera la señal:

(6)

>> B = 1; >> r = 0.85; >> n = -10:10; >> x = B * r .^ n; >> stem( n , x ); SEÑALES SENOISOIDALES.

MATLAB también contiene funciones trigonométricas que pueden ser usadas para generar señales senosoidales. Una señal coseno de amplitud A, frecuencia w0 (medida en radianes por segundo) y ángulo de fase phi (en radianes) se obtiene usando el comando:

A * cos ( w0 * t + phi);

Alternativamente se puede usar la función seno para generar una señal senosoidal

usando el siguiente comando:

A * sin ( w0 * t + phi );

En seguida se muestran ejemplos para cada uno de las señales respectivamente: >> A = 4; >> w0= 20 * pi; >> phi = pi / 6; >> t = 0:0.001:1; >> coseno = A * cos( w0 * t + phi); >> plot(t,coseno) ;

(7)

>> A = 0.5;

>> w0 = 20 * pi; >> phi = pi / 2; >> t = 0:0.001:1;

>> seno = A * sin( w0 * t + phi); >> plot(t,seno);

SEÑALES SENOISOIDALES CON AMORTIGUACIÓN EXPONENCIAL.

En todos los comandos de generación de señales descritos anteriormente, se ha generado la amplitud deseada de las señales, realizando una multiplicación por un escalar A. Esta operación se describe usando el símbolo asterisco “*”. Supongamos que se desea multiplicar una señal senosoidal por una señal exponencial para producir como resultado una señal con amortiguación exponencial. La siguiente ecuación describe mejor el supuesto caso:

Debido a que tanto la componente senosoidal de la señal como la exponencial son vectores, el procedimiento para la generación de la señal final requiere de una multiplicación de dos vectores elemento por elemento. En MATLAB este tipo de multiplicación se representa usando el símbolo punto (.) seguido por el símbolo asterisco (*). Así el comando para generar la ecuación anterior sería;

A * sin( w0 * t + phi) .* exp ( -a * t);

Y un ejemplo completo sería:

>> A = 60;

>> w0 = 20 * pi; >> phi = 0;

>> a = 6;

>> expsen = A * sin( w0 * t + phi) .* exp ( -a * t); >>plot(t,expsen);

Dando como resultado la siguiente gráfica:

(8)

La versión discreta de la misma señal se puede obtener haciendo uso de los comandos mostrados anteriormente de la siguiente manera:

>> A = 10; >> a = -0.1; >> w0 = 2 * pi / 12; >> phi = 0; >> n = -10 : 10;

>> x = A * sin( w0 * n + phi);

>> y = exp( a * n); >> z = x .* y; >> tem(n,z)

SEÑALES IMPULSO, PASO Y RAMPA.

En MATLAB, el comando ones(M, N) genera una matriz de unos de tamaño M x N, y el comando zeros(M, N)es una matriz de ceros del mismo tamaño. Se puede hacer uso de estas dos matrices para generar dos señales comúnmente usadas.

(9)

Una señal paso de amplitud uno, puede ser generada con el siguiente comando.

U = [zeros(1, 10), ones(1, 11)];

Para la versión continua creamos un vector que represente el tiempo el cual tenga muestras de un intervalo separados por valores muy pequeños mientras que para la representación de esta señal en tiempo discreto creamos un vector que represente el tiempo el cual debe tener valores separados por una unidad.

Los comandos y los resultados para ambos tipos de señal se muestran a continuación: >> u=[zeros(1,10),ones(1,11); >> t=-1:0.1:1; >> plot(t,u) >> u=[zeros(1,10), ones(1,11)]; >> n=-10:10; >> stem(n,u)

(10)

De los comandos anteriores es de notar que para poder usar las funciones plot() y stem(), es requisito que los vectores (t y u) ó (n y u) tengan iguales dimensiones. Por esta razón el vector u se forma como una composición de diez ceros y 11 unos, debido a que los arreglos t y n, tienen dimensión 21 dado que incluyen un elemento central el cual es el número cero. Para probar este hecho, se puede hacer uso de otra función de MATLAB llamada size() que devuelve como resultado un vector con las dimensiones de la matriz que se le pasa como parámetro así:

>> size(n) ans = 1 21 >> size(u) ans = 1 21 >> size(t) ans = 1 21  Señal Impulso:

La versión discreta de la señal impulso se puede también generar con ayuda de las funciones zeros() y ones(), realizando una composición como sigue:

>> delta = [ zeros( 1 ,10 ), 1 , zeros( 1 ,10 ) ]; >> n = -10:10; >> stem(n,delta);

Una versión continua podría evidentemente generarse usando la misma técnica que se usó en el apartado anterior, sin embargo es necesario aumentar el número de muestras a fin de maximizar la pendiente de la señal, en seguida se verán dos ejemplos con diferentes número de muestras en el mismo intervalo de tiempo, como se puede ver la correspondencia entre las dimensiones de los vectores se mantienen así que al aumentar el tamaño de muestras del vector que representa el tiempo es necesario aumentar el valor de ceros y de unos con el cual se esta creando la señal.

En el ejemplo se puede ver que a mayor numero de muestras, la pendiente de la señal se hace mayor y la aproximación a la señal verdadera es más cercana.

(11)

>>delta=[zeros(1,10),1,zeros(1,10)]; >>t=-1:0.1:1; >>plot(t,delta) >> delta = [ zeros( 1 , 1000 ), 1 , zeros( 1 , 1000 ) ]; >> t=-1:0.001:1; >> plot(t,delta)  Señal Rampa

Para generar la señal rampa, tan solo es necesario recordar que esta función puede ser creada, como la composición de una recta Y(x) = x a partir de cero y de la recta Y(x) = 0 para valores de x menores de cero, así la versión discreta y continua se muestran a continuación: >> rampa1=n1; >> n1=0:30; >> rampa1=n1; >> rampa = [zeros(1,29),rampa1]; >> stem(n,rampa) >> t1=0:0.1:10;

(12)

>> rampa1=t1; >> rampa=[zeros(1,101),rampa1]; >> t2=-10:0.1:0; >> t=[t2,t1]; >> plot(t,rampa) EXPERIMENTOS

1. Desarrollar un conjunto de comandos MATLAB para aproximar las siguientes señales periódicas en tiempo continuo, dibujando 5 ciclos de cada una:

a. Onda Cuadrada, de amplitud 5 Volts, frecuencia fundamental 20 Hz y ciclo útil del 60%.

b. Señal diente de sierra, amplitud 5 Volts y frecuencia fundamental 20Hz

2. La solución a una ecuación diferencial esta dada por la siguiente expresión:

Usando MATLAB, grafique la solución de la ecuación en el siguiente intervalo [0,5] con una frecuencia de muestreo de 100 Hz

3. Repita el problema número dos para la siguiente expresión:

4. Una señal senosoidal con amortiguación exponencial esta definida por la siguiente expresión:

Donde el parámetro a es variable y toma valores sobre el siguiente conjunto: 500, 750, 1000. Usando MATLAB, investigar el efecto de variar dicho parámetro en la señal en el intervalo [-2,2].

(13)

REPRESENTACIONES DE FOURIER PARA LAS SEÑALES

Existen cuatro representaciones distintas de Fourier, cada una aplicable a

diferentes tipos de señales. Estas cuatro clases están definidas por las propiedades

de periodicidad de una señal y si el tiempo es de tipo continuo o discreto. Las

señales periódicas tienen representación en series de Fourier. La Serie de Fourier

(FS) aplica a señales periódicas de tiempo continuo mientras que la Serie

Discreta de Fourier (DTFS) aplica a señales periódicas de tiempo discreto. Las

señales no periódicas tienen representación en forma de transformada. Si la señal

es continua en el tiempo y no periódica, la representación es llamada

Transformada de Fourier (FT). Si la señal es discreta en el tiempo y no periódica

entonces la representación usada es la transformada de Fourier en tiempo discreto

(DTFT). La siguiente tabla ilustra la relación entre las propiedades de tiempo de

una señal y la representación de Fourier adecuada.

Tiempo Periódicas No periódicas

Continuas Series de Fourier

( FS ) Transformada de Fourier ( FT ) Discretas Series discretas de Fourier ( DTFS ) Transformada discreta de Fourier ( DTFT)

La siguiente tabla muestra las relaciones matemáticas utilizadas para calcular las

representaciones de Fourier.

Tiempo Periódicas No periódicas

Continuas

Series de Fourier

Transformada de Fourier

(14)

Discretas

Series discretas de Fourier

Transformada discreta de Fourier

La Transformada Discreta de Fourier (DTFS)

La DTFS es la única representación de Fourier que es de valor discreto tanto en

el tiempo como en la frecuencia y de esta manera implícitamente conveniente

para una implementación computacional en MATLAB. Las expresiones

utilizadas para esta representación son fácilmente implementables en MATLAB

como archivos. Sin embargo los comandos built-in de MATLAB fft y ifft pueden

también ser utilizados para evaluar la DTFS. Dado un vector llamado x de

longitud N representando un periodo de una señal periódica x[n]. el comando:

>> X=fft(x)/N

Produce un vector llamado X de longitud N que contiene los coeficientes de la

DTFS. Matlab asume que el periodo evaluado en la señal es desde 0 hasta N-1,

de manera que el primer elemento de x y X corresponden a x[0] y X[0]

respectivamente, mientras que los últimos elementos corresponden a x[N-1]

y X[N-1]. Nótese que la división porN es completamente necesaria, debido a que

el comando fft evalúa la siguiente expresión sin realizar la división porN.

Similarmente, dados los coeficientes de una DTFS en un vector llamado X el

comando:

>>x=ifft(X)*N

Produce un vector x que representa un periodo de la señal en el tiempo. Nótese

que el comando ifft debe estar multiplicado por N para evaluar la siguiente

ecuación.

(15)

Los comandos fft e ifft son computados usando un algoritmo rápido o

numéricamente eficiente, conocido como “Fast Fourier Transform”.

Considere el siguiente ejemplo:

Determinar los coeficientes DTFS para la siguiente señal:

La señal tiene un periodo de 24, de manera que tan solo se hace necesario definir

un periodo y evaluar sobre este periodo la DTFS. Los comandos usados para

realizar dicho cálculo son:

>> n = 0:23;

>> x = ones(1,24) + sin( (n * pi / 12) + (3 * pi / 8 ) );

>> X = fft(x)/24;

El resultado teórico del ejemplo es el siguiente:

El resultado obtenido mediante los comandos presentados anteriormente es:

X =

Columns 1 through 5

1.0000 0.4619 - 0.1913i 0.0000 + 0.0000i -0.0000 + 0.0000i -0.0000

+ 0.0000i

(16)

0.0000 0.0000i 0.0000 0.0000i 0.0000 0.0000i 0.0000 + 0.0000i

-0.0000 - -0.0000i

Columns 11 through 15

-0.0000 - 0.0000i -0.0000 - 0.0000i 0 -0.0000 + 0.0000i -0.0000 +

0.0000i

Columns 16 through 20

0.0000 + 0.0000i 0.0000 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

-0.0000 + -0.0000i

Columns 21 through 24

-0.0000 - 0.0000i -0.0000 - 0.0000i 0.0000 - 0.0000i 0.4619 + 0.1913i

Como se puede ver, tres componentes tienen valor diferente de cero.

Un uso común de la transformada de Fourier, es encontrar las componentes

frecuenciales de una señal en el dominio del tiempo que esta contaminada con

ruido. Considérese dos señales senoidales que tienen frecuencias fundamentales

de 50Hz y 120Hz, luego considérese estas señales contaminadas con ruido

aleatorio. Los comandos para generar una señal con las especificaciones

anteriormente mostradas son los siguientes:

>> t = 0:0.001:0.6;

>> x = sin ( 2 * pi * 50 * t ) + sin ( 2 * pi *

120 * t );

>> y = x + 2 * randn ( size ( t ) );

>> plot( 1000 * t (1:50), y (1:50) )

(17)

Es de gran dificultad identificar las componentes de frecuencia mirando la señal

original. Sin embargo al realizar la conversión de esta señal al dominio de la

frecuencia, la identificación de estas componentes se hace más sencilla. La

conversión de la señal al dominio de la frecuencia se hace calculando la

Transformada R ápida de Fourier, tomando para el cálculo los primeros 512

puntos de la señal. El espectro de potencia es una medida de la potencia a varias

frecuencias, y este puede ser calculado con los siguientes comandos.

>>Pyy = Y .* conj (Y) / 512;

Para realizar la gráfica se puede tener en cuenta que la información que aparece

en el arreglo Pyy es por propiedades de la transformada, simétrica con respecto a

la frecuencia media, es decir que si tenemos 512 puntos de muestra, la señal que

esta almacenada en el arreglo es simétrica con respecto a la muestra 256, por lo

tanto dibujar las ultimas 256 muestras del arreglo será completamente

innecesario. De manera que para visualizar el espectro de potencia los comandos

deben ser como se muestran a continuación:

>> f = 1000*(0:256)/512;

>> plot(f,Pyy(1:257))

Para ver todas las muestras y entender la característica de simetría descrita

anteriormente se pueden utilizar los siguientes comandos:

>> f = 1000*(0:511)/512;

>> plot(f,Pyy)

(18)

Del espectro de potencia se puede visualizar que las componentes con mayor

frecuencia se encuentran a los 50 y 120 Hz respectivamente. Comprobando así

que las señales de las cuales se formo la señal contaminada con ruido tienen estas

frecuencias fundamentales.

Representación en el dominio del tiempo

Los computadores digitales son ideales para la implementación de descripciones

en el dominio del tiempo de sistemas discretos, porque naturalmente el

computador almacena y manipula secuencias de números. Por ejemplo, la suma

de convolución describe la relación entre la entrada y la salida de un sistema de

tiempo discreto, y es fácilmente evaluada en un computador como la suma de

productos de números. En contraste, los sistemas de tiempo continuo, son

descritos en términos de funciones continuas, las cuales no son fácilmente

representadas o manipuladas en un computador digital. Por ejemplo, la salida de

un sistema en tiempo continuo esta descrita por la integral de convolucion. La

evaluación de la integral de convolucion con un computador requiere el uso de

integración numérica o de técnicas de manipulación simbólica, ambas fuera del

alcance de este tutorial. Por lo tanto la exploración con Matlab se centra en el

estudio de sistemas en tiempo discreto.

Una segunda limitación en la exploración de señales y sistemas es la que se

impone por la memoria finita o por la capacidad de almacenamiento finita que es

inherente en un computador digital. Por lo tanto se manejaran únicamente señales

de duración finita. Por ejemplo si la respuesta al impulso de un sistema tiene

duración infinita y la entrada es de duración infinita, entonces la suma de

convolución equivale a la suma de un infinito número de productos. Aun si fuese

posible almacenar señales de longitud infinita en el computador, la suma infinita

podría no ser calculada en una cantidad finita de tiempo. Debido a esta

limitación, el comportamiento de un sistema en respuesta una señal de longitud

infinita podría a menudo ser inferida de su respuesta a una señal de longitud

finita que presente ciertas particularidades.

CONVOLUCIÓN

Es de recordar que la suma convolución expresa la salida de un sistema de tiempo discreto en términos de la entrada y la respuesta al impulso del sistema. Matlab tiene una función

(19)

llamada conv que evalúa la convolución de señales de tiempo discreto de duración finita. Si x y h son vectores representado señales, entonces el siguiente comando de Matlab genera un vector llamado y representando la convolución de la señales representadas por x yh.

y = conv(x, h)

El número de elementos en el vector y es dado por la suma de el numero de elementos en x y h menos uno. Nótese que se debe conocer el tiempo de origen de las señales representadas por x y h con el fin de determinar el tiempo de origen de la convolución. En general, si el primer elemento de x corresponde al tiempo

n=k

x y el primer elemento de h corresponde a

n=k

h, entonces el primer elemento de y corresponde al tiempo

n= k

x

+k

h

.

Para ilustrar este hecho, considere el siguiente ejemplo:

 Asuma el sistema LTI el cual tiene la siguiente respuesta al impulso.

Determine la salida de este sistema en respuesta a la siguiente entrada.

Aquí el primer elemento diferente de cero en la respuesta al impulso del sistema ocurre en el tiempo n = -1 y el primer elemento de la entrada x ocurre en el tiempo n = 0. La anterior convolución se puede calcular en Matlab de la siguiente manera:

>> h = [1, 2, 1]; >> x = [2, 3, -2]; >> y = conv(x,h) y = 2 7 6 -1 -2 >> n = -1:3; >> stem(n,y);

(20)

El primer elemento en el vector y corresponde al tiempo n = 0 + (-1 ) = -1.

En el siguiente ejemplo, se determinará la salida de un sistema con respuesta al impulso dada por: Y entrada

Se puede en este caso usar el comando conv para calcular la respuesta del sistema. En este caso, la respuesta al impulso consiste de diez unos consecutivos comenzando en el tiempo n

= 0, y la entrada consiste de cinco unos consecutivos comenzando en el tiempo n = 2. Estas

señales pueden ser definidas en Matlab usando los siguientes comandos:

>> h = ones(1,10); >> x = ones(1,5);

La salida se obtiene y es graficada usando los siguientes comandos: >> n = 2:15; >> y = conv(x, h); >> stem(n, y);

En este ejemplo, el primer elemento del vector y corresponde al tiempo n = 2 +

0 como se muestra en la siguiente figura.

RESPUESTAS EN ESTADO ESTABLE A ENTRADAS ESCALÓN UNITARIO

La respuesta escalón, es la salida de un sistema en respuesta a una señal de entrada escalón unitario. Esta respuesta es infinita en general. Sin embargo, es posible evaluar los primeros p valores de la respuesta escalón usando la función conv.

Si la respuesta al impulso es cero para los tiempos

n<k

h, entonces el cálculo se realiza convolucionando los primeros p valores de h[n] con una señal paso de longitud p. Es decir se construye un vector h’ con los primeros pvalores diferentes de cero de la respuesta al

(21)

impulso h, luego se define una señal paso de duración p con el siguiente comando u=ones(1,p), y entonces se evalúa la siguiente convolución s = conv(u,h). El primer elemento de s corresponde a el tiempo

k

h y los primeros p valores de s representan los primeros p valores de la respuesta paso. Los valores sobrantes de s no corresponden a la respuesta paso.

Por ejemplo se podría determinar los 50 primeros valores de la respuesta paso del sistema con la siguiente respuesta al impulso:

Con a = 0.9 los comandos de Matlab serían: >> h = (-0.9).^[0:49]; >> u = ones(1,50); >> s= conv(u, h);

El vector s tienen 99 valores, los primeros 50 corresponden a la respuesta impulso y es mostrada en la siguiente figura usando el siguiente comando:

>>stem([0:49],s(1:50));

En este ultimo comando se pasan a la función stem dos parámetros diferentes a los mostrados en los anteriores ejemplos, el primero es un vector anónimo de 50 posiciones desde 0 hasta 49 que representa el tiempo, se dice que el vector es anónimo puesto que no se le ha definido algún nombre. El segundo parámetro es el vector s que se había calculado anteriormente, pero en este caso se agrega la fracción de código (1:50) que indica a Matlab que debe usar tan solo los elementos de s que están almacenados desde la posición 1 hasta la 50.

(22)

Referencias

Documento similar

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

En cada antecedente debe considerarse como mínimo: Autor, Nombre de la Investigación, año de la investigación, objetivo, metodología de la investigación,

La Normativa de evaluación del rendimiento académico de los estudiantes y de revisión de calificaciones de la Universidad de Santiago de Compostela, aprobada por el Pleno or-

Gastos derivados de la recaudación de los derechos económicos de la entidad local o de sus organis- mos autónomos cuando aquélla se efectúe por otras enti- dades locales o

Por PEDRO A. EUROPEIZACIÓN DEL DERECHO PRIVADO. Re- laciones entre el Derecho privado y el ordenamiento comunitario. Ca- racterización del Derecho privado comunitario. A) Mecanismos

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados