1. Porque usamos el algoritmo FFT en Scilab?
Scilab al igual que Matlab tiene una gran coleccin de funciones para el
tratamiento de seales, como por
ejemplo, la convolucin, inversin de matrices, transformada rpida de Fourier
(FFT), etc.
Con las herramientas que me encuentro en Scilab para el tratamiento de seales
podr realizar entre otras cosas :
Anlisis e implementacin de filtros digitales, incluyendo respuesta en
frecuencia, retardo de grupo,retardo de fase. La implementacin de filtros
puede ser directa como utilizando tcnicas en el dominio dela frecuencia
basadas en la FFT.
Procesamiento de la FFT, incluyendo la transformacin base-2 y su
inversa, y la transformada parapotencias que no sean de dos.
Estimacin espectral : espectro de potencia.
Filtrado ptimo y suavizado : filtro de Kalman, filtro de la raz cuadrada
de Kalman, transformacin de Householder, filtro de Wiener,etc
La FFT ( Transformada rpida de Fourier ) y la DFT ( Transformada de
Fourier discreta ) :
La FFT es un algoritmo de gran eficiencia computacional para el clculo
de la DFT de secuencias de longitud finita discretas en el [Link]
de la definicin de la DFT se requieren para su calculo del orden de N2
multiplicaciones mientrasque la FFT requiere del orden de N log2N
multiplicaciones.
La definicin de la DFT DIRECTA para una secuencia finita x (n) de
longitud N es :
De la definicin anterior que X(k), la DFT de x(n), es peridica con
periodo N ( debido al hecho de quefijado n el trmino exp(-j2pnk/N) es
peridico con periodo N ).
La definicin de la llamada DFT INVERSA es :
2. Cual es la frecuencia de la portadora usadas en ejemplos 2 y 3?
Para el Ejemplo 2 es:
Para el Ejemplo 3 es: 250
3. Siga las siguientes instrucciones:
i) Crear un mensaje y una seal portadora con una funcin senoidal. Usar
los siguientes valores:
- Amplitud de la seal portadora = 5V
- Amplitud de la seal mensaje = 3V
- Frecuencia portadora = 100Hz
- Frecuencia modulada = 20Hz
t= 0:1/1000:1; // declare time interval
Ac = 5; // amplitude of carrier signal
Am = 3; // amplitude of modulating signal
fc = 100; // carrier frequency
fm = 20; // modulating frequency
Vc = Ac *cos (((2*%pi)*fc)*t); //Carrier signal
Vm = Am * sin (((2*%pi)*fm)*t); //Modulating signal
m = 2; //modulation index
Vfm = Ac*cos(((( 2*%pi)*fc)*t)+m*sin(((2*%pi)*fm)*t)); //Frequency modulation
signal
ii) Crear una seal modulada usando definicin FM, para un ndice de
modulacin igual a 5:
N = 1024; // Number of points
fs = 4096; // Sampling frequency
t = (0:N-1)/fs; // Time vector
fm = 20; // Message Freq 1
Em = 5; // Amplitude of modulating signal
m = 5; // Modulation Index
fc = 100; // Carrier frequency
Vm = Em*cos(2*%pi*fm*t); // Modulating signal
Vfm = cos(2*%pi*fc*t+Vm); // Frequency Modulation (FM)
Vf = (2/N)*abs(mtlb_fft(Vfm,2048))1024; //Frequency modulation in time domain
iii) Plotear y etiquetar la seal FM en el dominio del tiempo y la frecuencia.
f = (fs*(0:N/2))/N;
subplot(2,1,1); //Time domain plot
plot(t(1:N/2),Vfm(1:N/2),t(1:N/2),Vm(1:N/2),"r");
title(Tiempo y dominio);
xlabel(Tiempo);
ylabel(Modulacion seal);
subplot(2,1,2); //Frequency Domain Plot
plot(f(1:256),Vf(1:256));
title(Frequency Domain Representation);
xlabel(Frequencia (Hz));
ylabel(Spectral Magnitude);
4. Dada la seal mensaje:
La modulacin esta dado por:
La seal FM
Usar Scilab para mostrar las amplitudes de los espectros.
N = 1024; // Number of points
fs = 4096; // Sampling frequency
t = (0:N-1)/fs; // Time vector
fm = 15; // Message Freq 1
Em = 1; // Amplitude of modulating signal
m = 1; // Modulation Index
fc = 25 ; // Carrier frequency
Vm = Em*cos(2*%pi*fm*t); // Modulating signal
// Frequency Modulation (FM)
Vfm = cos(2*%pi*fc*t+Vm);
Vf = (2/N)*abs(mtlb_fft(Vfm,2048))1024; //Frequency modulation in time domain
f = (fs*(0:N/2))/N;
subplot(2,1,1); //Time domain plot
plot(t(1:N/2),Vfm(1:N/2),t(1:N/2),Vm(1:N/2),"r");
title(Tiempo y dominio);
xlabel(Tiempo);
ylabel(Modulacion seal);
subplot(2,1,2); //Frequency Domain Plot
plot(f(1:256),Vf(1:256));
title(Frequency Domain Representation);
xlabel(Frequency (Hz));
ylabel(Spectral Magnitude);