Você está na página 1de 3

Universidade Federal de Uberlândia

Faculdade de Engenharia Elétrica


Engenharia Eletrônica e de Telecomunicações

Laboratório - Sincronismo de Bit

Objetivos
- Implementar no Matlab 2 métodos diferentes de sincronização de bits.
- Melhorar a compreensão do funcionamento dos métodos de sincronização de bits.
- Melhorar a capacidade de interpretação de exemplos e códigos no Matlab.

Procedimentos

Método 1

Assuma que um sinal NRZ Polar passe por um canal limitado em banda. Caso o sinal NRZ seja
elevado ao quadrado, uma componente é gerada na mesma frequência que a taxa de símbolos.
Então um PLL (phase-locked loop) pode ser utilizado para trava a fase da componente para gerar o
sinal de sincronismo de bit.

Para o experimento do método 1, 1000 símbolos são gerados no código dado, assuma que a duração
desses 1000 símbolos seja de 1 segundo. Portanto, a taxa de símbolos será igual a 1000 símbolos/s.
O sinal NRZ é amostrado a uma taxa de 50 amostras por símbolo, o que dá uma frequência de
amostragem igual a 50 kHz. O sinal NZ é filtrado por um filtro passa-baixa do tipo Butterworth de
terceira ordem e frequência de corte 2 vezes maior que a taxa de símbolos.

Leia, entenda e implemente o código abaixo no Matlab e gere os gráficos que demonstrem o
funcionamento do método 1.

Explique o que cada gráfico representa.

Comente cada trecho do código de forma a explicar o que está acontecendo.

Código para o Método 1


% Método 1
nsym = 1000; nsamp = 50; lambda = 0.7;
[b,a] = butter(3,2*lambda/nsamp);
l = nsym*nsamp; % Comprimento total da sequência
y = zeros(1,l-nsamp + 1); % Inicializa o vetor de saída
x =2*round(rand(1,nsym))-1; % Sequência binária (-1 ou +1)
for i = 1:nsym % Loop para gerar os símbolos de informação
k = (i-1)*nsamp + 1;
y(k) = x(i);
end
datavector1 = conv(y,ones(1,nsamp)); % Faz cada símbolo possuir comprimento igual a
nsamp
subplot(3,1,1), plot(datavector1(1,200:799),'k', 'LineWidth', 1.5)
axis([0 600 -1.4 1.4]), ylabel('Amplitude')
filtout = filter(b,a,datavector1);

Comunicações Digitais 1
Gustavo Nozella Rocha
Universidade Federal de Uberlândia
Faculdade de Engenharia Elétrica
Engenharia Eletrônica e de Telecomunicações

datavector2 = filtout.*filtout;
subplot(3,1,2), plot(datavector2(1,200:799),'k', 'LineWidth', 1.5)
ylabel('Amplitude')
y = fft(datavector2);
yy = abs(y)/(nsym*nsamp);
subplot(3,1,3), stem(yy(1,1:2*nsym),'k.')
xlabel('FFT Bin'), ylabel('Spectrum')
% End of script file.

Método 2

Para o experimento do método 2, tem-se o chamado método de sincronização própria, ilustrado na


figura 1. Por causa da operação não-linear provida pela operação de atrasa-e-multiplica, uma
potência é produzida na frequência de símbolos.

Figura 1 – Diagrama de blocos do método 2.

Implemente o código abaixo no Matlab e gere os gráficos que demonstrem o funcionamento do


método 2.

Explique o que cada gráfico representa.

Comente cada trecho do código de forma a explicar o que está acontecendo.

Código para o método 2


% Método 2
nsym = 1000; nsamp = 50; % nsamp deve ser par
m = nsym*nsamp;
y = zeros(1,m-nsamp + 1); % Inicializa o vetor de saída
x =2*round(rand(1,nsym))-1; % Sequência binária (-1 ou +1)
for i = 1:nsym % Loop para gerar os símbolos de informação
k = (i-1)*nsamp + 1;

Comunicações Digitais 1
Gustavo Nozella Rocha
Universidade Federal de Uberlândia
Faculdade de Engenharia Elétrica
Engenharia Eletrônica e de Telecomunicações

y(k) = x(i);
end
datavector1 = conv(y,ones(1,nsamp)); % Faz cada símbolo possuir comprimento igual a
nsamp
subplot(4,1,1), plot(datavector1(1,200:800),'k', 'LineWidth', 1.5)
axis([0 600 -1.4 1.4]), ylabel('Amplitude')
datavector2 = [datavector1(1,m-nsamp/2 + 1:m) datavector1(1,1:m-nsamp/2)];
subplot(4,1,2), plot(datavector2(1,200:10000),'k', 'LineWidth', 1.5)
axis([0 600 -1.4 1.4]), ylabel('Amplitude')
datavector3 = datavector1.*datavector2;
subplot(4,1,3), plot(datavector3(1,200:10000),'k', 'LineWidth', 1.5), axis([0 600 -1.4 1.4]),
ylabel('Amplitude')
y = fft(datavector3);
yy=abs(y)/(nsym*nsamp);
subplot(4,1,4), stem(yy(1,1:4*nsym),'k.')
xlabel('FFT Bin'), ylabel('Spectrum')
% End of script file.

Comunicações Digitais 1
Gustavo Nozella Rocha

Você também pode gostar