Anda di halaman 1dari 22

Universidade Federal do Rio Grande do Norte

Centro de Tecnologia
Departamento de Engenharia de Telecomunicaes

TRABALHO

Wisley lex de Oliveira Costa

Natal/ RN 28 de novembro de 2016


Introduo

Em comunicaes digitais e, por muitas vezes, necessrio realizar a a transmisso


de dados por meio de canais inerentemente analgicos. Este tipo de processo requer a
codificao do sinal digital a ser transmitido, adequando-o ao canal. Este processo
conhecido como modulao de canal.

A modulao de canal, assume um papel importante na determinao de diversas


caractersticas da comunicao estabelecida e merece, portanto, ateno quando da sua
escolha. A estratgia de modulao influencia diretamente fatores como a curva P Rs
SNR, a resilincia a interferncia interssimbolica, e a banda necessria para a
transmisso.

No decorrer desse texto, programaremos computacionalmente 4 estratgias de


modulao em banda base e subterremos o resultado a dois tipos de distores.
Pretendemos ter uma noo do desempenho de cada uma das modulaes frente `as
degradaes.
Montagens das funes.

As imagens a seguir mostram os cdigos utilizados para resolver o problema.


Grficos resultantes
PAM quaternrio

clc , clear ; close all ;

data = sign ( randn (1 ,400) ) + 2* sign ( randn (1 ,400) ); %%

Implementa um trem de pulsos com 400 elementos

aleatorios com aplitudes 3,-3,1,-1 representando

palavras de 2 bits

Tau = 64;

dataup = upsample (data , Tau ); implementa um tempo de simbolo

igual a Tau

%% Applying jitter

j = 1.5;

bits_pos1 = find ( dataup ==1) ; %% Retorna os indices dos

elementos de valor 1

10 bits_pos1 = bits_pos1 + round ( normrnd (0,j ,1, length ( bits_pos1 )

)); %% Atualiza os indices devido so jintter

bits_pos1 ( bits_pos1 <1) = [];

bits_neg1 = find ( dataup == -1); %% Retorna os indices dos

elementos de valor -1

14 bits_neg1 = bits_neg1 + round ( normrnd (0,j ,1, length ( bits_neg1 )

)); %% Atualiza os indices devido so jintter

15 bits_neg1 ( bits_neg1 <1) = [];

16

17 bits_pos3 = find ( dataup ==3) ; %% Retorna os indices dos

elementos de valor 3

18 bits_pos3 = bits_pos3 + round ( normrnd (0,j ,1, length ( bits_pos3 )

)); %% Atualiza os indices devido so jintter

19 bits_pos3 ( bits_pos3 <1) = [];


20

21 bits_neg3 = find ( dataup == -3); %% Retorna os indices dos

elementos de valor -3

22 bits_neg3 = bits_neg3 + round ( normrnd (0,j ,1, length ( bits_neg3 )

)); %% Atualiza os indices devido so jintter

23 bits_neg3 ( bits_neg3 <1) = [];

24

25 dataupj = 0* dataup ;

26

27 dataupj ( bits_pos1 ) = 1; %% Implementa o deslocamento ( com

media 0 e desvio ~apadro j) dos pulsos 1 com base nos

indeces atualizados

28 dataupj ( bits_neg1 ) = -1; %% Implementa o deslocamento ( com

media 0 e desvio ~apadro j) dos pulsos -1 com base nos

indeces atualizados

29 dataupj ( bits_pos3 ) = 3; %% Implementa o deslocamento ( com

media 0 e desvio ~apadro j) dos pulsos 3 com base nos

13

indeces atualizados

30 dataupj ( bits_neg3 ) = -3; %% Implementa o deslocamento ( com

media 0 e desvio ~apadro j) dos pulsos -3 com base nos

indeces atualizados

31

32 %% Modulating

33 yrz = conv ( dataup , pnrz ( Tau ));

34 ynrz = conv ( dataup , pnrz ( Tau ));

35 ynrz = ynrz (1: end -Tau +1) ;


36 ysine = conv (dataup , psine (Tau ));

37 ysine = ysine (1: end - Tau +1) ;

38 Td = 4;

39 yrcos = conv (dataup , prcos (0.5 ,Td ,Tau ));

40 yrcos = yrcos (2* Td* Tau :end -2* Td* Tau +1) ;

41

42 %% Plotting ideal case

43

44 eyediagram (yrz ,2* Tau ,Tau ,Tau /2) ; % title (RZ eye - diagram );

45 % legend ( Ideal Case )

46 print ic_yrz4 -deps

47

48 eyediagram (ynrz ,2* Tau ,Tau ,Tau /2) ; % title ( NRZ eye - diagram )

49 % legend ( Ideal Case )

50 print ic_ynrz4 -deps

51

52 eyediagram (ysine ,2* Tau ,Tau , Tau /2) ; % title (Half - sine eye -

diagram );

53 % legend ( Ideal Case )

54 print ic_ysine4 -deps

55

56 eyediagram (yrcos ,2* Tau ,Tau , Tau /2) ; % title ( Raised - cossine

eye - diagram );

57 % legend ( Ideal Case )

58 print ic_yrcos4 -deps

59
60 %% Applying awgn

61 s = 0.4;

62 awgn1 = normrnd (0,s ,1, length ( yrz )); %% Cria um sinal de

ruido branco gaussiano ( media 0 e desvio ~apadro s)

63 awgn2 = normrnd (0,s ,1, length ( ynrz ))*s; %% Cria um sinal de

ruido branco gaussiano ( media 0 e desvio ~apadro s)

64 awgn3 = normrnd (0,s ,1, length ( ysine ))*s; %% Cria um sinal de

ruido branco gaussiano ( media 0 e desvio ~apadro s)

65 awgn4 = normrnd (0,s ,1, length ( yrcos ))*s; %% Cria um sinal de

ruido branco gaussiano ( media 0 e desvio ~apadro s)

66

67 %% Plotting awgn case

14

68

69 eyediagram ( yrz + awgn1 ,2* Tau ,Tau , Tau /2) ; % title (RZ eye -

diagram );

70 % legend (AWGN )

71 print awgn_yrz4 -deps

72

73 eyediagram ( ynrz + awgn2 ,2* Tau ,Tau , Tau /2) ; % title ( NRZ eye -

diagram );

74 % legend (AWGN )

75 print awgn_ynrz4 -deps

76

77 eyediagram ( ysine + awgn3 ,2* Tau ,Tau , Tau /2) ; % title (Half -

sine eye - diagram );

78 % legend (AWGN )
79 print awgn_ysine4 -deps

80

81 eyediagram ( yrcos + awgn4 ,2* Tau ,Tau , Tau /2) ; % title ( Raised -

cossine eye - diagram );

82 % legend (AWGN )

83 print awgn_yrcos4 -deps

84

85 %% Modulating with jitter

86 yrz = conv ( dataupj , pnrz ( Tau ));

87 ynrz = conv ( dataupj , pnrz ( Tau ));

88 ynrz = ynrz (1: end -Tau +1) ;

89 ysine = conv ( dataupj , psine ( Tau ));

90 ysine = ysine (1: end - Tau +1) ;

91 Td = 4;

92 yrcos = conv ( dataupj , prcos (0.5 ,Td ,Tau ));

93 yrcos = yrcos (2* Td* Tau :end -2* Td* Tau +1) ;

94

95 %% Plotting jitter case

96

97 eyediagram (yrz ,2* Tau ,Tau ,Tau /2) ; % title (RZ eye - diagram );

98 % legend ( Jitter )

99 print j_yrz4 -deps

100

101 eyediagram (ynrz ,2* Tau ,Tau ,Tau /2) ; % title ( NRZ eye - diagram )

102 % legend ( Jitter )

103 print j_ynrz4 -deps


104

105 eyediagram (ysine ,2* Tau ,Tau , Tau /2) ; % title (Half - sine eye -

diagram );

106 % legend ( Jitter )

107 print j_ysine4 -deps

108

15

109 eyediagram (yrcos ,2* Tau ,Tau , Tau /2) ; % title ( Raised - cossine

eye - diagram );

110 % legend ( Jitter )

111 print j_yrcos4 -deps

112

113 %% Plotting awgn case

114

115 eyediagram ( yrz + awgn1 ,2* Tau ,Tau , Tau /2) ; % title (RZ eye -

diagram );

116 % legend ( AWGN + Jitter )

117 print j_awgn_yrz4 -deps

118

119 eyediagram ( ynrz + awgn2 ,2* Tau ,Tau , Tau /2) ; % title ( NRZ eye -

diagram );

120 % legend ( AWGN + Jitter )

121 print j_awgn_ynrz4 -deps

122

123 eyediagram ( ysine + awgn3 ,2* Tau ,Tau , Tau /2) ; % title (Half -

sine eye - diagram );

124 % legend ( AWGN + Jitter )


125 print j_awgn_ysine4 -deps

126

127 eyediagram ( yrcos + awgn4 ,2* Tau ,Tau , Tau /2) ; % title ( Raised -

cossine eye - diagram );

128 % legend ( AWGN + Jitter )

129 print j_awgn_yrcos4 -deps

130

131 close all

A partir do cdigo exposto acima, obtemos os seguintes grficos:


Analise de Resultados

possvel notar que um pulso polar RZ e o NRZ conseguem eliminar a ISI uma vez
que possui amplitude 0 para nTb, comndiferentede1, sendo que o RZ consegue fazer
isso com uma melhor relao Pe x Potencia, entretanto estes dois tipos de sinalizao
no so implementveis, tornando claro que a melhor escolha para o caso pratico
seria o Cosseno Levantado pois apresenta a mesma banda do Meio Seno, enquanto que
apresenta um melhor tempo de decaimento e uma imunidade maior ao Jitter. Tambm
possvel notar que embora o PAM Quaternrio tenha uma maior taxa de transmisso
para manter a mesma Pe do PAM e necessrio um aumentar na potencia do sinal.

Anda mungkin juga menyukai