%-------------------------------------------------------------------------- % Výuková podpora přemětu Modulované signály %-------------------------------------------------------------------------- % Program ASK MODULACE %-------------------------------------------------------------------------- % % Výpočet a grafické vykreslení modulovaného vysokofrekvenčního signálu % pomocí digitální amplitudové ASK modulace (Amplitude Shift Keying Modulation) % % Volitelný modulační (informační) signál a vysokofrekvenční nosná % % Počet možných stavů zvolené modulace ASK m(t) je 8 % % 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=300; % 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.05; % 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 tříbitové čí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:5*T_m-deltat; m5(1:length(t5))=4; t6=5*T_m:deltat:6*T_m-deltat; m6(1:length(t6))=5; t7=6*T_m:deltat:7*T_m-deltat; m7(1:length(t7))=6; t8=7*T_m:deltat:8*T_m-deltat; m8(1:length(t8))=7; t9=8*T_m:deltat:9*T_m-deltat; m9(1:length(t9))=0; t10=9*T_m:deltat:cas-deltat; m10(1:length(t10))=1; m_t = [m1 m2 m3 m4 m5 m6 m7 m8 m9 m10]; % modulační signál m(t) %-------------------------------------------------------------------------- % ASK modulace - definování a výpočet pásmového signálu v(t) % amplitudova modulacni slozka R_t = zmena stavu - posun o definovanou hodnotu % fazova modulacni slozka Theta_t = změna stavu - posun o pi = 180° C = 2; % konstantní hodnota změny amplitudové modulační složky for i=1:length(m_t) if m_t(i)==0 R_t(i) = C; % Amplitudová modulační složka Theta_t(i) = 0; % Fázová modulační složka elseif m_t(i)==1 R_t(i) = C; % Amplitudová modulační složka Theta_t(i) = pi;% Fázová modulační složka elseif m_t(i)==2 R_t(i) = 3*C; % Amplitudová modulační složka Theta_t(i) = 0; % Fázová modulační složka elseif m_t(i)==3 R_t(i) = 3*C; % Amplitudová modulační složka Theta_t(i) = pi;% Fázová modulační složka elseif m_t(i)==4 R_t(i) = 5*C; % Amplitudová modulační složka Theta_t(i) = 0;% Fázová modulační složka elseif m_t(i)==5 R_t(i) = 5*C; % Amplitudová modulační složka Theta_t(i) = pi; % Fázová modulační složka elseif m_t(i)==6 R_t(i) = 7*C; % Amplitudová modulační složka Theta_t(i) = 0;% Fázová modulační složka elseif m_t(i)==7 R_t(i) = 7*C; % Amplitudová modulační složka Theta_t(i) = pi;% Fázová modulační složka end; 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-1) && (abs(imag(v_f(q))) < 1e-1)) 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('ASK 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_t) xlabel('t[s]') % Popis x-ove osy ylabel('R(t)') % Popis y-ove osy title('ASK 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('ASK 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('ASK 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('ASK 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('ASK 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_t.*cos(Theta_t); % soufázová modulační složka y = R_t.*sin(Theta_t); % kvadraturní modulační složka if (y(i) < 1e-1) % nepřesnost výsledku z důvodu zaokrouhlování y(i)=0; end; 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)-0.5,y(i)+0.1,' data m(t)=0') elseif m_t(i)==1 text(x(i)-0.5,y(i)+0.1,' data m(t)=1') elseif m_t(i)==2 text(x(i)-0.5,y(i)-0.1,' data m(t)=2') elseif m_t(i)==3 text(x(i)-0.5,y(i)-0.1,' data m(t)=3') elseif m_t(i)==4 text(x(i)-0.5,y(i)+0.1,' data m(t)=4') elseif m_t(i)==5 text(x(i)-0.5,y(i)+0.1,' data m(t)=5') elseif m_t(i)==6 text(x(i)-0.5,y(i)-0.1,' data m(t)=6') elseif m_t(i)==7 text(x(i)-0.5,y(i)-0.1,' data m(t)=7') 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) - ASK modulovaná komplexní obálka g(t)')