Modulace PAM #1 - jednorozměrná
clc
clear all
close all
% parametry pro vykresleni
font_size = 16;
font_size_label = 18;
T_max = 1e-3; % doba trvani simulace [s]
Fs = 50e6; % vzorkovaci frekvence [Hz]
Tpulzu = 10e-6; % doba trvani pulzu [s]
Fzdvih = 1e6; % frekvencni zdvih pro Linearni Frekvencni Modulaci [Hz]
Ts = 10e-6; % doba trvani jednoho symbolu
Tr = 100e-6; % doba trvani jednoho ramce
n_Ts = round(Ts * Fs); % pocet vzorku v jednom datovem intervalu
n_Tr = round(Tr * Fs); % pocet vzorku v jednom ramci
n_data = round(n_Tr / n_Ts);
bit = randi([0, 1], n_data, 1); % vygenerovani uniformne rozlozenych n-pocet bitu
% bit = [0, 1]
t_axis = 0 : 1/Fs : (Tr - 1/Fs); % casova osa
no_samples = length(t_axis);
q = bit;
%%% FFSK
for ii = 1 : n_data
dolni_mez = ((ii-1) * n_Ts + 1);
horni_mez = ii * n_Ts; % n_Ts je pocet vzorku v jednom Ts
if q(ii) == 0
A1(dolni_mez : horni_mez) = 1;
A2(dolni_mez : horni_mez) = 0;
else
A1(dolni_mez : horni_mez) = 0;
A2(dolni_mez : horni_mez) = 1;
end
end
%% MSK
f1 = 10 * 1/(2*Tpulzu);
f2 = 11 * 1/(2*Tpulzu);
faze = 0;
t = t_axis;
s_msk = A1.*sin(2*pi*t*f1) + A2.*sin(2*pi*t*f2 + faze );
S= 10*log10((abs(fftshift(fft(s_msk)))).^2);% energetické spektrum signálu
fx = Fs/2 * linspace(-1,1,length(s_msk));
figure;
subplot(2,1,1); plot(t,s_msk); title('MSK'); xlabel('t [s]'); ylabel('A [V]');
subplot(2,1,2); plot(fx,S); title('Spektrum');xlabel('f [Hz]'); ylabel('Se [dB]');
ylim([-20 max(S)*1.2 ]); xlim([-3E6 3E6]);
Download