Você está na página 1de 4

Escola Superior de Tecnologia e Gestão

Politécnico de Leiria

Fundamentos de Telecomunicações
(Enga Electrotécnica e Computadores, 2o Ano/D + PL)

Trabalho laboratorial nº1

Codificação de fonte
Fundamentos de Telecomunicações – 2EEC-D/PL

1. OBJETIVOS

A codificação de fonte é uma operação muito importante nos sistemas de transmissão digitais
porque permite minimizar o débito de transmissão do sistema. Esta operação baseia-se na
caracterização estatística da fonte de informação. O codificador de fonte pretende retirar a
redundância aos símbolos gerados pela fonte, diminuindo o débito binário necessário para
transmitir a informação pretendida. Pretende-se com este trabalho aplicar os conceitos da
teoria de informação na caracterização de fontes de informação e implementar
(des)codificadores de fonte recorrendo aos método de Huffman e Shannon-Fano.

NOTA: Todos os comandos necessários para este trabalho devem ser inseridos em dois
ficheiros do tipo M-File, um para o codificador de Huffman e outro para o codificador de
Shannon-Fano. O ficheiros deverão ter o nome PL1_PART1_(numero de estudante).m e
PL1_PART2_(numero de estudante).m, respetivamente.

NOTA: Os alunos que usem o software Octave, devem ativar a toolbox de comunicações,
usando o comando “pkg load communications”.

2. CODIFICADOR DE HUFFMAN (45%)

2.1) Importe para o Matlab/Octave, usando a função “audioread”, os dados do ficheiro


áudio “'splash.wav” disponível na página da disciplina.

2.2) Através da informação fornecida pela função “audioinfo”, determine o tamanho do


alfabeto usado na aquisição deste sinal, e o passo de quantização Δ, sabendo que, os
símbolos gerados pela fonte de voz se encontram uniformemente espaçados ao longo
do intervalo [−1 ; 1[. Imprima a sua resposta na janela de comandos do
Matlab/Octave.
Sugestão: Use a função “display”.

2.3) Crie uma variável 𝑎𝑚𝑝𝑆𝑖𝑚𝑏𝑜𝑙𝑜 que faça a correspondência entre o índice do
símbolo e a amplitude correspondente.
Exemplo:
Índice do símbolo Amplitude
1 1−Δ
1 − 2Δ
⋮ ⋮
𝑀−1 1 − (𝑀 − 1)Δ
𝑀 1 − 𝑀Δ = −1

Trabalho laboratorial 1 – Codificação de fonte 2/4


Fundamentos de Telecomunicações – 2EEC-D/PL

2.4) Faça a análise estatística dos símbolos do sinal sonoro e contrua a tabela de
probabilidade de ocorrência. Guarde essa tabela numa variável com o nome
𝑇𝑎𝑏_𝑝𝑟𝑜𝑏. Esta variável deve ter na primeira coluna o índice do símbolo, na segunda
coluna o número de vezes que o símbolo apareceu no sinal sonoro, e na terceira
coluna o valor correspondente de probabilidade de ocorrência.

2.5) Represente o histograma e a função densidade de probabilidade dos símbolos na


mesma figura:
Nota: Use as funções bar e subplot.

2.6) Construa o código de Huffman para esta fonte.


Sugestão: Use a função “huffmandict”.

2.7) Calcule o comprimento médio do código ( N ), a sua eficiência ( ) e verifique se o


código é unicamente decifrável. Imprima a sua resposta na janela de comandos do
Matlab/Octave.

2.8) Compare a eficiência (  ) do código desenvolvido com um código de comprimento


fixo aplicado à mesma fonte de informação. Imprima a sua resposta na janela de
comandos do Matlab/Octave.

2.9) Através da tabela de codificação de Huffman gerada anteriormente, converta o fluxo


de símbolos do ficheiro áudio, em fluxo de bits binários.
Sugestão: Use a função “huffmanenco”.

2.10) Finalmente, recupere a mensagem original, isto é, o ficheiro de som, recorrendo a


um descodificador de Huffman.
Sugestão: Use a função “huffmandeco”.

Trabalho laboratorial 1 – Codificação de fonte 3/4


Fundamentos de Telecomunicações – 2EEC-D/PL

3. CODIFICADOR SHANNON-FANO (55%)

3.1) Importe para o Matlab/Octave, os dados do ficheiro áudio “Shannon_Signal.mat”.

3.2) Analise o conteúdo do sinal Shannon_Signal, e contrua a lista de símbolos possíveis


(Alfabeto). Imprima a sua resposta na janela de comandos do Matlab/Octave.
Sugestão: Use a função “unique”.

3.3) Faça a análise estatística dos símbolos do sinal sonoro e contrua a tabela de
probabilidade de ocorrência. Guarde essa tabela numa variável com o nome
𝑇𝑎𝑏_𝑝𝑟𝑜𝑏. Esta variável deve ter na primeira coluna o índice do símbolo, na segunda
coluna o número de vezes que o símbolo apareceu no sinal sonoro, e na terceira
coluna o valor correspondente de probabilidade de ocorrência.

3.4) Represente o histograma e a função densidade de probabilidade dos símbolos na


mesma figura:
Nota: Use as funções bar e subplot.

3.5) Construa o código de Shannon-Fano para esta fonte.


Sugestão: Use a função “ShannonDict” disponibilizada.

3.6) Calcule o comprimento médio do código ( N ), a sua eficiência ( ) e verifique se o


código é unicamente decifrável. Imprima a sua resposta na janela de comandos do
Matlab/Octave.

3.7) Através da tabela de codificação de Shannon-Fano gerada anteriormente, converta o


fluxo de símbolos do ficheiro áudio, em fluxo de bits binários.
Sugestão: Desenvolva uma função que permita a codificação com base nas tabelas
de símbolos.

3.8) Finalmente, recupere a mensagem original, isto é, o ficheiro de som, recorrendo a


um descodificador de Shannon-Fano.
Sugestão: Desenvolva uma função que permita a descodificação com base nas tabelas
de símbolos.

Trabalho laboratorial 1 – Codificação de fonte 4/4

Você também pode gostar