%-------------------------------------------------------------------------- % Výuková podpora přemětu Modulované signály %-------------------------------------------------------------------------- % Program FSK MODULACE %-------------------------------------------------------------------------- % % Výpočet a grafické vykreslení modulovaného vysokofrekvenčního signálu % pomocí digitální frekvenční FSK modulace (Frequency Shift Keying Modulation) % % Volitelný modulační (informační) signál a vysokofrekvenční nosná % % Počet možných stavů zvolené modulace FSK m(t) je 4 % % VŠB - Technická univerzita Ostrava % Fakulta elektrotechniky a informatiky % Katedra měřicí a řídicí techniky % 17.listopadu 15 % Ostrava - Poruba % 708 33 % % Vypracoval Zdeněk Macháček 2010 %-------------------------------------------------------------------------- %-------------------------------------------------------------------------- % Vyčištění všech proměnných paměti a uzavření všech grafických oken clear all; close all; %-------------------------------------------------------------------------- % Specifikace časového průběhu-čas t[s] a nosné frekvence fc[Hz]RF signálu f_c=200; % nosná frekvence vysokofrekvenčního RF signálu cas = 0.5; % čas průběhu simulace pocet_bodu=20; %počet bodů v čase během jedné periody fc deltat=1/(f_c*pocet_bodu); % zanedbatelný časový okamžik t=0:deltat:cas-deltat; % časový průběh T_m = 0.1; % perioda informačního signálu m(t) %-------------------------------------------------------------------------- % Definování a výpočet digitálního modulačního signálu m(t) % v daném časovém okamžiku periody dvoubitové číslo reprezentující m(t) t1=0:deltat:T_m-deltat; m1(1:length(t1))=0; t2=T_m:deltat:2*T_m-deltat; m2(1:length(t2))=1; t3=2*T_m:deltat:3*T_m-deltat; m3(1:length(t3))=2; t4=3*T_m:deltat:4*T_m-deltat; m4(1:length(t4))=3; t5=4*T_m:deltat:cas-deltat; m5(1:length(t5))=0; m_t = [m1 m2 m3 m4 m5]; % modulační signál m(t) %-------------------------------------------------------------------------- % FSK modulace - definování a výpočet pásmového signálu v(t) % amplitudova modulacni slozka R_t = konstanta % fazova modulacni slozka Theta_t = změna stavu - konstantní posun o % definovanou funkci změny fáze R_t=0.7; % Amplitudová modulační složka Df = 16; % Index frekvenční, kmitočtové modulace a = 1; m_t_last = -1; for i=1:length(m_t) if m_t(i) == m_t_last a = a+1; else a = 1; m_t_last = m_t(i); end; if m_t(i)==0 Theta_t(i) = Df*a*deltat; % Proměnná fázová modulační složka elseif m_t(i)==1 Theta_t(i) = -Df*a*deltat; % Proměnná fázová modulační složka elseif m_t(i)==2 Theta_t(i) = 2*Df*a*deltat; % Proměnná fázová modulační složka elseif m_t(i)==3 Theta_t(i) = -2*Df*a*deltat; % Proměnná fázová modulační složka end; R(i) = R_t; end; v_t = R_t.*cos(2*pi*f_c*t+Theta_t); % Pásmový (modulovaný) signál v(t) %-------------------------------------------------------------------------- %Výpočet frekvenčního spektra pásmového signálu pomocí funkce algoritmu FFT N=length(v_t); % počet hodnot pásmového signálu v(t) v_f = (fftshift(fft(v_t)))./N; % komplexní vektor frekvenčního spektra v(t) k=-N/2:N/2-1; % pomocný výpočet symetrického pole osy x f = k.*pocet_bodu*f_c./N; % výpočet x-ové osy - frekvence f[Hz] V_amp = abs(v_f); %amplitudové frekvenční spektrum v(t) V_vykon = V_amp.^2; %výkonové frekvenční spektrum v(t) % Je-li nulová hodnota amplitudy na dané frekvenci je také fáze = 0 for q=1:N if ((abs(real(v_f(q))) < 4e-3) && (abs(imag(v_f(q))) < 4e-3)) v_f(q)=0; end; end; V_faze = angle(v_f); %fázové frekvenční spektrum v(t) %-------------------------------------------------------------------------- % GRAFY - ZOBRAZENÍ SIGNÁLŮ V ČASOVÉ OBLASTI %-------------------------------------------------------------------------- % Vykreslení grafického časového průběhu modulačního signálu figure; subplot(4,1,1); plot(t,m_t); title('Modulacní digitální signál m(t)'); ylabel('m(t)'); xlabel('t[s]'); grid on; %-------------------------------------------------------------------------- % Vykreslení grafického časového průběhu pásmového (modulovaného) signálu subplot(4,1,2); plot(t,v_t); title('FSK modulace - Pásmový signál v(t)'); ylabel('v(t)'); xlabel('t[s]'); %-------------------------------------------------------------------------- % Vykreslení grafického časového průběhu amplitudové modulacní slozky R(t) subplot(4,1,3); plot(t,R) xlabel('t[s]') % Popis x-ove osy ylabel('R(t)') % Popis y-ove osy title('FSK modulace - Amplitudová modulacní slozka R(t)') % Popis grafu grid on; %-------------------------------------------------------------------------- % Vykreslení grafického časového průběhu fázové modulacní slozky Theta(t) subplot(4,1,4); plot(t,Theta_t) xlabel('t[s]') % Popis x-ove osy ylabel('\Theta(t)') % Popis y-ove osy title('FSK modulace - Fázová modulacní slozka \Theta(t)') % Popis grafu grid on; %-------------------------------------------------------------------------- % GRAFY - ZOBRAZENÍ SIGNÁLŮ VE FREKVENČNÍ OBLASTI %-------------------------------------------------------------------------- %vykresleni amplitudového frekvenčního spektra figure; subplot(3,1,1); stem(f,V_amp) xlabel('f[Hz]') ylabel('^F^R|W_m|') grid on; title('FSK modulace - Amplitudové frekvencni spektrum pasmoveho (modulovaneho)signalu v(t)') %-------------------------------------------------------------------------- %vykresleni fázového frekvenčního spektra subplot(3,1,2); stem(f,V_faze) xlabel('f[Hz]') ylabel('\Theta_m') grid on title('FSK modulace - Fazove frekvencni spektrum pasmoveho (modulovaneho)signalu v(t)') %-------------------------------------------------------------------------- %vykresleni výkonového frekvenčního spektra subplot(3,1,3); stem(f,V_vykon) xlabel('f[Hz]') ylabel('^F^R|P_m|') grid on title('FSK modulace - Vykonove frekvencni spektrum pasmoveho (modulovaneho)signalu v(t)') %-------------------------------------------------------------------------- % GRAFY - ZOBRAZENÍ KONSTELACE MODULACE - IQ DIAGRAM %-------------------------------------------------------------------------- %Výpočet a vykreslení konstelace modulace pásmového signálu figure; m_t_last = -1; for i=1:length(m_t) x = R.*cos(Theta_t); % soufázová modulační složka y = R.*sin(Theta_t); % kvadraturní modulační složka osax=[0,x(i)]; osay=[0,y(i)]; %plot(osax,osay) stem(x(i),y(i),'-wo','LineWidth',0.1,'MarkerEdgeColor','b','MarkerFaceColor','w','MarkerSize',8) hold on m_t_last = m_t(i); end; xlabel('x soufázová modulacní slozka (in-phase axis)') ylabel('y kvadraturní modulacni slozka (quadrature axis)') grid on title('Konstelacní diagram (IQ diagram) - FSK modulovaná komplexní obálka g(t)')