%-------------------------------------------------------------------------- % Výuková podpora přemětu Modulované signály %-------------------------------------------------------------------------- % Program PSK MODULACE %-------------------------------------------------------------------------- % % Výpočet a grafické vykreslení modulovaného vysokofrekvenčního signálu % pomocí digitální fázové PSK modulace (Phase Shift Keying Modulation) % % Volitelný modulační (informační) signál a vysokofrekvenční nosná % % Počet možných stavů zvolené modulace QPSK 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=1000; % nosná frekvence vysokofrekvenčního RF signálu cas = 0.5; % čas průběhu simulace pocet_bodu=10; %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) %-------------------------------------------------------------------------- % PSK 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 - posun o pi/2 R_t=0.2; % Amplitudová modulační složka for i=1:length(m_t) if m_t(i)==0 Theta_t(i) = pi/4; % Fázová modulační složka 45 stupnu elseif m_t(i)==1 Theta_t(i) = 3*pi/(4); % Fázová modulační složka 135 stupnu elseif m_t(i)==2 Theta_t(i) = 5*pi/(4); % Fázová modulační složka 225 stupnu elseif m_t(i)==3 Theta_t(i) = 7*pi/(4); % Fázová modulační složka 315 stupnu 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))) < 1e-3) && (abs(imag(v_f(q))) < 1e-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]'); %-------------------------------------------------------------------------- % Vykreslení grafického časového průběhu pásmového (modulovaného) signálu subplot(4,1,2); plot(t,v_t); title('QPSK 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('QPSK modulace - Amplitudová modulacní slozka R(t)') % Popis grafu %-------------------------------------------------------------------------- % 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('QPSK modulace - Fázová modulacní slozka \Theta(t)') % Popis grafu %-------------------------------------------------------------------------- % 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('QPSK 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('QPSK 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('QPSK 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) if (m_t(i) ~= m_t_last) 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) hold on stem(x(i),y(i),'-wo','LineWidth',0.1,'MarkerEdgeColor','b','MarkerFaceColor','w','MarkerSize',8) m_t_last = m_t(i); if m_t(i)==0 text(x(i),y(i),' data m(t)=0') elseif m_t(i)==1 text(x(i),y(i),' data m(t)=1') elseif m_t(i)==2 text(x(i),y(i),' data m(t)=2') elseif m_t(i)==3 text(x(i),y(i),' data m(t)=3') end; end; end; xlabel('x soufázová modulacní slozka (in-phase axis)') ylabel('y kvadraturní modulacni slozka (quadrature axis)') grid on title('Konstelacní diagram (IQ diagram) - QPSK modulovaná komplexní obálka g(t)')