Como executar a recuperação da fase de portadora no software?

13

Quais são as opções para recuperar a fase de um sinal BPSK no software? Os únicos recursos que posso encontrar on-line contêm diagramas de circuitos - parece não haver ninguém disposto a explicar isso para pessoas não familiarizadas com circuitos analógicos.

Gostaria de ter uma explicação de como a recuperação de operadora funciona na teoria e também adoraria exemplos de pseudocódigo ou código.

Keith
fonte
Normalmente, não fornecemos exemplos de código, especialmente para algo tão complicado quanto um demodulador BPSK.
Jim Clay
1
Como JimClay indicou, é improvável que você tenha alguém com tempo suficiente para fornecer o código-fonte completo para a implementação de um demodulador. No entanto, a mecânica de criação de uma implementação deve ser fácil se você entender os conceitos. Em geral, um receptor de software terá uma estrutura semelhante à técnica de hardware correspondente (por exemplo, um sincronizador baseado em não linearidade de feedforward ou uma abordagem baseada em PLL baseada em feedback). Você tinha uma topologia específica que planejava segmentar?
Jason R
Obrigado por seus comentários @ JimClay e JasonR - eu não quis pedir código-fonte funcionando. Atualizei a questão para ser mais específica: estou apenas procurando por uma explicação que não pressupõe uma compreensão de circuitos analógicos e diagramas de circuitos.
Keith

Respostas:

25

Para desmodular um sinal com chave de mudança de fase, do qual o BPSK é o mais simples, você deve recuperar a frequência da portadora, a fase e o tempo do símbolo.

Sinais de rajada Alguns sinais são rajados e fornecem uma sequência de dados conhecida chamada preâmbulo ou médio-médio (dependendo de aparecer no início ou no meio da rajada). Os desmoduladores podem usar um filtro correspondente que "procure" a sequência de dados conhecida e usá-lo para descobrir a frequência, a fase e o tempo do símbolo do burst. Eles fazem isso para cada rajada e não precisam se preocupar com "desvio" (a distância gradual que se acumula entre o demodulador e o sinal recebido à medida que pequenos erros se acumulam) porque as rajadas são geralmente curtas o suficiente para que a deriva não seja um desvio. problema.

Sinais Contínuos Existem sinais contínuos. Eles são, de muitas maneiras, mais difíceis de recuperar do que os sinais de rajada, porque você normalmente não possui uma sequência de dados conhecida para ajudá-lo a travar com o sinal e precisa se preocupar com o desvio, mesmo depois de bloquear o sinal. Tentarei descrever em alto nível as principais etapas normalmente usadas para recuperar sinais contínuos.

Recuperação de Operadora

Geralmente você sabe em que frequência estará o sinal que está procurando ou pelo menos em que conjunto de frequências ele estará. Mesmo com esse conhecimento, você geralmente precisa corrigir o desvio de frequência, porque não há dois transmissores transmitindo na mesma frequência. Sempre há algum erro. O método usual, então, é misturar a frequência em que você acha que o sinal estará e, em seguida, corrigir o erro de frequência residual. Isso pode ser feito com um loop Costas, ou tomando a quarta potência dos dados do sinal da banda base e procurando um pico de frequência. Deve haver um pico de frequência no deslocamento da portadora * 4 (por exemplo, se você levar uma FFT dos dados para a quarta potência e vir um pico de frequência em 8300 Hz, isso significa que o deslocamento da portadora é 8300/4 = 2075 Hz). Esse é um meio muito eficaz de obter um bloqueio inicial no deslocamento de frequência. Você também pode usá-lo para compensar a deriva, se fizer isso ocasionalmente. Existe outra maneira de compensar a deriva, que abordarei mais tarde.

Fase de portadora

Nesse ponto, se você plotou seus dados complexos no plano complexo (o eixo x é real, o eixo y é imaginário), ele deve se parecer com o seguinte:

BPSK girado

ejπ

BPSK girado e espelhado

ej-ω

BPSK barulhento

Depois que os dados são corrigidos de fase, você pode soltar a parte imaginária dos dados, porque eles não adicionam nenhuma informação.

Tempo do símbolo

Você normalmente deve saber, a priori, o período do símbolo do sinal que está tentando desmodular. Porém, se você precisar determinar o período / frequência do símbolo, poderá fazê-lo de maneira semelhante à maneira como o deslocamento da operadora foi detectado. Você pode colocar os dados ao quadrado, o que causará um aumento na frequência com o dobro da frequência do símbolo.

Como na transportadora, você terá que acertar a fase (tempo) e depois compensar a deriva. O método usual para esses dois problemas é procurar os cruzamentos zero. A menos que o ruído seja muito ruim, ele deve cruzar apenas o ponto zero no meio de uma transição de símbolo de -1 para 1 ou de 1 para -1. Mesmo que o ruído cause isso no meio de um símbolo, isso não acontecerá com muita frequência.

Diagrama de olho

A imagem acima é geralmente chamada de "diagrama ocular" ou "padrão ocular". Possui dois períodos de símbolos e possui muitos símbolos "empilhados" uns sobre os outros. Não sei se você está familiarizado com os osciloscópios ou não, mas você pode obter um osciloscópio para mostrar uma imagem como esta. De qualquer forma, os dois "X's" são transições de símbolos. As linhas mais altas para as mais baixas nos X são quando o símbolo passa de 1 para -1, e as linhas mais baixas para as mais altas são quando o símbolo passa de -1 para 1. O ponto intermediário, onde linha rosa é, é o local ideal para amostrar os dados e verificar se o símbolo é 1 ou -1.

Essa mesma técnica pode ser usada para lidar com o desvio do tempo dos símbolos. Faça uma média contínua da distância entre o cruzamento zero anterior e o cruzamento zero seguinte. Se as duas médias são iguais, tudo está bem. Se um é maior que o outro, você precisa mudar para onde está pegando sua amostra.

Depois de ter amostrado os símbolos nos pontos corretos, seus pontos de dados devem ter algo parecido com os pontos clássicos da constelação de BPSK.

Constelação BPSK barulhenta

Eu espero que isso ajude.

Jim Clay
fonte
Para melhorar esta publicação maravilhosa, talvez você possa adicionar uma seção de recuperação do relógio antes do tempo do símbolo?
LWZ
Acho que sei o que você tem em mente, mas não tenho certeza. O que especificamente você tinha em mente?
Jim Clay
Muito obrigado! Eu não tinha pensado em procurar zero cruzamentos ou traçar o real / imaginário em x / y dessa maneira. Eu só estava olhando para gráficos de fase e me perguntando como sincronizar tudo. Obrigado novamente!
Keith
@ JimClay, no início da seção de sincronização do símbolo , você mencionou que "normalmente você deve saber o período do símbolo do sinal que está tentando desmodular.", E isso geralmente é alcançado por uma unidade de recuperação de relógio, porque normalmente você ganha ' t envie um relógio junto com seus dados. Para o sinal BPSK, isso é fácil, onde você pode simplesmente esquadrinhar o sinal, o que remove os dados. Então você olha para o espectro de potência, deve haver um pico de frequência chamado tom do relógio , que fornece o período do símbolo.
LWZ 03/04
Adicionado um parágrafo sobre a frequência do símbolo.
Jim Clay