Beruflich Dokumente
Kultur Dokumente
Crearemos una seal FM a partir de una seal sinusoidal con frecuencia de 5 Hz. Los datos se muestrearan con una frecuencia fs = 25000 Hz. fs = 25000; % Frecuencia de muestreo %Seal a modular t = [0:1/fs:2]; % 2 sec. fs muestras/segundo x= cos (2*pi*5*t); % 5Hz seal banda base Lo primero es simular el procesador en banda base donde generando las seales I y Q, como I = A cos (phi) y Q = A sin (phi). En modulacin Fm la amplitud A es constante y la fase se construye como la integral de la seal x(t) multiplicada por una constante. En MATLAB podemos calcular numricamente la integral de la secuencia x [n] con la funcin cumsum() que suma acumulativamente los contenidos de una secuencia: A = 1; %Amplitud constante K=0.05; phi= k*cumsum(x); % Integral de seal Las seales I y Q se generan ahora como: I = A*cos (phi) ; Q = A*sin(phi); % Construccin de las seales I y Q
Con esto ya hemos concluido el procesado en banda base. Ahora solo resta combinar las seales I/Q con la portadora (cos/sin) para generar la seal IQ modulada (en este caso usando FM). Usando una frecuencia portadora de 2000 Hz. Wc=2*pi *2000; % Frecuencia 2000 Hz portadora IQ= I .* cos (wc*t) Q .*sin(wc*t); %Seal IQ modulada en frecuencia Podemos escuchar dicha seal de audio usando: Sound (IQ, fs);
Para observar visualmente como se altera la frecuencia de la portadora en funcin de la seal, podemos usar la funcin stft2d () que visualiza el espectrograma de una seal. figure; stft2d(IQ, 512,fs) Qu parmetro de la portadora varia con el tiempo? Cambiar la variable k por 0.1. Qu influencia tiene la variable k en el ancho de banda de la seal FM?
Consideremos ahora el problema de la demodulacin. Lo primero es recuperar las seales I y Q por separado despus de haberlas juntado. Para esto se escribe la funcin demodula_IQ que recibe como argumento la seal modulada IQ y devuelve las seales I y Q por separado. function [I,Q] = demodula_IQ (IQ, f_local, ph_local,fs) % Parmetros de entrada % IQ: seal modulada % f_local: frecuencia del oscilador local (en Hz) % ph_local: fase del oscilador local % fs: frecuencia de muestreo (Hz) %Parmetros de salida: %I,Q: seales I y Q demoduladas.
Aplicar esta funcin a la seal IQ obtenida anteriormente. En principio usando una frecuencia local de 2000 Hz y una fase de 0, que coinciden con las usadas al modular. [I_fm Q_fm]=demodula_IQ(IQ,2000,0.0,fs); Se sabe de antemano que la informacin de la seal est contenida en la fase (de hecho la derivada de la fase) de los nmeros complejos cuya parte real es I y parte imaginaria Q. Construyendo dichos nmeros: R = I_fm + i*Q_fm; En principio parecera que para recuperar la seal bastara calcular la fase de R (funcin angle en MATLAB) y diferenciarla: ph = angle(R); dph = ph(2:end) ph (1:end-1); plot (dph)
Se recuper la seal original? Porque cree que ha pasado esto? Consideremos R(n) = A(n) exp [i phi_n] y el valor anterior R(n-1) = A(n-1) exp [i phi(n-1)]. Multiplicando R(n) por el conjugado de R(n-1): R(n) R(n-1)* = A(n) exp (i phi(n)) A(n-1) exp (-i phi (n-1)) = A(n) A(n-1) exp [i {phi(n) - phi (n-1)}]
Luego la fase de dicho nmero complejo es justo la diferencia de fases buscada { phi(n) - phi (n-1)} y adems no muestra los saltos de +/- 2pi de antes. Sabiendo que la funcin para el conjugado es conj() en MATLAB, escribir el cdigo necesario para extraer la seal de esta forma (una lnea) y obtener la seal resultante. Se recuper ahora la seal original? Una de las ventajas de una seal modulada FM es que es muy resistente a cambios en la frecuencia o fase del oscilador local. Repetir la demodulacin usando una frecuencia correcta de 2000 Hz pero con una fase local de pi/2. Despus usar una frecuencia de 2200 Hz y la fase correcta (0.0): [I Q]=demodula_IQ(IQ,2000,pi/2,fs); [I Q]=demodula_IQ(IQ,2200,0.0,fs); Qu efecto tiene sobre la seal demodulada un desajuste de fase? y de la frecuencia? Del archivo de simulink modulacin Fm establezca la frecuencia y defina claramente cada uno de los bloques que lo componen y la funcin que cumplen. Igualmente describa las respectivas graficas que se obtienen en la salida de cada etapa. Realizar este procedimiento para los distintos tipos de seal de entrada.