1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| clear all;
close all;
k=10;
% Generate random source data {0, 1}
d_data = (rand(1, k) > .5);
% Generation de la séquence
%d_seq = zeros(1, k);
% Codage différentiel
%for k=1: length(d_data)
% if (k=1)
% d_seq(1 ,2)= xor(d_data(1, 1), d_seq(1, 1));
% else
% d_seq(1 ,k) = xor(d_data(1, k), d_seq(1 ,k-1));
% end
%end
%d_seq(1,k) = xor(d_data(1,k), d_seq(1,k-1));
% Codage NRZ
d_signal= (1 :k);
for k=1 : length(d_signal)
if d_data(1, k) == 0
d_signal(1 ,k) = -1;
elseif d_data(1 ,k) == 1
d_signal(1 ,k) = 1;
end
end
%Oversampling
L=8;
d_ovSignal=reshape(repmat(d_signal, L, 1), 1, length(d_signal)*L);
%Shaping via filtre fir1
h = fir1(8,50/(800/2));
d_base=filter(h,1,d_ovSignal);
freqz(h, 1, 512)
% Modulation
I = cos(d_base);
Q = sin(d_base);
%% Affichage
plot(I, Q, '.');
xlabel('inPhase');
ylabel('Quadrature');
axis([-2, 2, -2, 2]); |