Você está na página 1de 25

301 2: , ..

(, , , )

2014030130
2014030182

PAM
SRRC ( Square Root Raised Cosine ) 2-PAM
4-PAM.

.1 SRRC (Square Root Raised Cosine) (t) :


( ) T = 10^2, 1 sec, ( ) Ts = T/over , over = 10, ()
A = 4, 6 ( roll-off) a = 0.4, 0.8.
.. Fourier (t), | (F)| , f = 2048
[ -Fs/2, Fs/2 ).
, | (F)|2 ( semilogy):
301 2: , .. ,

.2 =50 ( 100) bits,


0+1
over T
01
n (t ) . , n (t )
N 1
(t), X (t )= X n (t nT ) :
n=0

, , , X (t ) :
2
S X (F )= | ( F)|2
T

.3 X(t):
|F[ X (t )]|2
P X (F )=
T total

( o T total MATLAB : T total = length(x_axis)*Ts )


. bits, (
bits) plot( ) semilogy( ) :
301 2: , .. ,

301 2: , .. ,

( =100 ):


semilogy:
301 2: , .. ,
,
bandwidth , .

1000 100, ,
,
E[X]:

,
, .

= 1000 ( (t) ):
301 2: , .. ,

.4 4-PAM X n n = 0, , (N/2)-1
00+3
01+1
: , ( .2) X n
111
103
, (t), X(t):
301 2: , .. ,

mean values
X(t) , semilogy
:
301 2: , .. ,

bandwidth ( )
.

2-PAM 4-PAM plot:

semilogy:
301 2: , .. ,

,
(1+a)
W= = . 4-PAM .
(2 T )

.5 A.3 , = 2
301 2: , .. ,
Ts ,
plot semilogy :

X(t) ( ...) =100:


301 2: , .. ,

= 1000:
301 2: , .. ,
301 2: , .. ,
( = 2 )
(1+a)
: W =
(2 T )

.6

, 4-PAM
bits
2-PAM.

, = 2,
(1+a)
W = .
(2 T )

B.1 [ (t)]=E[ X (t)cos (2 f 0+)] . ,


[ ( t)] :

E[ X ( t)]=E [ X n (tnT )]= E [ X n (tnT )]= (tnT ) E [X n ]=0


n n n

, :
(, : ..)
E[Y (t)]=E[ X (t)cos (2 f 0 t +)]=E [X (t)]E [cos(2 f 0 t +)]=0

RYY (t + , t)=E [Y (t+) Y (t )]


R XX ( t+ , t)=E[ X (t + ) (t)] :

R XX (t+ , t)=E[ X (t + ) (t)]=E[ X n (t+nT ) X n (tnT )]


n n

...=E [ X n (t + nT )X n (t nT )]
n

...= E [ X n (t + nT )X n (t nT )]
n

...= E [ X 2n (t + nT )(tnT )]
n

2 2
...= (t+nT ) (tnT )c2x ( x =E [X n ])
n

:
301 2: , .. ,

RYY (t + , t)=E [Y (t+) Y (t)]

...= [ (t+ )cos(2 f 0 (t + )+)X ( t)cos (2 f 0 t+)]


...= [ (t+ ) (t )]E[cos (2 f 0 ( t+)+)cos (2 f 0 t +)]
...=R XX (t+ ,t )E[cos (2 f 0 )cos (2 f 0 (t+)+)]

1
...=R XX (t+ ,t )E[ cos (2 f 0 )+cos (2 f 0 (t + )+2 )]
2

B.2
(t)
[ (t)]=0 ()

R (t + , t)R ( ) ( )
(non-WSS)
:

[ (t)]=0, t ==> [ (t + )]=0 (t)


R (t + + ,t + )=R (t+ ,t ) (WSC)

( :
1
R (t + + ,t + )= cos(2 f 0 t ) 2x (t+ +T nT ) (t+TnT )
2 n
1 2
...= cos (2 f 0 t) x (t+ +T (1n)) (t+T (1n))
2 n

(n = n-1)
1
...= cos (2 f 0 t) 2x (t+ +Tn' ) (t+Tn ' )
2 n
...=R ( t+ , t) )

B.3 Y(t) : S Y (F)=F {RY ()} ,


:

1 1 1
RY ( )= RYY ( t+ , t)dt= R XX (t + , t) cos(2 f 0 )dt
T T T T 2
1 1
.....= cos(2 f 0 ) R XX (t+ , t)= cos(2 f 0 )RX ( )
2T T 2

1 1
: S Y ( F)=F {RY ( )}= F {cos (2 f 0 )RX ( )}= (S X (F+f 0 )+S X ( Ff 0 ))
2 4
301 2: , .. ,

B.4

()

()
301 2: , .. ,

MATLAB:

%%%%%%%%%%% THL301 %%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Nikolaos Gkouvatsos %
% Xrhstos Karageorgiou Kanhn %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

close all;
clc;
clear all;

%% A1

T = 1; % or 10^-2
over = 10;
Ts = T/over;

%A=4
A = 4;

% a = 0.4;
[phi1, t] = srrc_pulse(T, Ts, A, 0.4);

% a = 0.8;
[phi2, t] = srrc_pulse(T, Ts, A, 0.8);

%A=6
A = 4;

% a = 0.4;
[phi1, t] = srrc_pulse(T, Ts, A, 0.4);

% a = 0.8;
[phi2, t] = srrc_pulse(T, Ts, A, 0.8);

%-------------------

Fs = 1/Ts;
Nf1 = 2048;
f_axis1 = [-Fs/2 : Fs/Nf1 : Fs/2 - Fs/Nf1];

phi_f1 = fft(phi1, Nf1);


phi_f2 = fft(phi2, Nf1);

V1 = abs(Ts*fftshift(phi_f1) ).^2;
V2 = abs(Ts*fftshift(phi_f2) ).^2;

figure ();
semilogy(f_axis1, V1);
title(' (semilogy,N=1024) |(F)|^2')
hold on;
301 2: , .. ,
semilogy(f_axis1, V2);
legend('=0.4','=0.8');
hold off;
xlabel('f');

%% A2

N = 50; % or 100

b = (sign(randn(N,1))+1)/2;
X = bits_to_2PAM(b);

% (t)
Xd=zeros(1,N*over);
Xdt=linspace(0,N*T,N*over);

i=1;
for t=1:over:length(Xd)
Xd(t)=X(i);
i=i+1;
end

[phi1, t] = srrc_pulse(T, Ts, A, 0.4);


tmin=Xd(1)+t(1);
tmax=Xd(end)+t(end);

%---------------------------------
Xt=conv(phi1,Xd);
dt=linspace(tmin,tmax,length(Xt));
%---------------------------------

%plot convolution X(t)


figure();
plot(dt,Xt)
title('Convolution for 2-PAM');
ylabel('X(t)');
xlabel('Time t');

% X(t)

fft_phi=fftshift(fft(phi1,Nf1)*Ts);

% (t)
sum=0;
for i=1:length(Xt)
sum=sum+Xt(i);
end
average=sum/length(Xt);

var=0;
for i=1:length(Xt)
var=var+(Xt(i)-average)^2;
end

var=var/length(Xt); %!!!!!!!!!!!!!!!!!!!!!!!!!

%
Sx=(var/T)*abs(fft_phi).^2;
301 2: , .. ,
%%
%A3
Ttotal=length(dt)*Ts; % (t)

F_X=fftshift(fft(Xt,Nf1)*Ts); % Fourier X(t)

P=abs((F_X).^2)/Ttotal;
F_P=linspace(-Fs/2,Fs/2,length(P));

% (t) "plot()"
figure();
plot(F_P,P);
xlabel(' F (Hz)');
ylabel('P(x)');
title(' X(t) plot');

% (t) "semilogy()"
figure();
semilogy(F_P,P);
xlabel(' F (Hz)');
ylabel('P(F)');
title(' X(t) semilogy');

% 100
% 1000

N=50;

for m=1:2
figure();

if m==1
graphs=100;
else
N=100;
graphs=1000;
end

for k=1:graphs
b=(sign(randn(N,1))+1)/2;
X = bits_to_2PAM(b);

% (t)
Xd=zeros(1,N*over);
Xdt=linspace(0,N*T,N*over);

i=1;
for j=1:over:length(Xd)
Xd(j)=X(i);
i=i+1;
end

%
Xt=conv(phi1,Xd);

%
tmin=t(1)+Xd(1);
tmin=t(end)+Xd(end);
dt=linspace(tmin,tmax,length(Xt));
301 2: , .. ,
F_Xt=fftshift(fft(Xt,Nf1)*Ts); %.F. X(t)
Ttotal=length(dt)*Ts;

P=(abs(F_Xt).^2)/Ttotal; % Px(F)
F_P=linspace(-Fs/2,Fs/2,length(P)); % P frequency

semilogy(F_P,P);

hold on;
end

%----------------LABELS---------------------
if m==1
xlabel(' F(Hz)');
ylabel('P(F)');
title('100 ');
else
xlabel(' F(Hz)');
ylabel('P(F)');
title('1000 ');
end
%----------------LABELS---------------------
hold off;

%
%------------------------------------------------
figure();
semilogy(f_axis1,Sx);
hold on;
semilogy(f_axis1,P);
xlabel(' F(Hz)');
ylabel('P(F)');
legend('','');
if m==1
title(' (K=100)');
else
title(' (K=1000)');
end
hold off;
%------------------------------------------------

end

%%
%A4

N=N/2;

b=(sign(randn(N,1))+1)/2;
X1=bits_to_4PAM(b);

% (t)
Xd1=zeros(1,N*over);
Xdt1=linspace(0,N*T,N*over);

i=1;
for j=1:over:length(Xd1)
301 2: , .. ,
Xd1(j)=X(i);
i=i+1;
end

% <=> X(t)
Xt1=conv(phi1,Xd1);

%
tmin=t(1)+Xdt1(1);
tmin=t(end)+Xdt1(end);
dt1=linspace(tmin,tmax,length(Xt1));

% X(t) 4-PAM
figure();
plot(dt1,Xt1)
title(' 4-PAM');
ylabel('X(t)');
xlabel('Time t');

%
%---------------------------------------------------
% (t)
sum1=0;
for i=1:length(Xt1)
sum1=sum1+Xt1(i);
end
average1=sum1/length(Xt1);

var1=0;
for i=1:length(Xt1)
var1=var1+(Xt1(i)-average1)^2;
end

var1=var1/length(Xt1);

%
Sx1=(var1/T)*abs(fft_phi).^2;
%---------------------------------------------------

% (t)
%---------------------------------------------------

F_Xt1=fftshift(fft(Xt1,Nf1)*Ts); %.F. X(t)


Ttotal1=length(dt1)*Ts;

P1=(abs(F_Xt1).^2)/Ttotal1; % Px(F)
F_P1=linspace(-Fs/2,Fs/2,length(P)); % P frequency

figure();
semilogy(F_P1,P1);%
hold on;
semilogy(F_P1,Sx1);%

xlabel(' F(Hz)');
ylabel('P(F)');
title(' X(t) 4-PAM');
legend('','');
301 2: , .. ,
hold off;

%
% 2-PAM 4-PAM

%SEMILOGY
figure();
semilogy(f_axis1,Sx);%
hold on;
semilogy(f_axis1,Sx1);%

xlabel(' F(Hz)');
ylabel('Sx(F)');
title(' 2-PAM 4-PAM');
legend('2-PAM','4-PAM');

hold off;

%PLOT
figure();
plot(f_axis1,Sx);%
hold on;
plot(f_axis1,Sx1);%

xlabel(' F(Hz)');
ylabel('Sx(F)');
title(' 2-PAM 4-PAM');
legend('2-PAM','4-PAM');

hold off;

%%
%A5

% 3
%-----------------------------------------
T1= 2; % 2*10^-2
over = 10;
Ts = T1/(2*over);
%-----------------------------------------

% ,
%-----------------------------------------
b = (sign(randn(N,1))+1)/2;
X = bits_to_2PAM(b);

% (t)
Xd=zeros(1,N*over);
Xdt=linspace(0,N*T1,N*over);

i=1;
for t=1:over:length(Xd)
Xd(t)=X(i);
i=i+1;
end

[phi1, t] = srrc_pulse(T1, Ts, A, 0.4);


tmin=Xd(1)+t(1);
tmax=Xd(end)+t(end);
301 2: , .. ,

%---------------------------------
Xt=conv(phi1,Xd);
dt=linspace(tmin,tmax,length(Xt));
%---------------------------------

%-----------------------------------------

Ttotal=length(dt)*Ts; % (t)

F_X=fftshift(fft(Xt,Nf1)*Ts); % Fourier X(t)

P=abs((F_X).^2)/Ttotal;
F_P=linspace(-Fs/2,Fs/2,length(P));

% (t) "plot()"
figure();
plot(F_P,P);
xlabel(' F (Hz)');
ylabel('P(x)');
title(' X(t) plot');

% (t) "semilogy()"
figure();
semilogy(F_P,P);
xlabel(' F (Hz)');
ylabel('P(F)');
title(' X(t) semilogy');

% 100
% 1000

N=50;

for m=1:2
figure();

if m==1
graphs=100;
else
N=100;
graphs=1000;
end

for k=1:graphs
b=(sign(randn(N,1))+1)/2;
X = bits_to_2PAM(b);

% (t)
Xd=zeros(1,N*over);
Xdt=linspace(0,N*T1,N*over);

i=1;
for j=1:over:length(Xd)
Xd(j)=X(i);
i=i+1;
end

%
Xt=conv(phi1,Xd);
301 2: , .. ,
%
tmin=t(1)+Xd(1);
tmin=t(end)+Xd(end);
dt=linspace(tmin,tmax,length(Xt));

F_Xt=fftshift(fft(Xt,Nf1)*Ts); %.F. X(t)


Ttotal=length(dt)*Ts;

P=(abs(F_Xt).^2)/Ttotal; % Px(F)
F_P=linspace(-Fs/2,Fs/2,length(P)); % P frequency

semilogy(F_P,P);

hold on;
end

%----------------LABELS---------------------
if m==1
xlabel(' F(Hz)');
ylabel('P(F)');
title('100 ');
else
xlabel(' F(Hz)');
ylabel('P(F)');
title('1000 ');
end
%----------------LABELS---------------------
hold off;

%
%------------------------------------------------
figure();
semilogy(f_axis1,Sx);
hold on;
semilogy(f_axis1,P);
xlabel(' F(Hz)');
ylabel('P(F)');
legend('','');
if m==1
title(' (K=100)');
else
title(' (K=1000)');
end
hold off;
%------------------------------------------------
end

%%
%4

T=1;
over = 10;
Ts = T/(over);
Fs=1/Ts;

figure();
for k=1:100
301 2: , .. ,

b = (sign(randn(N,1))+1)/2;
X = bits_to_2PAM(b);

% (t)
Xd=zeros(1,N*over);
Xdt=linspace(0,N*T1,N*over);

i=1;
for t=1:over:length(Xd)
Xd(t)=X(i);
i=i+1;
end

[phi1, t] = srrc_pulse(T1, Ts, A, 0.4);


tmin=Xd(1)+t(1);
tmax=Xd(end)+t(end);

%---------------------------------
Xt=conv(phi1,Xd);
dt=linspace(tmin,tmax,length(Xt));

% [0,2)
%theta=randi([0 2*pi],1,1)
theta=unifrnd(0,2*pi);

fo=1; %
dty=dt;
cosine=cos(2*pi*fo*dty+theta);v
Yt=Xt.*cosine;

FY=fftshift(fft(Yt,Nf1)*Ts);%.F. (t)
Ttotal=length(dty)*Ts;
P=(abs(FY).^2)/Ttotal;% Px(F)
F_P=linspace(-Fs/2,Fs/2,length(P));% P frequency
semilogy(F_P,P);
hold on;

end
xlabel(' F(Hz)');
ylabel('Sy(F)');
title(' ,100 ');
hold off;

% Y(t)

fft_phi=fftshift(fft(phi1,Nf1)*Ts);

% (t)
sum=0;
for i=1:length(Xt)
sum=sum+Yt(i);
end
average=sum/length(Yt);

var=0;
for i=1:length(Yt)
var=var+(Yt(i)-average)^2;
301 2: , .. ,
end

var=var/length(Yt);

%
Sy=(var/T)*abs(fft_phi).^2;

figure();
semilogy(f_axis1,Sy);
hold on;
semilogy(f_axis1,P);
xlabel(' F(Hz)');
ylabel('Sy(F)');
legend('','');
title(' ');

function [ X ] = bits_to_4PAM( b )

for k=1:length(b)-1
if ( b(k) == 0 && b(k+1) == 0 )
X(k)=3;
elseif (b(k)== 0 && b(k+1) == 1 )
X(k)=1;
elseif (b(k)== 1 && b(k+1) == 1 )
X(k)=-1;
elseif (b(k)== 1 && b(k+1) == 0 )
X(k) = -3;
else

return
end
end

end

Você também pode gostar