modem acÚstico - notícias [engenharia eletrica - ufpr] · 2012-01-16 · trabalho apresentado ao...
TRANSCRIPT
i
UNIVERSIDADE FEDERAL DO PARANÁ
PRÓ-REITORIA DE GRADUAÇÃO
CURSO DE ENGENHARIA ELÉTRICA
MODEM ACÚSTICO
BIANCA WRIGHT
Curitiba
2012
ii
BIANCA WRIGHT
MODEM ACÚSTICO
Projeto de Graduação de Engenharia
Elétrica, Departamento de Engenharia
Elétrica, Setor de Tecnologia,
Universidade Federal do Paraná.
Orientador: Prof Dr Evelio Martín Garcia Fernandez
Curitiba
2012
iii
BIANCA WRIGHT
MODEM ACÚSTICO
Trabalho apresentado ao curso de Engenharia Elétrica da Universidade Federal
do Paraná, como requisito à obtenção do título de graduação.
COMISSÃO EXAMINADORA
________________________________________________
PROF DR EVELIO MARTIN GARCIA FERNANDEZ – UFPR
________________________________________________
PROF Ph.D. EDUARDO GONÇALVES DE LIMA – UFPR
________________________________________________
PROF M.Sc. WALDOMIRO SOARES YUAN - UFPR
Curitiba
2012
iv
AGRADECIMENTOS
Agradeço à Universidade Federal do Paraná por todas as oportunidades de
crescimento profissional e principalmente cultural durante estes 6 anos de graduação. À
minha família e amigos pelo apoio durante essa etapa da minha vida. Ao suporte concedido
pelo colega Conrado Kamienski Mesadri. Aos professores que tanto agregaram à minha
formação durante este período e principalmente ao Prof Dr Evelio Garcia Fernandes, um
professor cuja vontade de repassar conhecimentos é espantosa e que sobretudo pôde
gentilmente compreender as minhas dificuldades com relação a este projeto.
v
RESUMO
Com o intuito de aplicar os conhecimentos adquiridos sobre Comunicação, este
trabalho relata a concepção de um enlace de comunicação que utiliza o ar como meio de
transmissão e ondas sonoras como forma de propagação da informação. Para tanto, técnicas
de modulação, sincronismo temporal, sincronismo de portadora e equalização são discutidas e
testadas, sendo implementadas por meio do software matemático MATLAB, que juntamente
com a placa de som de dois computadores, um auto-falante e microfone, completam o enlace.
Palavras-chave: modem acústico, QPSK, sincronismo temporal, Costas Loop.
vi
ABSTRACT
In order to use the acquired Communications knowledge, this work reports the
conception of a communication enlace that uses the air as a transmission channel and sound
waves as carrier. To do this, modulation techniques, timing recovery, carrier recovery and
equalization are discussed and tested. These are implemented by using the math software
MATLAB that compounds the enlace along with the sound card of two computers, one
speaker and a microphone.
Key words : acoustic modem, QPSK, timing recovery, Costas Loop.
vii
LISTA DE FIGURAS
Figura 1 - Esquemático Resumido do Enlace ............................................................................. 2 Figura 2 - Esquemático Detalhado do Enlace ............................................................................ 3 Figura 3 - Constelação da Modulação QPSK (a) e da modulação BPSK (b). ............................ 6 Figura 4 - Comparação dos Espectros do Sinal em Banda Base (a) com o Sinal Filtrado (b) e o
Sinal Modulado (c). .................................................................................................................... 8 Figura 5 - Esquemático do Funcionamento do Costas Loop .................................................... 10 Figura 6 - Efeito do sincronismo de símbolo - Valor de Tau x Comportamento do Sinal
conforme a convergência do algoritmo. ................................................................................... 13 Figura 7 - Sincronismo de Quadro - Correlação entre sinal recebido e sequência de
treinamento (fase ou quadratura), que possibilita o início da mensagem. ................................ 14 Figura 8 - Esquemático do Enlace com os algoritmos aplicados de sincronismo .................... 15 Figura 9 - Estimação de Canal - Cabo Metálico ....................................................................... 17
Figura 10 - Estimação de Canal - Microfone e Alto-Falante ................................................... 17 Figura 11 - Composição da mensagem enviada. ..................................................................... 20 Figura 12- Transmissão por meio do som realizada com sucesso. ........................................... 20
Figura 13 - Banco de Testes – visualização da estrutura de espuma utilizada. ........................ 23 Figura 14 - Banco de Testes com alto-falante, microfone e estrutura de espuma utilizados. .. 23
Figura 15 - Caracterização do Canal para diferentes distâncias do microfone. ....................... 26 Figura 16 - Constelações dos sinais recebidos para diferentes distâncias do microfone. ........ 27 Figura 17 - Sincronismo de quadro – característica pseudo-aleatória do primeiro bloco da
mensagem a ser discutida posteriormente. ............................................................................... 28 Figura 18 - Estimador de fase – sincronismo de fase deve convergir para o valor estimado de
desvio de fase até o início da sequência de treinamento (no caso até 5000 iterações – 500
símbolos). ................................................................................................................................. 29 Figura 19 - Resposta do Costas Loop para diversas condições iniciais para o mesmo valor de
desvio de fase. .......................................................................................................................... 30 Figura 20 - Equalização Algoritmo Decision Directed ............................................................ 32
Figura 21 - Trajetória dos Coeficientes de Equalização - Decision Directed de 3a ordem. ..... 33
Figura 22 - Efeito Espectral da Equalização ............................................................................ 34 Figura 23 - Efeito da Equalização - Comparação com sinal não equalizado e ideal. ............... 35
viii
LISTA DE SIGLAS
QPSK Quadrature Phase Shift Keying
BPSK Binary Phase Shift Keying
BER Bit Error Rate
PLL Phased Locked Loop
MLS Maximum Length Sequence
BPF Band Pass Filter
DC Direct Curremt
ix
SUMÁRIO
1 INTRODUÇÃO ................................................................................................................. 1 1.1 OBJETIVOS ............................................................................................................. 1 1.2 PÚBLICO ALVO ..................................................................................................... 3
1.3 DIFERENCIAL DO PROJETO ............................................................................... 4 1.4 RECURSOS NECESSÁRIOS .................................................................................. 4
2 IMPLEMENTAÇÃO DE MODULAÇÃO DO SINAL, SINCRONISMO
TEMPORAL, SINCRONISMO DE PORTADORA UTILIZANDO UM CANAL
IDEAL. ...................................................................................................................................... 5 2.1 MODULAÇÃO E FILTRAGEM PARA FORMATAÇÃO DE PULSOS .............. 5
2.2 SINCRONISMO DE PORTADORA ....................................................................... 9
2.3 SINCRONISMO TEMPORAL .............................................................................. 11
3 ESTIMAÇÃO DOS CANAIS: CABO METÁLICO E AR, REALIZAÇÃO DE
TESTES E ESTUDOS PARA IMPLEMENTAÇÃO DA EQUALIZAÇÃO DO CANAL.
16 3.1 ESTIMAÇÃO DOS CANAIS – COMPARAÇÃO ENTRE O CABO METÁLICO
E O SOM ENVIADO PELO AR ............................................................................................. 16 3.2 SÉRIE DE TESTES REALIZADOS PARA COMUNICAÇÃO EFETIVA ......... 18 3.3DIFICULDADES ENCONTRADAS DURANTE A REALIZAÇÃO DOS
TESTES ........................................................................................................................................
4 EQUALIZAÇÃO ............................................................................................................. 31 5 CONCLUSÃO ................................................................................................................. 36
REFERÊNCIAS .............................................................................................................. 39
ANEXO 1 .......................................................................................................................... 41
1
1 INTRODUÇÃO
A implementação de um modem acústico, ou seja, de um sistema de comunicação
digital, que utiliza como hardware a placa de som de um computador tanto para a transmissão
quanto para a recepção, integrado ao software matemático MATLAB, e que utiliza ainda
como meio de transmissão o ar, ondas mecânicas (som) como forma de propagação da
informação é o tema cujo plano de trabalho é descrito neste documento.
1.1 OBJETIVOS
O projeto tem como principal objetivo a implementação de um modem acústico, a fim
de aplicar os conhecimentos adquiridos sobre Comunicação Digital. Tal implementação
permite a exploração prática do assunto, por meio de estudos realizados com base nos
resultados obtidos. Um rádio definido por software abrange praticamente todos os conceitos
relacionados à Comunicação e apresenta dificuldade relativa de execução sendo assim
considerado uma boa técnica de aprendizado na área.
O trabalho consiste na adaptação do projeto utilizado pelos alunos da disciplina de
Comunicação Digital, na qual os alunos semestralmente desenvolvem um projeto de sistema
de comunicação, utilizando placas de som de computadores tanto para transmissão quanto
para recepção. No caso, um cabo metálico interliga as duas placas de som, ligando a saída de
alto-falantes de uma e a entrada de microfone da outra – ao contrário deste trabalho, cujo
meio de transmissão é o ar, e o papel de transdutor é feito por meio de um alto-falante e um
microfone conectados às placas de som. Todo o tratamento do sinal é feito pelo software
matemático MATLAB, por meio de um kit de aquisição de dados chamado DAQ – que
permite a interação do MATLAB com as interfaces D/A e A/D da placa de som do
2
computador.
Um esquemático do enlace pode ser visualizado na Figura 1.
A utilização do ar como meio de transmissão exige um rigor quanto ao tratamento do
sinal recebido, bem como um foco nas sincronizações necessárias (correções de atrasos
inseridos, inversões de fase, degradação do sinal), bem como na exploração de diferentes
técnicas de modulação.
Figura 1 - Esquemático Resumido do Enlace
Outro ponto a ser considerado é a necessidade da estimação do canal. Como no projeto
da disciplina de Comunicação Digital um cabo metálico é utilizado como canal de
transmissão e os atrasos e níveis de degradação do sinal por eles inseridos podem ser
desconsiderados por não interferirem de maneira importante na recuperação do sinal, um
estudo aprofundado não é necessário. Já no caso do modem acústico, tal estudo auxilia nas
questões de sincronismos e em toda a parte do tratamento do sinal recebido, uma vez que a
estimação de canal visa corrigir distorções e atenuações sobre o sinal durante a transmissão do
mesmo. Desta forma, o enlace resumido na Figura 1 pode ser melhor representado pelo
esquema da Figura 2, na qual as principais fases de tratamento do sinal foram incluídas.
Cada fase de tratamento será detalhada posteriormente seguindo a ordem do caminho
percorrido pelo sinal no enlace. A implementação de cada fase não foi, entretanto, realizada
na mesma ordem.
3
Figura 2 - Esquemático Detalhado do Enlace
1.2 PÚBLICO ALVO
Este trabalho tem cunho principalmente didático – seu principal objetivo é a aplicação
prática de conceitos aprendidos nas disciplinas de Telecomunicações. Um enlace digital
implementado por meio de uma placa de som e do software matemático MATLAB pode ser
utilizado em laboratórios para realização de exercícios, projetos e pesquisa, sendo útil
portanto à toda a comunidade acadêmica envolvida no ensino de Telecomunicações
(IBAÑEZ).
Entretanto, o desenvolvimento de modems acústicos tem sido explorado no campo de
comunicações submarinas, na transmissão de dados de robôs de mergulho segundo Stojanovic
(1996) e Gomes et al (2000), ou então, de acordo com Lemma et al (2003), para a
transmissão de informações embutida em marca d’água no sinal de áudio. O desenvolvimento
desta tecnologia pode então auxiliar o trabalho dos profissionais que se utilizam de tais
ferramentas, e até estimular a utilização das mesmas.
4
1.3 DIFERENCIAL DO PROJETO
O principal diferencial deste projeto é justamente a utilização do som como forma de
propagação para a transmissão de informação, bem como a possibilidade de transmitir dados
com modulação em quadratura usando tal técnica também é um diferencial a nível de
comunicação. A utilização de um hardware de baixo custo e disponível praticamente para
todos é um outro ponto a ser salientado, pois facilita o processo de fixação dos conhecimentos
adquiridos, uma vez que a maioria das instituições de ensino possuem acesso limitado ou
sequer dispõem de um kit de DSP (Digital Signal Processing), por exemplo.
1.4 RECURSOS NECESSÁRIOS
No que diz respeito ao hardware necessário, ele basicamente se resume em dois
computadores que possuam placa de som em condições de uso, um alto-falante e um
microfone.
Já relacionado às necessidades de software, o software matemático MATLAB é
responsável por toda a parte do tratamento do sinal como filtragem, sincronização, sendo que
todo o código utiliza a sua plataforma para desenvolvimento. A licença de uso do software é
propriedade do Departamento de Engenharia Elétrica da Universidade Federal do Paraná. É
importante destacar a necessidade de que a versão utilizada do MATLAB possua o chamado
DAQ, ou toolbox Data Acquisition, que permite a chamada de funções, tratamento e
envio/coleta de dados por meio das placas de aquisição do PC – a placa de som inclusa
(FERNANDEZ, PANAZIO, ZANATTA).
5
2 IMPLEMENTAÇÃO DE MODULAÇÃO DO SINAL,
SINCRONISMO TEMPORAL, SINCRONISMO DE PORTADORA UTILIZANDO
UM CANAL IDEAL.
Para que a informação possa ser transmitida e decodificada na fase de recepção, alguns
itens básicos devem ser abordados: a primeira fase do trabalho consiste na modulação do sinal
no transmissor e no sincronismo temporal e de portadora no receptor através de um canal
ideal – simulação com transmissão direta do sinal, sem perdas.
2.1 MODULAÇÃO E FILTRAGEM PARA FORMATAÇÃO DE
PULSOS
O processo de modulação consiste na variação de um dos parâmetros de uma onda
portadora - geralmente fase, frequência ou amplitude -, de forma a transmitir uma
determinada mensagem (HAYKIN). No caso deste trabalho, devido à característica digital do
sinal, determinada pela utilização da placa de som como interface de hardware para conversão
da informação analógica para a forma digital (bits processados pelo computador), foi utilizada
a técnica de modulação QPSK, do inglês Quadrature Phase Shift Keying – Modulação de
Deslocamento de Fase em Quadratura.
Em técnicas de modulação digital, uma das características da onda é variada de forma
a representar os símbolos digitais que representam a mensagem a ser transmitida. No caso da
modulação QPSK, a fase da onda portadora é modulada de forma a transmitir a informação.
A modulação de fase implica na transmissão de dados por meio do atraso ou
adiantamento da onda portadora, que pode ser ilustrada na sua forma mais simples, através da
modulação BPSK (Binary Phase Shift Keying) que diferencia um bit “zero” de um bit “um”
por meio da existência de deslocamento de fase da portadora, normalmente de 180°. A
6
vantagem da modulação QPSK com relação à BPSK, é que, para uma mesma banda utilizada,
um símbolo carrega um bit de informação se modulado em BSPK enquanto que, se modulado
em QPSK, cada símbolo carrega dois bits de informação. Para tanto a modulação QPSK se
utiliza de parâmetros de fase e quadratura do sinal.
A modulação QPSK pode ser representada ainda por uma constelação de quatro
símbolos, conforme a Figura 3.a, e em consequência, pode codificar dois bits por símbolo. Já
a modulação BPSK, a título de comparação, encontra-se representada na Figura 3.b, na qual é
possível observar que apenas um bit é transmitido por símbolo.
Para a transmissão da informação modulada em QPSK o sinal é então dividido em
duas partes: quadratura e fase – os dois sinais já modulados são somados para a realização da
transmissão.
Juntamente com a modulação, um passo importante na implementação do enlace é a
utilização de filtros casados tanto na transmissão quanto na recepção do sinal. A sua
Figura 3 - Constelação da Modulação QPSK (a) e da modulação BPSK (b).
7
importância se dá principalmente ao fato que sistemas digitais que utilizam sinais com forma
de pulso quadrado no domínio temporal possuem espectro infinito no domínio da frequência,
ocupando assim uma banda infinita. Na prática isto provoca interferência inter-simbólica.
O filtro casado visa então suavizar o sinal digital de forma a limitar a banda por ele
utilizada, condicionando-o à forma de um cosseno levantado, ou seja, condicionar o sinal
digital a uma banda finita. Este condicionamento é feito por meio da utilização de um filtro do
tipo raiz quadrada de cosseno levantado na fase de transmissão e de outro filtro do tipo raiz
quadrada de cosseno levantado na fase de recepção. Como resultado da utilização de dois
filtros do tipo raiz de cosseno levantado obtém-se um sinal do tipo cosseno levantado e a
desejada limitação em banda do sinal digital – a qual acarreta diretamente na eliminação da
interferência inter-simbólica. É importante ressaltar ainda que o sinal é filtrado antes da
modulação em portadora e após a mixagem no receptor.
Na Figura 4, pode-se observar o sinal transmitido em três diferentes momentos
marcantes relacionados à modulação e filtragem. Na Figura 4.a, observa-se o espectro do sinal
em banda-base (não modulado), centrado em zero Hz.
Considerando que o fator de roll-off do filtro casado, também conhecido por fator de
decaimento e representado por α, indica a largura de banda que excede o canal ideal e que o
valor utilizado foi de 0,75, pode-se observar na Figura 4.b a alteração da largura de banda do
sinal na saída do filtro casado. A relação entre o fator de roll-off, a largura de banda na saída
do filtro e a banda ocupada pelo símbolo originalmente (W) é dada na Equação 1. Neste
trabalho, considerando que a frequência de amostragem utilizada é de 44100Hz (frequência de
funcionamento da placa de som do computador), e que o fator de super amostragem escolhido
foi de 10, tem-se que a taxa de símbolo é de 4400 símbolos por segundo e que para cada
símbolo, dez amostragens são realizadas.
1
8
O fator de roll-off pode ser ainda considerado como um balanceamento entre o
excesso de banda e o custo computacional para a solução do problema da interferência inter-
simbólica, pois para a obtenção de um pulso quadrado – no qual não haveria interferência
inter-simbólica – uma capacidade computacional alta seria exigida para a obtenção de um
filtro de ordem elevada que viabilizasse a forma quadrada do pulso (HAYKIN).
Na Figura 4.c encontra-se o espectro do sinal modulado, centrado na frequência de
portadora utilizada, 8kHz. Desta forma é possível visualizar os efeitos dos diferentes
procedimentos realizados com o sinal.
Figura 4 - Comparação dos Espectros do Sinal em Banda Base (a) com o Sinal Filtrado (b) e o
Sinal Modulado (c).
9
2.2 SINCRONISMO DE PORTADORA
Com o sinal modulado e devidamente filtrado, a transmissão e recepção do sinal já
tomam forma. Entretanto, são necessários diversos níveis de sincronismo entre transmissor e
receptor a fim de que a comunicação se concretize. O primeiro nível de sincronismo
necessário é o sincronismo de portadora – considerando que a informação transmitida
encontra-se na variação de um dos parâmetros da onda portadora, a incapacidade de realizar a
sua detecção de forma eficaz implica na perda de informação transmitida e representa uma
das maiores dificuldades da criação de um enlace de comunicação.
A importância da utilização de um algoritmo de sincronismo de portadora reside então
no fato de que sendo a informação transmitida por meio da variação da fase da onda
portadora, é necessário que o desvio de fase e frequência entre as referências do transmissor e
do receptor sejam estimados e devidamente compensados, de modo que a portadora e, por
consequência, a informação sejam corretamente recuperadas.
O Sincronismo de Portadora é realizado na fase de Recepção do Sinal, antes da
fase de demodulação – desta forma, a informação a ser processada não estará sujeita a erros
relacionados à estimação do desvio de fase e uma propagação de erros na Recepção do Sinal é
evitada. O algoritmo é então o primeiro processamento do sinal recebido, passando
posteriormente pela demodulação e algoritmos de sincronismo temporal.
Dentre os algoritmos de Sincronismo de Portadora conhecidos, os mais
utilizados são o PLL – do inglês Phased Locked Loop ou Laço de Bloqueio de Fase -, e o
Costas Loop. Existe ainda o Método das Diferenças Quadráticas, que aplica uma operação
não linear no sinal recebido (eleva a enésima potência, conforme a modulação utilizada),
seguido de um filtro passa-banda.
Neste trabalho foi utilizado o algoritmo de Costas Loop, uma vez que tanto o PLL
quanto o Método das Diferenças Quadráticas – outras possíveis soluções para a questão do
10
sincronismo de fase - exigem um pré-processamento do sinal, pelo uso de filtro passa-banda e
operação não linear antes da estimação de fase. O Costas Loop inverte a ordem do processo,
comparando diretamente o desvio da fase entre a portadora recebida com a referência local e
realimentando a informação em uma malha fechada (JOHNSON, SETHARES).
Proposto por John P. Costas na década de 50, o Costas Loop é utilizado
principalmente em enlaces que utilizam portadora suprimida e foi descrito como um estudo de
profundo efeito na comunicação digital moderna. Ele se utiliza de sinais em quadratura para a
estimação do erro de fase, conforme o diagrama da Figura 5:
Figura 5 - Esquemático do Funcionamento do Costas Loop
Conforme o esquemático da Figura 5, a operação em malha fechada garante um
coeficiente de realimentação negativa proporcional a , sendo consideralvemente mais
sensível e robusto ao ruído comparado ao PLL.
Do ponto de vista do algoritmo utilizado, o Costas Loop foi implementado por meio
da Equação 2, no domínio discreto. É possível notar que se trata de um algoritmo recursivo,
onde influencia na velocidade de convergência do estimador e na rapidez com a qual ele
acompanha as variações da defasagem. Portanto, ele é capaz não só de fornecer uma
11
estimativa inicial do desvio de fase, como ele consegue acompanhar variações temporais da
defasagem entre as duas portadoras.
[ ] [ ] [ ] } [ ] }
2
A evolução do cálculo do desvio de fase , conforme os símbolos são amostrados,
poderá ser visualizada na fase de testes.
2.3 SINCRONISMO TEMPORAL
Mesmo que o sinal seja recebido com sucesso, a ausência de informações sobre o
início da mensagem e a duração de cada símbolo torna a mensagem indecifrável, fazendo
necessária então a utilização de algoritmos para a estimação destes parâmetros da mensagem
recebida.
O ponto crítico da amostragem do sinal é a determinação do tempo ótimo de
amostragem do sinal recebido, de forma a evitar áreas onde ocorra interferência inter-
simbólica e visar o ponto de máxima amplitude do sinal, bem como a estimação do início da
mensagem recebida. Os esforços para a determinação destes instantes corretamente são
caracterizados neste trabalho como sincronismo temporal.
Assim, duas abordagens de sincronismo temporal são necessárias para a correta
recuperação da mensagem, baseadas no princípio de necessidade de análise do sinal a fim de
que as amostras sejam obtidas no instante ideal: o sincronismo de símbolo e o sincronismo de
quadro.
O sincronismo de símbolo é o primeiro nível de sincronismo temporal necessário e se
utiliza de algoritmos de estimação do melhor momento para a amostragem de um símbolo,
dentre as várias amostras realizadas. Sem ele, o instante de amostragem do sinal não é
corrigido e amostras podem ser feitas em região de interferência inter-simbólica e erros
12
consequentemente serão gerados.
Na implementação do sincronismo de símbolo, considera-se o seguinte
equacionamento para a estimação do tempo ideal, , para a amostragem do sinal. Seja o
sinal recebido amostrado no instante e o intervalo utilizado para o cálculo da derivada:
[ ] 3
- - 4
Tal algoritmo usado para a estimação de se baseia principalmente no cálculo da
derivada , que influencia o valor do ganho e que, por sua vez, determina a
convergência do algoritmo, cujo objetivo principal é a indução da derivada para o
valor zero, ou seja, o valor máximo do símbolo. Para tanto, o algoritmo compara o valor
quantizado de e o valor real de para o cálculo da derivada.
Na Figura 6, observa-se a convergência do valor de , juntamente com a amostragem
do sinal recebido e a uniformidade do mesmo após a convergência do valor de τ obtida por
meio do algoritmo.
13
Figura 6 - Efeito do sincronismo de símbolo - Valor de Tau x Comportamento do Sinal conforme
a convergência do algoritmo.
O sincronismo de quadro deve ser implementado posteriormente ao sincronismo de
símbolo, e visa a correta estimação do início, fim e tamanho da mensagem encaminhada. Sem
ele, os bits da mensagem são decodificados, mas não fazem sentido se o início da mensagem
não for localizado corretamente.
Para tanto, utiliza-se de um algoritmo no qual os bits recebidos são comparados com
uma sequência de treinamento, inserida no bloco inicial da mensagem, possibilitando assim a
estimação precisa do início da informação útil.
A sequência de treinamento utilizada foi retirada do livro Telecommunications
Breakdown, e é conhecida como MLS (do inglês, maximum length sequence) ou m-sequence,
e é um tipo de sequência binária pseudo-randômica. Ela é gerada utilizando registradores de
deslocamento (shift registers) de máximo retorno linear e possui característica periódica, além
de um espectro de característica plana, salvo por uma componente DC quase nula. Neste
14
trabalho, a sequência utilizada tem tamanho de 255 bits e encontra-se disposta antes da
informação útil no bloco total de informação enviado, a ser explicado posteriormente.
A comparação entre os bits recebidos e a sequência conhecida é feita por meio da
função de correlação. O ponto de máxima correlação permite indicar então o início da
informação útil transmitida e o sincronismo de quadro é alcançado. Na Figura 7, mostra-se a
correlação entre o sinal enviado e a sequência de treinamento, cujo ponto máximo determina a
exata localização da sequência de treinamento.
Com o sincronismo temporal finalizado e a modulação/demodulação do sinal
funcionando corretamente, o enlace pode ser resumido conforme o esquemático da Figura 8.
Figura 7 - Sincronismo de Quadro - Correlação entre sinal recebido e sequência de treinamento
(fase ou quadratura), que possibilita o início da mensagem.
15
Figura 8 - Esquemático do Enlace com os algoritmos aplicados de sincronismo
16
3 ESTIMAÇÃO DOS CANAIS: CABO METÁLICO E AR,
REALIZAÇÃO DE TESTES E ESTUDOS PARA IMPLEMENTAÇÃO DA
EQUALIZAÇÃO DO CANAL.
Com os algoritmos de sincronismo temporal e de portadora funcionando em um
ambiente ideal, passa-se à etapa de testes em canais reais, na qual foram realizados testes com
o envio da informação via cabo metálico e utilizando o som por meio de microfone e alto-
falante.
3.1 ESTIMAÇÃO DOS CANAIS – COMPARAÇÃO ENTRE O CABO
METÁLICO E O SOM ENVIADO PELO AR
Primeiramente, foi realizada a estimação de ambos os canais, por meio do envio de um
ruído branco em banda base e os parâmetros de intensidade de volume e sensibilidade do
microfone foram mantidos para a caracterização dos canais nas diversas situações
posteriormente descritas. Observa-se nas Figuras 9 e 10 o espectro do sinal recebido: na
Figura 9 encontra-se representado o espectro do sinal recebido utilizando o cabo metálico e o
mesmo sinal após a filtragem passa-banda (BPF band pass filter, do inglês); na Figura 10,
observa-se o espectro do sinal recebido utilizando o som e o mesmo sinal após a filtragem
passa-banda. Em ambos os casos um ruído branco foi enviado (curva de distribuição Normal
com parâmetros de média nula, desvio padrão unitário e comprimento 80000, enviado na
mesma frequência de amostragem utilizada no enlace, 44,1kHz de forma a limitar o estudo do
espectro à faixa audível, de 0 a 22kHz).
17
Figura 10 - Estimação de Canal - Microfone e Alto-Falante
Figura 9 - Estimação de Canal - Cabo Metálico
18
Comparando as duas respostas, é visível a influência do ruído quando a informação é
enviada por meio do som. No entanto, não é possível observar, para ambos os canais, uma
característica de atenuação para altas frequências dentro da faixa audível (próxima de 22kHz),
diferentemente do esperado, conforme o plano de trabalho, no qual se esperava uma
característica passa baixa do canal, devido à limitação do microfone utilizado na biografia
(FERNANDEZ, ZANATTA).
É possível também observar o comportamento do filtro passa-banda utilizado, de
forma que a sua largura de banda e ganho encontram-se de acordo com o esperado: não há
atenuação do sinal recebido e a sua largura de banda é adequada, cortando a componente DC
existente e outras componentes de ruído em frequências mais altas.
3.2 SÉRIE DE TESTES REALIZADOS PARA COMUNICAÇÃO EFETIVA
Após o estudo dos canais, foram realizados diferentes testes com ambos os canais para
a verificação do comportamento dos algoritmos e ajustes dos mesmos, pois a equalização a
ser implementada depende do sucesso do sincronismo de quadro. Durante esta fase, foi
possível observar principalmente a sensibilidade do sistema como um todo perante os ganhos
dos algoritmos de sincronismo.
Um dos algoritmos mais sensíveis à mudança do ganho é o algoritmo de sincronismo
de símbolo. Foi possível constatar que um ganho muito alto faz com que a resposta oscile
fortemente e desestabilize o sistema, enquanto que um ganho muito pequeno pode fazer com
que o algoritmo não convirja para a resposta correta. O Costas Loop apresenta o mesmo
comportamento quanto à sensibilidade à variação do ganho utilizado.
Outro ganho a ser testado em diferentes valores foi o ganho geral da transmissão, bem
como os parâmetros de volume tanto do alto-falante quanto do microfone. Diversos testes
foram realizados de forma a estimar os parâmetros ótimos não somente a fim de facilitar a
19
transmissão do sinal, mas também para a verificação tanto do sinal transmitido quanto
recebido quanto à saturação do sinal, a qual representa outro ponto de degradação do sinal.
Tais testes serão tratados durante o estudo da Equalização do Sinal.
No enlace, a informação transmitida tem caráter alfanumérico, ou seja, uma
mensagem de texto é enviada e recebida - ela é convertida da forma de símbolos para bits por
meio de uma função específica do MATLAB e então dividida em dois vetores, para
possibilitar a modulação QPSK, formando assim um vetor a ser transmitido em fase e outro
em quadratura. Para fins de correta estimação da mensagem e estudo das diversas fases, uma
mensagem de texto de 30 caracteres fixa foi utilizada e adicionada à sequência de treinamento
para facilitar a montagem do código, bem como para distinguir os diferentes blocos de
informação enviados quando necessária uma análise temporal do sinal recebido.
Um exemplo de análise temporal é a análise do sinal recebido (em diferentes pontos
do enlace) quanto ao sincronismo de símbolo e de portadora: dado que um cosseno é
transmitido no início do sinal enviado para que o sincronismo de portadora seja realizado
antes da mensagem de texto ser recebida, verifica-se a variação da estimação de fase neste
período de adaptação determinado, pois a fase da portadora deve ser estimada corretamente
antes do início da mensagem e assim fazendo com que bits não sejam perdidos devido ao
atraso da adaptação do algoritmo. O mesmo acontece para o sincronismo de símbolo: o
algoritmo deve convergir antes da mensagem, de forma que ela possa ser demodulada
corretamente, sem interferência inter-simbólica. A composição completa do bloco de
mensagem enviado está representada na Figura 11.
Um detalhe importante a ser levado em conta quanto ao tamanho dos blocos durante a
fase de testes é que os gráficos mencionados são plotados sobre um dos vetores QPSK – seja
fase ou quadratura- no caso de um dos vetores a primeira parte é considerada com 500 bits,
pois o total de 1000 bits é composto pelas componentes em fase e quadratura, com 500 bits
20
cada.
Figura 11 - Composição da mensagem enviada.
Neste ponto, diversas simulações foram realizadas de modo a obter a recepção do sinal
enviado com um erro mínimo. Os resultados do teste onde a mensagem foi transmitida com
sucesso podem ser visualizados na Figura 12.
Figura 12- Transmissão por meio do som realizada com sucesso.
21
3.3 DIFICULDADES ENCONTRADAS DURANTE A
REALIZAÇÃO DOS TESTES
Dentre as dificuldades encontradas para obter sucesso na comunicação sem a
utilização de um algoritmo de equalização, pode-se citar a questão do ajuste da sensibilidade
do microfone e intensidade do alto-falante, bem como o ajuste dos ganhos dos algoritmos de
sincronismo de símbolo e sincronismo de portadora, para que os mesmos possam convergir
corretamente para os valores corretos de instante ótimo de amostragem e desvio de fase,
respectivamente.
Outra dificuldade encontrada que interferiu no envio e recebimento da mensagem foi o
ruído das fontes de alimentação dos computadores. Tal ruído foi detectado durante as
tentativas de enviar uma mensagem com sucesso, ao realizar ajustes de sensibilidade no
microfone. Esta interferência se dá pelo fato das fontes dos laptops utilizados no teste serem
do tipo chaveada. Seu efeito foi fortemente atenuado desconectando ambos os laptops da rede
de alimentação durante a realização dos testes.
Outra adversidade encontrada foi o ruído captado pelos alto-falantes, normalmente
oriundo da radiação emitida por diversos aparelhos operando na faixa de radiofrequência.
Várias sessões de testes foram invalidadas por causa deste tipo de ruído, uma vez que não
havia maneira eficiente de atenuá-lo.
Foram realizados então diversos testes padronizados com o objetivo de caracterização
efetiva do canal para a realização da equalização do sinal, bem como para um traçado do
comportamento do enlace quanto à sensibilidade do microfone e intensidade do alto-falante.
Para tanto, algumas simulações foram realizadas até a mensagem ser transmitida com sucesso
e então foram traçadas as curvas de caracterização do canal (envio de ruído branco
gaussiano), sincronismo de quadro (correlação do sinal recebido com a sequência de
treinamento), comportamento da estimação do desvio de fase e constelação do sinal recebido.
22
Como o ruído ambiente varia muito durante a realização dos testes e um local de testes
imune a ruídos é de difícil acesso, uma estrutura de espuma foi confeccionada a fim de
simular o efeito de absorção acústica. A diferença entre a absorção acústica e isolamento
acústico é que a absorção acústica visa aumentar o grau de inteligibilidade do som por meio
da diminuição do efeito de reverberação, enquanto que o isolamento anula a passagem da
onda sonora de um ambiente para o outro (JANKOVITZ). Para tanto, materiais diferentes
são utilizados nas duas técnicas: enquanto que materiais de alta densidade são utilizados para
o isolamento acústico, materiais de baixa densidade - como espumas, são utilizados para a
absorção acústica.
O banco de testes utilizado pode ser visualizado na Figura 13 e Figura 14. Nele é
possível visualizar a estrutura de espuma utilizada, que possui 15 centímetros de espessura e
que separa a caixa de som do microfone, com uma abertura de 19 centímetros de altura por 15
centímetros de largura. Foi constatado, por meio de testes, que a utilização desta estrutura
auxilia na comunicação, proporcionando uma menor BER, a ser demonstrado nos diferentes
testes realizados.
O principal motivo para a utilização desta estrutura de espuma é a redução da
interferência causada pela reflexão das ondas sonoras pelos objetos à volta da bancada de
testes, inclusive da superfície na qual eles estão posicionados.
23
Figura 13 - Banco de Testes – visualização da estrutura de espuma utilizada.
O primeiro teste realizado foi com a configuração mostrada na Figura 14,
considerando distância nula entre o microfone e a estrutura de espuma. Os testes subsequentes
Figura 14 - Banco de Testes com alto-falante, microfone e estrutura de espuma
utilizados.
24
foram realizados com o aumento desta distância em intervalos de cinco centímetros. Para as
quatro distâncias citadas, a mensagem foi transmitida com sucesso e reduzidas taxas de BER
foram obtidas. Entretanto, para cada caso foi necessária uma adaptação quanto à intensidade
do alto-falante, uma vez que o sinal geralmente não era detectado sem um pequeno aumento –
geralmente de 10%.
Na Figura 15 encontram-se os gráficos de caracterização de canal traçados para as
distâncias citadas anteriormente. Nele é possivel observar que o comportamento geral não se
altera, e que a única pequena atenuação que aumenta conforme o aumento da distância do
microfone, é na componente alta do canal, próximo aos 22kHz.
Já na Figura 16, encontram-se as constelações traçadas dos sinais recebidos para as
diferentes distâncias. Nela é possível observar fenômenos como uma leve distorção de fase
para a distância de 5 centímetros, o que não atrapalhou a recepção da mensagem, que foi
realizada com sucesso.
A correlação com a sequência de treinamento para os diferentes testes encontram-se
resumidas na Figura 17. Novamente, o sincronismo de quadro foi realizado com sucesso em
todas as 4 simulações. Contudo, é possível que conforme a distância aumente, exista uma
outra crescente correlação presente na primeira parte do bloco de mensagens enviados. Este
fenômeno ocorre provavelmente pela característica de que a primeira parte da mensagem ser
composta de uma sequência aleatória enviada em fase, pois dado que uma sequência aleatória
não é verdadeiramente realizável e a sequência de treinamento tem característica pseudo-
aleatória, pode ter-se criado um impasse. Este tópico será melhor discutido na fase da
Equalização do Sinal.
Por fim, na Figura 18 encontram-se os estimadores do desvio de fase para os
diferentes testes. Observa-se que para cada simulação houve um desvio de fase distinto,
determinado pelo canal e seu ruído. Em todos os casos, o algoritmo obteve sucesso em
25
convergir para um valor satisfatório de fase durante o período de adaptação, antes do início da
sequência de treinamento. Um exemplo da convergência do algoritmo para a correção de
desvio de fase encontra-se na Figura 19, onde diversas condições iniciais foram estabelecidas
para o mesmo desvio de fase e o algoritmo convergiu para a solução correta em todos os
casos.
26
Figura 15 - Caracterização do Canal para diferentes distâncias do microfone.
27
Figura 16 - Constelações dos sinais recebidos para diferentes distâncias do microfone.
28
Figura 17 - Sincronismo de quadro – característica pseudo-aleatória do primeiro bloco da mensagem a ser
discutida posteriormente.
29
Figura 18 - Estimador de fase – sincronismo de fase deve convergir para o valor estimado de desvio de
fase até o início da sequência de treinamento (no caso até 5000 iterações – 500 símbolos).
30
Figura 19 - Resposta do Costas Loop para diversas condições iniciais para o mesmo valor de desvio de
fase.
31
4 EQUALIZAÇÃO
Considerando que o funcionamento do enlace foi comprovado na seção 3, porém com
limitações de distâncias e a utilização da estrutura de espuma para evitar a reverberação do
sinal, faz-se necessária uma equalização do sinal recebido.
Em breve resumo, técnicas de equalização consistem no cálculo dos coeficientes de
um filtro que compense a resposta em frequência do canal. O sinal é então filtrado conforme
os coeficientes calculados e uma melhora na recepção do sinal é notável, a ser demonstrada
por meio de simulações.
Existem duas possíveis abordagens para a Equalização do sinal: uma a ser aplicada
após o sincronismo de símbolo – conhecida como Decision Directed, e outra a ser realizada
após todas as correções do sinal, que se utiliza do pré-conhecimento de uma sequência de
treinamento. A primeira técnica é vantajosa pelo fato de não depender do sucesso da
decodificação da mensagem além de geralmente convergir antes do recebimento da sequência
de treinamento, porém, como o sinal recebido não pode ser comparado com uma sequência
conhecida, este algoritmo pode convergir para mínimos locais e não mínimos globais,
acarretando em uma equalização não ótima. Já a segunda técnica é impossível de ser
implementada sem o sucesso do sincronismo de quadro, pois ela compara a mensagem
recebida com a sequência de treinamento previamente conhecida para o cálculo dos
coeficientes do filtro.
Testes com as duas técnicas foram realizados no enlace, utilizando dois alto-falantes e
gerando além de zonas de interferência, um fenômeno de propagação multi-percurso ainda
mais evidente. Entretanto, um elevado ruído nos alto-falantes cuja fonte não pôde ser
detectada nem isolada impossibilitou maiores estudos práticos dos algoritmos. Um dos
principais efeitos deste ruído tem característica semelhante à representada na Figura 17, para
o sincronismo de quadro das distâncias maiores – existe uma forte correlação entre a
32
sequência de treinamento e o primeiro bloco da mensagem, devido principalmente ao ruído,
assim o algortimo de sincronismo de quadro funciona errôneamente. Simulações ideais foram
então realizadas para testar o algoritmo Decision Directed, cuja resposta foi mais adequada. O
funcionamento deste algoritmo está resumido na Figura 20 e o seu equacionamento na
Equação 5.
Figura 20 - Equalização Algoritmo Decision Directed
[ ]
[ ] [ ] [ ] [ ] 5
Na Figura 21 encontram-se a trajetória dos valores dos coeficientes do filtro de
equalização calculados pelo algoritmo de Decision Directed, considerando um filtro de 3ª
ordem (calculam-se então quatro coeficientes, conforme Figura 21). Observa-se que o
algoritmo converge satisfatoriamente com um baixo número de iterações, o que não seria
possível com o algoritmo que utiliza uma sequência de treinamento, por exemplo.
33
Figura 21 - Trajetória dos Coeficientes de Equalização - Decision Directed de 3a ordem.
Para o mesmo caso de Equalização, foi comparado o espectro ideal do canal, obtido na
fase de testes anterior com o espectro do sinal após ser filtrado pela equalização. Observa-se
na Figura 22 no qual existe uma atenuação nas frequências mais elevadas, mas que a
informação útil não é afetada uma vez que o espectro se manteve praticamente inalterado nas
frequências utilizadas para a transmissão da mensagem.
34
Figura 22 - Efeito Espectral da Equalização
Por fim, foi traçada a constelação do sinal equalizado na Figura 23, na qual é possível
perceber claramente a concentração dos símbolos recebidos após a equalização, realizando
uma comparação com um canal ideal e o sinal não equalizado. Apesar dos testes reais com a
Equalização no enlace não terem sido efetuados em razão do ruído, foi comprovada a eficácia
do algoritmo de equalização por meio da simulação do sinal recebido.
35
Figura 23 - Efeito da Equalização - Comparação com sinal não equalizado e ideal.
36
5 CONCLUSÃO
Diante do desafio de estabelecer uma comunicação por meio do som, foi necessária
uma intensa revisão dos conceitos de Comunicação, assim como uma adaptação ao ambiente
MATLAB para a compreensão de algoritmos concebidos anteriormente para a execução do
novo projeto.
Algumas mudanças quanto ao planejamento do trabalho foram então necessárias. O
enlace já existente não foi reaproveitado, mas todos os conceitos envolvidos bem trabalhados,
ao custo de algumas técnicas de equalização do sinal não serem implementadas.
No entanto, este custo pode ser visto como vantajoso se considerado que uma das
aplicações deste estudo é a sua utilização pedagógica. Assim, os conceitos envolvidos foram
bem trabalhados de forma a serem absorvidos e documentados.
Dentre as técnicas utilizadas, foi comprovada a eficácia do algoritmo de Costas Loop
quanto à estimação do desvio de fase da portadora, assim como dos outros algoritmos de
sincronismo temporal sob várias circunstâncias e a comunicação foi realizada com sucesso em
várias situações aqui descritas.
Para a correta utilização dos algoritmos listados foi então necessário uma série de
testes, durante os quais uma série de dificuldades foram identificadas. Dentre elas, pode-se
citar o ruído gerado pelas fontes chaveadas dos laptops na placa de som, o que dificulta a
detecção do som pelo microfone. Existe ainda todo o ruído eletromagnético ao qual o alto-
falante está exposto, causado por ondas de estações de rádio, dados de telefonia ceular (3G),
ondas de telefones sem-fio, entre diversas outras formas de ondas eletromagnéticas capazes de
interferir na comunicação e que não são isoláveis. Este grupo de interferências não isoláveis
impossibilitou por tanto a implementação da fase de equalização no enlace real, sendo o teste
37
somente possível por meio de simulações.
Outro ponto que dificultou a implementação real do algoritmo de equalização
juntamente com as fontes de ruídos não isoláveis foi o surgimento de uma correlação entre a
primeira parte da mensagem enviada e a sequência de treinamento, o que impossibilitou o
funcionamento o sincronismo de quadro e, portanto, a comparação entre o sinal recebido
(sequência de treinamento recebida) e a sequência já conhecida para o cálculo dos
coeficientes do filtro de equalização.
Com relação às diferentes componentes da mensagem enviada, é importante salientar
que se o tamanho da mensagem for aumentado, uma robustez maior principalmente com
relação ao sincronismo de fase será necessária, uma vez que o estimador inicial de desvio de
fase é utilizado para toda a mensagem, bem como o cálculo dos coeficientes do filtro de
equalização.
Entre os itens a serem trabalhados futuramente inclui-se o aprimoramento e a
utilização real da técnica de Equalização, assim como técnicas de codificação em geral (fonte,
canal, utilização de códigos corretores de erro) para uma melhoria ainda mais expressiva das
taxas de erro, e a exploração da capacidade estereofônica da placa de som do computador – ou
seja, diferenciar a transmissão entre canal esquerdo e direito e dobrar a taxa de símbolo, por
exemplo. Com equalização e codificação implementados, testes com maiores distâncias
certamente poderiam ser realizados.
Outra abordagem possivelmente produtiva neste trabalho seria a utilização de um
controle automático de ganho, a fim de evitar todo o controle manual necessário para a
realização de testes.
Uma terceira abordagem seria o estudo aprofundado de fenômenos acústicos
38
relacionados à movimentação do microfone ou alto-falante, bem como a análise da resposta
ao fenômeno de propagação multipercurso e, como mencionado anteriormente, a exploração
da capacidade estereofônica da placa de som do computador.
Um último item a ser abordado seria a transformação do programa utilizado de forma
a tornar a sua interface amigável e destacar as principais operações realizadas em cada bloco,
de forma a estimular a sua utilização no ambiente acadêmico, para o estudo de Comunicações.
39
REFERÊNCIAS BIBLIOGRAFICAS
JOHNSON Jr , C. R.; SETHARES, W. A. Telecommunications Breakdown. Concepts of
Communication Transmitted via Software-Defined Radio. Pearson / Prentice-Hall. 2004
FERNANDES, F. G.; PANAZIO, C. M.; ZANATTA FILHO, D. Implementação de um
Software-Defined Radio com processamento em tempo real usando sinais acústicos e
MATLAB. In: SIMPÓSIO BRASILEIRO DE TELECOMUNICAÇÕES, XXV, 2007, Recife,
Pernambuco, Brasil.
GOMES, J. et al. An Overview of the ASIMOV Acoustic Communication System. IEEE
Conference and Exhibition OCEANS 2000 MTS,p. 1633-1637, vol.3, setembro 2000.
HAYKIN, S. (2004). Sistemas de Comunicação (4ª ed., Vol. Unico). Porto Alegre,
RS: Bookman
IBAÑEZ, J. et al, Teaching digital communications: A DSP approach. In: IEEE Int. Conf. on
Acoust., Speech, and Signal Processing , 2003, Hong Kong, China.
LEMMA, A.N. et al. A temporal domain audio watermarking technique IEEE Transactions
on Signal Processing, p. 1088 - 1097, Abril 2003.
MALYSA, G.; ROMANENKO, A. Acoustic Data Modem. Disponível em:
http://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2010/gjm76_asr96/gjm76_a
sr96/index.html. Acesso em 9 de Janeiro de 2012.
40
STOJANOVIC, M. Recent advances in high-speed underwater acoustic communications.
IEEE Journal of Oceanic Engineering v. 21, i. 2, p.125-136, Abril 1996.
Suporte Matlab. Disponível em:
http://www.mathworks.com/support. Acesso em 9 de Janeiro de 2012.
41
ANEXO 1
Códigos desenvolvidos no ambiente MATLAB para a concepção do enlace definido
por software. Neste anexo encontram-se as três principais componentes do enlace, porém
existem ainda alguns arquivos de extensão .mat para que o programa possa ser executado com
sucesso.
TX.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Variables Statement
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Baud_rate = 4410;
fs = 44100;
Rolloff = 0.75;
BW = Baud_rate*(1+Rolloff);
oversampling = fs/Baud_rate;
Rate = 1/Baud_rate;
Ts = 1/fs;
phi = 0;
n = 2^13;
fc = 8000;
G = 1;
train = 1000;
frame_synch_word = load('mSequence.mat');
frame_synch_word = frame_synch_word.sequence;
frame_synch_word = double(frame_synch_word > 0);
texto=input('Digite Texto: ','s');
texto_ascii=double(texto);
texto_ascii=[texto_ascii 32*ones(1,(30-length(texto_ascii)))];
dados=de2bi(texto_ascii,8);
dados=dados(:);
dados=dados';
% dados = load('ber_test.mat');
% bin_vector = dados.bin_vector;
bin_vector = [1 rand(1, train)>0.5 frame_synch_word dados];
42
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% QPSK Modulation
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Regroup bunary information into pairs and replace '0' by '-1':
bin_qpsk(:,1) = bin_vector(1, 1:2:length(bin_vector));
bin_qpsk(:,2) = bin_vector(1, 2:2:length(bin_vector));
int_qpsk = bin_qpsk*2 - 1;
% int_qpsk(1:train/2,1) = (rand(1,train/2)>0.5)*2 - 1; % For BPSK!
int_qpsk(1:train/2,1) = 1;
int_qpsk(1:train/2,2) = 0;
% Costellation phase shift (pi/4):
% for k=1:n/2
%
% if bin_vector(1, k:k+1) == [0 0]
% int_qpsk(k, 1:2) = [1 0];
% end
% if bin_vector(1, k:k+1) == [0 1]
% int_qpsk(k, 1:2) = [0 1];
% end
% if bin_vector(1, k:k+1) == [1 0]
% int_qpsk(k, 1:2) = [-1 0];
% end
% if bin_vector(1, k:k+1) == [1 1]
% int_qpsk(k, 1:2) = [0 -1];
% end
% end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Pulse Shaping & Carrier Modulation
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Apply raised cossine filter and upsample both channels:
q_data = rcosflt(int_qpsk(:,1), Baud_rate, fs, 'iir/sqrt', 0.75);
i_data = rcosflt(int_qpsk(:,2), Baud_rate, fs, 'iir/sqrt', 0.75);
% Modulate both channel w/ respective carriers:
t = [Ts:Ts:length(q_data)*Ts];
% phi = zeros(1, length(q_data));
43
%
% phi(1:10000) = pi/4;
%
% phi(10000:end) = pi/4 + t(1:length(phi(10000:end)))*1;
q_signal = q_data'.*real(exp(i*(2*pi*fc*t+phi)))*G;
i_signal = i_data'.*imag(exp(i*(2*pi*fc*t+phi)))*G;
% Add both channels:
qpsk_signal = q_signal + i_signal;
out = real(qpsk_signal)*15;
% [b, a] = butter(2, 14000/fs);
% out = real(filter(b, a, out_p));
% Send to sound card D/A:
sound(out, fs);
Final TX.m
44
RX.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% RECEIVER CHAIN
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Baud_rate = 4410;
fs = 44100;
Rolloff = 0.75;
BW = Baud_rate*(1+Rolloff);
oversampling = fs/Baud_rate;
Rate = 1/Baud_rate;
Ts = 1/fs;
phi = pi/5;
n = 2^13;
fc = 8000;
G = 1;
train = 1000;
frame_synch_word = load('mSequence.mat');
frame_synch_word = frame_synch_word.sequence;
frame_synch_word = double(frame_synch_word > 0);
dados = load('ber_test.mat');
dados = dados.bin_vector;
AI=analoginput('winsound',0);
chan=addchannel(AI,1);
duration=0.3; %signal duration
SampleRate=fs;
set(AI,'SampleRate',SampleRate);
set(AI,'SamplesPerTrigger',duration*SampleRate);
set(AI,'TriggerChannel',chan)
set(AI,'TriggerType','Software')
set(AI,'TriggerCondition','Rising')
set(AI,'TriggerConditionValue',0.05)
set(AI,'Timeout',inf)
disp('Esperando .............................');
start(AI);
data=getdata(AI);
disp(' --> Recebendo');
45
out_p=data;
wi = 2*(fc - BW/2)/fs;
ws = 2*(fc + BW/2)/fs;
filter_pf = fir1(64, [wi ws]); %pass band filter to select the desired channel and eliminate DC
component
out = real(conv(out_p,filter_pf));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Blind Equalization
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% eqn = 4; f = [0 1 0 0]';
%
% mu=0.1; delta=2;
%
% for ieq=eqn+1:length(out);
%
% rr = r(ieq:-1:ieq-eqn+1)';
% e = sign(f'*rr) - f'*rr;
% f = f + mu*e*rr;
%
% f_save(:,ieq - eqn) = f;
%
% end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Carrier Recovery
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
t = [Ts:Ts:length(out)*Ts];
% Typical costas loop:
order = 500; ff = [0 0.01 0.02 1]; fa = [1 1 0 0]; %low pass filter(frequency and amplitude)
h = firpm(order, ff, fa);%builds the filter
mu = 0.1;
theta = zeros(1, length(out)); theta(1) = 0; %estimaton vector (theta history)
zq = zeros(1, order+1); zi = zeros(1, order+1); %buffers for digital filtering
for k=1:(length(out) - 1)
rq = 2*out(k)*real(exp(i*(2*pi*fc*t(k) + theta(k))));
ri = 2*out(k)*imag(exp(i*(2*pi*fc*t(k) + theta(k))));
46
zq = [zq(2:order+1), rq];%save rq on the buffer
zi = [zi(2:order+1), ri];%save ri on the buffer
lpfq = fliplr(h)*zq'; lpfi=fliplr(h)*zi'; %filter acconding to buffer
theta(k+1) = theta(k) - mu*lpfi*lpfq; %estimator (correct theta)
end
% Apply modified costas loop (w/ crossover arms) to detect carriers phase:
% order = 500; ff = [0 0.01 0.02 1]; fa = [1 1 0 0];
% h = firpm(order, ff, fa);
% mu = 0.005;
% theta_c = zeros(1, length(out)); theta_c(1) = theta(train*10/2);
% zq = zeros(1, order+1); zi = zeros(1, order+1);
%
% for k=1:(length(out) - 1)
%
% rq = 2*out(k)*real(exp(i*(2*pi*fc*t(k) + theta_c(k))));
% ri = 2*out(k)*imag(exp(i*(2*pi*fc*t(k) + theta_c(k))));
%
% zq = [zq(2:order+1), rq*sign(ri)]; %cross *sign
% zi = [zi(2:order+1), ri*sign(rq)];
%
% lpfq = fliplr(h)*zq'; lpfi=fliplr(h)*zi';
%
% theta_c(k+1) = theta_c(k) - mu*(lpfq - lpfi); %difference
%
% end
% plot(theta)
% Average phase offset:
% e_phi = theta(train*10/2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Matched Filters & Coherent Demodulation
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Demodulate input signal by I/Q carriers:
q_demod = out'.*real(exp(i*(2*pi*fc*t + theta(train*10/2))))*G; %last estimated theta value
i_demod = out'.*imag(exp(i*(2*pi*fc*t + theta(train*10/2))))*G;
47
% Matched filtering by raise cossine filters:
q_cos = rcosflt(q_demod, Baud_rate, fs, 'iir/sqrt/Fs', 0.75);
i_sin = rcosflt(i_demod, Baud_rate, fs, 'iir/sqrt/Fs', 0.75);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Symbol Synchronization
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Apply source recovery error algorithm:
y = q_cos;
tnow=oversampling/2+1; tau=0; xq=zeros(1,length(y)); % Initialize variables
tausave_q=zeros(1,length(y)); tausave_q(1)=tau; i=0;
mu=10; % Algorithm stepsize (UPDATED!!!)
delta=0.1; % Time for derivative
while tnow<length(y)-oversampling % Run iteration
i=i+1;
xq(i)=interpsinc(y, tnow+tau, oversampling/2); % Interpolated value at tnow+tau
x_deltap=interpsinc(y, tnow+tau+delta, oversampling/2); % Get value to the right
x_deltam=interpsinc(y, tnow+tau-delta, oversampling/2); % Get value to the left
dx=x_deltap-x_deltam; % Calculate numerical derivative
if xq(i) > 0 % Quantize sampled value
quant = 1;
else
quant = -1;
end
tau=tau+mu*dx*(quant - xq(i)); % Update tau, calculate error
tnow=tnow+oversampling; tausave_q(i)=tau; % Save for plotting
end
y = i_sin;
tnow=oversampling/2+1; tau=0; xi=zeros(1,length(y)); % Initialize variables
tausave_i=zeros(1,length(y)); tausave_i(1)=tau; i=0;
mu=10; % Algorithm stepsize (UPDATED!!!)
delta=0.1; % Time for derivative
while tnow<length(y)-oversampling % Run iteration
i=i+1;
xi(i)=interpsinc(y, tnow+tau, oversampling/2); % Interpolated value at tnow+tau
x_deltap=interpsinc(y, tnow+tau+delta, oversampling/2); % Get value to the right
x_deltam=interpsinc(y, tnow+tau-delta, oversampling/2); % Get value to the left
dx=x_deltap-x_deltam; % Calculate numerical derivative
48
if xi(i) > 0 % Quantize sampled value
quant = 1;
else
quant = -1;
end
tau=tau+mu*dx*(quant - xi(i)); % Update tau
tnow=tnow+oversampling; tausave_i(i)=tau; % Save for plotting
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Frame Synchronization
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Recover and reorder binary data:
recov_q = xq(1:n + 100) > 0; % decoding, back to binary (decision making)
recov_i = xi(1:n + 100) > 0;
ind=0;
info=zeros(1,(n+100)*2);
for ind=0:(n+100-1)
info(1,2*ind + 1) = recov_q(ind+1); %reorganize to original sequence (sin and cos)
info(1, 2*ind + 2) = recov_i(ind+1);
end
% Cross-correlate data reader with pseudo-random sequence:
c = xcorr(info(1:2000), frame_synch_word);
[m, pos] = max(c); %maximum value of c
start = pos - 2000 + 1; %correct the delay generated to find the real delay
display(start)
nnz(info(start:start+255-1) == frame_synch_word) %compare freme_sync
BER = nnz(info(start:start + 255 + 240-1) == dados(train+2:1255+240+1))/(255+240) %255
-framesync, 240 -characters, 1 MATLAB index
data_r = info(start+255:start+255+240-1); %information data
datarr = reshape(data_r, 30, 8); %transform in parts of 8 bits (one char)
text = bi2de(datarr);
text = char(text);
49
display(text')
% Bit error rate:
% BER = nnz(info(start:n + start - train) == dados(train:n))/(n - train);
%
% display(BER)
% plot(theta_c)
%
% hold on
%
% plot(phi,'r')
50
Eq_test.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Equalization Test - Decision Directed
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
r = xq;
na = 9; f = [0 0 0 0 1 0 0 0 0]'; %for blind equalizer, one of the coefficients must be one
mu = 0.5; delta = 2; %delta not used
f_save = zeros(na, length(r));
for i=na+1:length(r)
rr = r(i:-1:i-na+1)';
e = sign(f'*rr) - f'*rr; %compares its value quantized and real value to generate an error
% e = (f'*rr)*(1 - (f'*rr)^2);
f = f + mu*e*rr;
f_save(1:na,i - na) = f;
end
f = f_save(:,4000);
yq = filter(f,1,xq); %filter the received signal using the calculated the coefficients
% s = int_qpsk(500:610,2);
% r = xi(506:616);
% na = 6; f = zeros(na,1);
% mu = 0.5; delta = 3;
%
%
% for i=na+1:length(r)
%
% rr = r(i:-1:i-na+1)';
% e = s(i - delta) - f'*rr;
% f = f + mu*e*rr;
%
% f_save2(1:na,i - na) = f;
%
% end
yi = filter(f,1,xi); %same filter for phase and quadrature
info_eq=zeros(1,(n+100)*2);
for ind=0:(n+100-1)
51
info_eq(1,2*ind + 1) = yq(ind+1)>0; %decide symbol again (after filtering)
info_eq(1, 2*ind + 2) = yi(ind+1)>0;
end
ceq = xcorr(info_eq(1:1500), frame_synch_word);
[m, pos] = max(ceq);
start = pos - 1500;
display(start)
BER = nnz(info_eq(start:n + start - train) == bin_vector(train:n))/(n - train);
display(BER)