TELECOMUNICAÇÕES II Trabalho nº 2 Códigos de linha Trabalho realizado por : Igor Terroso Fernando Pinto Oscar Patrício da Turma 4EEC08
Indice: Objectivo...3 Conceitos teóricos...4 O codigo de linha 2B1Q...6 Construção do Bloco SIMULINK...7 Densidades espectrais de potencia...10 Análise das características do canal de transmissão...13 Pagina nº 2 de 15
Objectivo O objectivo deste trabalho é o estudo do código de linha 2B1Q. Este estudo vem em consequência do estudo do trabalho nº 2 efectuado na aula, no qual foram observados e estudados os códigos Unipolar NRZ, Polar NRZ, Unipolar RZ, Bipolar NRZ e Manchester. Para o estudo deste código iremos criar um bloco de simulink capaz de codificar uma sequência Unipolar NRZ em 2B1Q. Com este bloco criado, passaremos então ao estudo de várias sequências aleatórias com débitos diferentes. Pagina nº 3 de 15
Conceitos teóricos Os diferentes códigos de linha permitem que convertamos uma sequência binária em diferentes formas de onda. O objectivo desta codificação é, essencialmente, a adequação da forma de onda às características do canal de comunicação que é utilizado, embora também devam procurar uma ocupação mínima de largura de banda. Uma melhor adequação da forma de onda ao canal permite cumprir alguns dos seguintes objectivos, como por exemplo: - reduzindo os erros de transmissão (resistência a perturbações) - reduzindo a utilização da banda de frequências (reduzindo a largura de banda) - reduzindo a utilização de potência do sinal Assim os códigos de linha devem apresentar as seguintes características: - serem transparentes para os vários tipos de mensagens - permitir descodificação unívoca - manter informação de temporização suficiente para recuperação do relógio Podem ainda acrescentar características que permitam: - correcção de erros - reduzir a taxa de transferência (ou aumento de velocidade de transmissão) - acrescentar melhorias na adaptatibilidade ao canal de transmissão (ex: componente contínua nula, possibilidade de igualização de características do canal, etc...). Existem pois diversos códigos de linha, com diferentes objectivos e características. Daqueles que estudamos neste trabalho, o Unipolar NRZ, o Polar NRZ, o Unipolar RZ, o Bipolar NRZ e o Manchester, podemos referir o seguinte: - Os códigos de linha unipolares, o Unipolar NRZ e o Unipolar RZ, são códigos muito simples, e não permitem uma componente continua nula. Pagina nº 4 de 15
- O código Polar NRZ já permite esta componente nula, mas é necessário que o número de 0 e 1 sejam idênticos. - O código Bipolar NRZ (AMI) e o Manchester, garantem uma componente contínua nula. Embora esta garantia seja absoluta no caso do código Manchester, pois cada impulso tem componente contínua nula, no caso do código AMI a situação é diferente. Como cada 0 é codificado no nível zero e cada 1 em +A ou A, alternadamente, só ao fim de cada numero par de 1 s é que a componente contínua estará nula. No entanto, e assumindo uma sequência longa, a tendência será sempre para uma componente contínua nula. - Nenhum destes códigos reduz a taxa de transferência ou permite a correcção de erros. Outros códigos a referir são, por exemplo, o HDB3, que sendo baseado no AMI, evita longas sequências de Zeros, que poderiam levar à perda da temporização, através da inserção de impulsos de violação e respectivos inpulsos de balanceamento. Saindo da codificação binária, existem códigos como o 4B3T que converte 4 dígitos binários em 3 ternários, ou o 2B1Q que converte 2 dígitos binários em 1 quaternário. Estes códigos além de garantirem um balanceamento do sinal, garantindo assim uma componente contínua nula, permitem ainda uma redução da taxa de transmissão. No 1º caso a taxa de transmissão é reduzida para 75%, enquanto que no segundo a redução é para 50%. Códigos do tipo nbmb, em que n dígitos binários são convertidos em m dígitos binários (m>n), efectuam um balanceamento constante dos m dígitos, melhoram a detecção e correcção de erros. No entanto há um aumento da largura de banda consumida, pelo que são normalmente utilizados em sistemas de banda larga. Pagina nº 5 de 15
O codigo de linha 2B1Q A codificação deste código de linha obedece à tabela seguinte: Ultima saída Bloco de entrada Saída 3 ou 1 00 1 01 3 10-1 11-3 -3 ou 1 00-1 01-3 10 1 11 3 Conforme se pode depreender da tabela, é necessário saber a ultima saída para obter o novo dígito quaternário correspondente ao bloco de 2 dígitos binários. Assim, no início da codificação é neccessário definir um valor para a última saída, que será o valor de início. Após a primeira codificação este valor passará, correctamente, a ter o valor da ultima saída do codificador. Desta forma, para a sequência dada b={0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0} e segundo a indicação que o primeiro impulso 2B1Q terá amplitude de 1V, consultando a tabela para verificar que bloco 00 é convertido em 1, verificamos que a ultima saída deverá ser inicializada em 3 ou 1. Assim, para esta sequência a forma de onda obtida será: Pagina nº 6 de 15
Construção do Bloco SIMULINK Para a construção de um bloco Simulink capaz de fazer a codificação 2B1Q estudou-se a forma como foram efectuados outros blocos de codificação. Após o estudo desses blocos e optou-se por efectuar os seguintes passos: - Efectuar a leitura de 2 dígitos binários, lendo um após outro. É introduzindo um atraso de um período no primeiro enquanto se aguarda pelo segundo. - De acordo com uma tabela de verdade de 4 entradas, correspondente à codificação para a última saída positiva, converte-se o bloco nos valores 1, 3, -1 ou 3. De notar que no caso da ultima saída ser negativa, as saídas são simétricas ao caso da ultima saída positiva. - Esta conversão está a ser feita de período em período. Como só interessam os valores obtidos de 2 em 2 dígitos, ou seja, ao fim do 2º, 4º, 6º,..., períodos, usa-se um amostrador tipo sample and hold para guardar o valor pretendido durante dois períodos. Assim o valor que não interessa é descartado. Nesta processo a taxa de transferência baixa para 50%. - Após a obtenção do valor da saída correspondente à meia tabela positiva, efectua-se o produto entre o valor de saída e o sinal da última saída. Obtemos assim a codificação completa em 2B1Q. É de realçar que este processo tem um atraso de 2 períodos em relação ao primeiro dígito da sequência a codificar. Este atraso é necessário pois é necessário ler dois dígitos binários para poder convertê-los no dígito quaternário correspondente. Em termos do código 2B1Q gerado, como a taxa de transferência passou para 50%, os períodos passam para o dobro do tempo, pelo que o atraso em 2B1Q é de um período. Os vários blocos assumem valores iniciais passados através de parametros que garantem que o primeiro período do código 2B1Q a saída será o valor escolhido para Ultima saída. Segue-se o esquema do bloco criado. Este bloco foi preparado como máscara para ser utilizado nas análises seguintes: Pagina nº 7 de 15
Mas a utilização deste bloco apresentou problemas para períodos de amostragem muito pequenos. Parece que o bloco de logica combinacional não estará a funcionar correctamente para uma grande cadência de amostras. Analizando novamente a meia tabela de codificação, percebe-se que o sinal da saída está associado ao primeiro bit do bloco e o valor 1 ou 3 está associado ao segundo bit. Assim foi possivel construir um bloco de características diferentes. Em função do 1º bit defino o sinal e em função do segundo define o módulo. Basta por fim efectuar o produto do módulo pelo sinal e pela ultima saída e o conversor funciona correctamente. O esquema para esta solução é: Pagina nº 8 de 15
Quando usado como bloco, a forma de apresentação é: A saída obtida com estes blocos, neste caso para teste da sequência binária apresentada anteriormente, com R=1000, é: Pagina nº 9 de 15
Densidades espectrais de potencia Para obter as densidades espectrais de potência usou-se o circuito apresentado na figura seguinte. Gerou-se um vector com 1000 bits, com zeros e uns equiprováveis. Duração é 1s pelo que R será 1000. A frequência de amostragem usada é 10*r, ou seja fs=10khz. Usando os dados extraidos para o vector x e aplicando a função psd do mathlab obtemos: Pagina nº 10 de 15
Podemos deprender daqui que a largura de banda mínima de transmissão é ligeiramente inferior a 500Hz, e a relação entre a largura de banda e a taxa de tranmissão é B/R = 500/1000 = ½. Alterando os débitos binários R para 5K, 10K e 20K bits, obtemos os seguintes diagramas de densidade espectral de potência: Para R = 5Kbits, fs = 10*R = 50KHz: Para R = 10Kbits, fs = 10*R = 100KHz: Pagina nº 11 de 15
Para R = 20Kbits, fs = 10*R = 200KHz: Como se pode concluir dos vários diagramas, o primeiro nulo do espectro do sinal é sempre próximo (ligeiramente inferior) ao valor de R/2. Ou seja a relação entre a largura de banda mínima e o débito binário B/R é ½. Pagina nº 12 de 15
Análise das características do canal de transmissão Usando bloco de simulink seguidamente apresentado, obtemos o sinal após a passagem pelo canal, para os valores de potencia de ruído 0 e 1. Com este circuito, assumindo os valores de R=1000bits/s, fs= 10*R = 10KHz, G=1 e B=4KHz, obtemos respectivamente para níveis de potência de ruído de canal N=0 e N=1 as seguintes saídas: Sinal 2B1Q à entrada do canal e sinal à saída do canal com N=0, entre 0 e 20ms. Pagina nº 13 de 15
Sinal 2B1Q à entrada do canal e sinal à saída do canal com N=1, entre 0 e 20ms. Para a transmissão nestes dois tipos de canal, existe uma forma de avaliar a sua qualidade na recepção: o diagrama de olho. Devido às características do canal, nomeadamente efeitos de atenuação, filtragem e ruído, poderá ser difícil ao receptor decidir correctamente qual o simbolo recebido. O diagrama de olho permite uma avaliação qualitativa imediata da qualidade da recepção. Usando este diagrama para avaliar a qualidade dos dois canais simulados, os resultados obtidos foram: Diagrama de olho para a recepção do canal sem ruído (N=0). Pagina nº 14 de 15
Diagrama de olho para a recepção do canal com bastante ruído (N=1). Como se pode concluir, no canal que não apresenta ruído, distinguem-se perfeitamente as diferentes níveis do sinal transmitido. Com uma observação mais cuidada poderemos verificar que se a decisão for feita nos valores intermédios e na segunda metade do período do sinal, os erros serão práticamente nulos. Isto já não se verifica no caso do canal com ruído, no qual é impossivel distinguir os níveis do sinal transmitido, pelo que é possível concluir que o decisor na recepção cometerá muitos erros. -- Fim -- Pagina nº 15 de 15