Vous êtes sur la page 1sur 5

ESCUELA POLITÉCNICA NACIONAL.

EDISON CASA PREPARATORIO PRÁCTICA 3 1

ANÁLISIS ESPECTRAL EN MATLAB Y SIMULINK.


Edison Casa
Edison.casa@epn.edu.ec
Ingeniería Eléctrica y Electrónica – Laboratorio de Comunicación Digital
Escuela Politécnica Nacional

I. INTRODUCCIÓN TEÓRICA Designfilt.

Al pasar la señal al dominio de la frecuencia se 𝑑 = 𝑑𝑒𝑠𝑖𝑔𝑛𝑓𝑖𝑙𝑡(𝑟𝑒𝑠𝑝, 𝑁𝑎𝑚𝑒, 𝑉𝑎𝑙𝑢𝑒)


obtienen componentes de frecuencia con diferentes
amplitudes y el conjunto de todas las componentes Diseña un digitalFilter, con tipo de respuesta resp,
de frecuencia conforma lo que se llama el espectro que pueden ser:
de frecuencia. Otro concepto fundamental del
análisis de señales es saber reconocer una señal de 'lowpassfir'
potencia de una señal de energía, esto depende de si
'lowpassiir'
la señal es periódica o aperiódica
'highpassfir'

II. OBJETIVOS: 'highpassiir'


- Aplicar los conceptos relacionados a la teoría de 'bandpassfir'
análisis de señal en el dominio del tiempo y la
frecuencia.
'bandpassiir'
'bandstopfir'
- Utilizar SIMULINK para analizar señales en el
dominio del tiempo y la frecuencia. 'bandstopiir'
'differentiatorfir'
III. DESARROLLO DEL CUESTIONARIO 'hilbertfir'
A. Leer y entender el marco teórico expuesto en las 'arbmagfir'
hojas guías.
Se puede especificar aún más el filtro usando un
conjunto de Name,Value. [2]
B. Consultar sobre las funciones de MatLab para
procesamiento de señales: filter, designfilt, fvtool,
filtfilt, freqz, randn. Fatvool: Abre FVTool y muestra la respuesta en
magnitud del filtro digital definida con numerador,
Filter: filtra los datos de entrada x utilizando b, y el denominador, a. Con FVTool se puede
una función de transferencia racional definida por obtener la respuesta de fase, el retardo de grupo, la
los coeficientes del numerador y del respuesta de impulso, la respuesta de paso, el
denominador b y a respectivamente. [1] gráfico de polo cero y los coeficientes del filtro. [3]

𝑓𝑣𝑡𝑜𝑜𝑙(𝑏, 𝑎)

𝑦 = 𝑓𝑖𝑙𝑡𝑒𝑟(𝑏, 𝑎, 𝑥)
Filtfilt: Realiza el filtrado digital de fase cero
procesando los datos de entrada x, tanto en sentido
ESCUELA POLITÉCNICA NACIONAL. EDISON CASA PREPARATORIO PRÁCTICA 3 2

directo Como inverso. Después de filtrar los datos cuando todos los elementos de condicion son false
en la dirección de avance, invierte la secuencia (es decir, cero). [8]
filtrada y la ejecuta nuevamente a través del
filtro.[4] while condición
sentencias
Freqz: Devuelve el n vector de respuesta de end
frecuencia de punto h, y el vector de frecuencia
angular correspondiente w para el filtro digital con If: Es habitual en la programación, que según cierto
numerador y denominador coeficentes polinomiales valor de una variable, se requieran distintas
alacenados en b y a, respectivamente. [5] acciones. La forma más simple es cuando si cierta
variable cumple la condición señalada, se requiere
[ℎ, 𝑤] = 𝑓𝑟𝑒𝑞𝑧(𝑏, 𝑎, 𝑛) ejecutar alguna acción. [9]

if condición
Randn: Devuelve una matriz nxn de números Sentencias
aleatorios normalmente distribuidos. [6] end

𝑋 = 𝑟𝑎𝑛𝑑𝑛(𝑛) Switch:La sentencia switch verifica la expresión, y


C. Consultar sobre la sintaxis de lazos de ejecuta las acciones ubicadas en el case cuyo valor
repetición (for, while) y de condición (if, switch) sea el mismo. Si el resultado no concuerda con
usados en Matlab. ningún case, ejecuta las acciones correspondientes a
otherwise. [10]
For:La sentencia for repite un conjunto de switch condición del switch
sentencias un número predeterminado de veces. La case condición del case
sentencia for de MATLAB es muy diferente y no sentencias
tiene la generalidad de la sentencia for de case condición del case
C/C++/Java. La siguiente construcción ejecuta sentencias
sentencias con valores de i de 1 a n, variando de uno
en uno. [7] ...
otherwise
acciones por defecto
for i=1:n
end
sentencias
end
D. Consultar y detallar el funcionamiento de los
o bien bloques de Simulink que permitan obtener el
espectro de frecuencia de una señal.

for i=vectorValores FFT


sentencias
end

While: La estructura del bucle while es muy similar El bloque FFT calcula la transformada rápida de
a la de C/C++/Java, donde condicion puede ser una Fourier (FFT) a través de la primera dimensión de
expresión vectorial o matricial. Las sentencias se una matriz de entrada [11].
siguen ejecutando mientras haya elementos distintos
de cero en condicion, es decir, mientras haya algún
o algunos elementos true. El bucle se termina
ESCUELA POLITÉCNICA NACIONAL. EDISON CASA PREPARATORIO PRÁCTICA 3 3

Bloque Fourier E. GrGraficar en el tiempo el producto de


funciones 𝑔1(𝑡) y 𝑔2(𝑡) en los siguientes casos:
𝑔1(𝑡) = 𝑎1 ∗ sin(2 ∗ 𝜋 ∗𝑓1 ∗ 𝑡),
𝑔2(𝑡) Una función dada por la siguiente figura
El bloque de Fourier realiza un análisis de Fourier cuya frecuencia es de t1=50%T y de amplitud A..
de la señal de entrada en una ventana en ejecución
de un ciclo de la frecuencia fundamental de la señal
[12].

FFT HDL Optimized

Para los valores de frecuencia 𝑓1 = 100 KHz, 𝑓2 =


1 KHz, A= 10, O= 2.
clc;
El bloque proporciona dos arquitecturas para clear all;
close all;
optimizar el rendimiento o el área. Se utiliza la
f1 = 100000;
arquitectura de transmisión Radix 2 ^ 2 para f2 = 1000;
aplicaciones de alto rendimiento. Esta arquitectura A = 10;
admite datos de entrada escalares o vectoriales. O=2;
Puede lograr un rendimiento de giga-muestra por fs=500*f2 %frecuencia de muestreo
segundo (GSPS) utilizando la entrada vectorial. Use t = 0:1/(5*fs):0.001;
la arquitectura Radix 2 de ráfaga para una g1 = 3*sin(3*pi*f1*t);
implementación de recursos mínimos, g2 =4+O-(5)*square(0.5*pi*f1*2*t)+1;
especialmente con tamaños FFT grandes. Su s =g1.*g2;
hold on
sistema debe ser capaz de tolerar datos en ráfagas y
plot(t,g2,'r');
una latencia más alta. Esta arquitectura solo admite plot(t,g1,'m')
datos de entrada escalares. El bloque acepta datos plot(t,s,'g');grid on
reales o complejos [13].

2-D FFT

El bloque FFT 2-D calcula la transformada rápida


de Fourier. El bloque realiza el cálculo de una
matriz de entrada bidimensional de M por N en dos
pasos. Primero, calcula la FFT unidimensional a lo
largo de una dimensión, fila o columna. Luego
calcula la FFT de la salida del primer paso a lo
largo de la otra dimensión, columna o fila [14].
Figura 1. Señales Multiplicadas.
ESCUELA POLITÉCNICA NACIONAL. EDISON CASA PREPARATORIO PRÁCTICA 3 4

F. Elaborar una GUI en Matlab, donde se plot(t,y)


visualicen dos señales, una señal cuadrada
simétrica y una señal diente de sierra; de modo que Código para frecuencia de onda diente de sierra:
la amplitud y la frecuencia sean ingresadas
mediante una barra deslizante. (Nota: Los rangos Frec2=get(handles.Frec2,'Value');
de amplitud deben ser de 1 a 10, y los de frecuencia set(handles.text11,'String',fix(Frec2)
);
de 10 a 10000 Hz). A2=get(handles.A2,'Value');
fs=500*Frec2;
t=0:1/fs:0.1;
y=A2*sawtooth(2*pi*Frec2*t);
axes(handles.axes2);
plot(t,y)

REFERENCIAS
[1] “MATLAB filter.” [Online]. Available:
https://la.mathworks.com/help/matlab/ref/filter.html?s
earchHighlight=filter&s_tid=doc_srchtitle [Accessed:
Figura 2. GUI realizado en Matlab 23-Abr-2019].
[2] “MATLAB designfilt.” [Online]. Available:
Código para amplitud de onda cuadrada: https://la.mathworks.com/help/signal/ref/designfilt.ht
ml?searchHighlight=designfilt&s_tid=doc_srchtitle
A1=get(handles.A1,'Value'); [Accessed: 23-Abr-2019].
Frec1=get(handles.Frec1,'Value'); [3] “MATLAB fvtool.” [Online]. Available:
set(handles.text8,'String', fix(A1)); https://la.mathworks.com/help/signal/ref/fvtool.html?s
fs=500*Frec1; earchHighlight=fvtool&s_tid=doc_srchtitle
t=0:1/fs:0.1; [Accessed: 23-Abr-2019].
y=A1*square(2*pi*Frec1*t,50); [4] “MATLAB filtfilt.” [Online]. Available:
https://la.mathworks.com/help/search.html?qdoc=filtfi
axes(handles.axes1);
lt&submitsearch= [Accessed: 23-Abr-2019].
plot(t,y) [5] “MATLAB freqz.” [Online]. Available:
https://la.mathworks.com/help/signal/ref/freqz.html?se
archHighlight=freqz&s_tid=doc_srchtitle [Accessed:
Código para frecuencia de onda cuadrada: 23-Abr-2019].
[6] “MATLAB randn.” [Online]. Available:
Frec1=get(handles.Frec1,'Value'); https://la.mathworks.com/help/matlab/ref/randn.html?
set(handles.text9,'String',fix(Frec1)) searchHighlight=randn&s_tid=doc_srchtitle
; [Accessed: 23-Abr-2019].
[7] “Matlab/Bucle for; Wikilibros.” [Online]. Available:
A1=get(handles.A1,'Value');
https://es.wikibooks.org/wiki/Matlab/Bucle_%C2%A
fs=500*Frec1; Bfor%C2%BB [Accessed: 23-Abr-2019].
t=0:1/fs:0.1; [8] “Matlab/Bucle while; Wikilibros.” [Online].
y=A1*square(2*pi*Frec1*t,50); Available:https://es.wikibooks.org/wiki/Matlab/Bucle
axes(handles.axes1); _«while» [Accessed: 23-Abr-2019].
plot(t,y) [9] “Matlab/Bucle if; Wikilibros.” [Online]. Available:
https://es.wikibooks.org/wiki/Matlab/Selector_%C2%
Código para amplitud de onda diente de sierra: ABif%C2%BB [Accessed: 23-Abr-2019].
[10] “Matlab/selector switch ; Wikilibros.” [Online].
Available:https://es.wikibooks.org/wiki/Matlab/Select
A2=get(handles.A2,'Value') or_%C2%ABswitch%C2%BB [Accessed: 23-Abr-
set(handles.text10,'String',fix(A2)); 2019].
Frec2=get(handles.Frec2,'Value'); [11] “MATLAB FFT.” [Online]. Available:
fs=500*Frec2; https://la.mathworks.com/help/dsp/ref/fft.html?search
t=0:1/fs:0.1; Highlight=FFT&s_tid=doc_srchtitle [Accessed: 23-
y=A2*sawtooth(2*pi*Frec2*t); Abr-2019].
axes(handles.axes2); [12] “MATLAB Bloque fourier.” [Online]. Available:
ESCUELA POLITÉCNICA NACIONAL. EDISON CASA PREPARATORIO PRÁCTICA 3 5

https://la.mathworks.com/help/signal/ref/fvtool.html?s
earchHighlight=fvtool&s_tid=doc_srchtitle
[Accessed: 23-Abr-2019].
[13] “MATLAB FFT HDL Optimized.” [Online].
Available:https://la.mathworks.com/help/dsp/ref/ffthdl
optimized.html?searchHighlight=FFT%20HDL%20O
ptimized.&s_tid=doc_srchtitle [Accessed: 23-Abr-
2019].
[14] “MATLAB 2-D FFT” [Online]. Available:
https://la.mathworks.com/help/vision/ref/2dfft.html?se
archHighlight=2-D%20FFT&s_tid=doc_srchtitle
[Accessed: 23-Abr-2019].

Vous aimerez peut-être aussi