Estimativa eficiente de desvio de frequência de sinais conhecidos

7

Digamos que meu receptor esteja recebendo sinais de dados conhecidos que variam do muito simples (tom) ao complexo (sequência de dados conhecida modulada (PSK / QAM / OFDM / etc.)). Quais são as maneiras mais eficientes em termos computacionais para obter uma estimativa razoavelmente precisa do deslocamento de frequência?

Jim Clay
fonte
Você já tentou plotar os resultados de I e Q amostra por amostra e analisando a rotação ao longo do tempo? Ou seja, para cada I (n) e Q (n) (n sendo o número do tempo da amostra), plote esses dois valores, um no eixo x e outro no eixo y. Com o tempo, você notará que eles estão girando ao longo do círculo unitário. A taxa de rotação é o seu deslocamento de frequência.
Spacey
11
@ Mohammad Eu sei que posso fazer dessa maneira, só não tenho certeza de que é uma maneira computacionalmente eficiente de fazê-lo. Correndo o risco de bater em um cavalo morto, a chave, para mim, é a eficiência computacional.
Jim Clay
Para não dizer que não existem outros métodos, mas não acho que esse caminho seja necessariamente intensivo em termos computacionais. Afinal, tudo o que você faz é comparar valores I e Q (que precisam ser calculados de qualquer maneira, desde que você esteja desmodulando, imagino), e apenas comparar os valores atuais de I / Q com um valor anterior de I / Q há algum tempo. Talvez exista algo que eu não conheça por seu projeto que esteja tornando isso intensivo em termos computacionais ... quão limitado é seu poder de computação para esta tarefa?
Spacey
@ Mohamed Suponho que você esteja certo - não é tão intenso. Minha situação particular é que estou pensando em implementar pacotes e, por vezes, desmodular os sinais GSM (tom) e WiFi (PSK, OFDM) em um FPGA. Acho que esperava que houvesse uma maneira inteligente de fazer a estimativa do desvio de frequência ao mesmo tempo em que fazia a detecção de sinal, o que provavelmente farei usando correlações baseadas em FFT.
Jim Clay
Bem, eu procurei e ouvi alguns métodos que usam a correlação automática para detectar o pitch (veja aqui: dsp.stackexchange.com/questions/1317/… ), ... e desde que você está fazendo vale a pena olhar. (Cntrl-F para 'autocorrelação' e veja a resposta do @ Phonon).
Spacey

Respostas:

8

Tempo alinhado

Se os sinais estiverem alinhados no tempo, você poderá conjugar-multiplicar o sinal recebido com o sinal de referência dividido por sua magnitude ao quadrado. Dividindo essencialmente pelo sinal de referência complexo.

Digamos que o sinal de referência seja , o deslocamento da frequência (ou seja, fase variável no tempo) seja e o ruído sejax(t)θ(t)N(t)

Então o sinal recebido (alinhado no tempo) na banda base complexa ou Hilbert é

r(t)=x(t)ejθ(t)+N(t)

Multiplicação por descobre o deslocamento de frequência + ruído. Pode-se usar uma FFT ou algum estimador de frequência para recuperar a frequência dominante em

x(t)|x(t)|2
f(t)=x(t)x(t)|x(t)|2ejθ(t)+x(t)|x(t)|2N(t)=ejθ(t)+N2(t)

Não alinhado por tempo

Se os sinais não estiverem alinhados no tempo, você terá um problema de pesquisa de tempo e frequência na sua mão. Com SNR baixo, esse é essencialmente o problema resolvido pela função de ambiguidade cruzada (CAF). Se você tiver vários dB de margem, poderá usar um atalho.

Se você tiver um sinal de referência com alguma variação de AM; você pode alinhar o tempo primeiro, detectando os dois sinais AM e, em seguida, correlacionando sua entrada pela referência AM. Se o seu sinal de referência não tiver muita variação de amplitude, mas seu espectro for "pontudo", você poderá correlacionar os espectros de magnitude do recebido e da referência. Esse é o mesmo truque aplicado no domínio da frequência, em vez do domínio do tempo.

Com exceção da CAF, todas essas são operações bastante baratas.

Mark Borgerding
fonte
Não estou seguindo o método "multiplicar conjugado". Suponho que você esteja falando sobre multiplicar as duas seqüências amostra por amostra, com uma delas conjugada. Cada produto, então, teria uma fase de n * fo + phi, onde n é o número da amostra, fo é a frequência de deslocamento e phi é o deslocamento da fase inicial. Devo diferenciar as fases para obter o incremento da fase de frequência de deslocamento?
Jim Clay
Sim. Se houver um deslocamento de fase constante, o resultado da operação de multiplicação de conjugados terá fase linear. A inclinação dessa linha é o deslocamento de frequência, então a diferenciação fornecerá isso.
Jason R
Ocorreu-me que nos multiplicamos no domínio da frequência para correlacionar / convolver no domínio do tempo. Ao multiplicar por conjugado no domínio do tempo, estamos correlacionados no domínio da frequência. Se fizermos a FFT dos resultados da multiplicação conjugada, teremos a correlação cruzada no domínio da frequência, certo? O pico dessa correlação cruzada deve indicar qual é o deslocamento de frequência.
Jim Clay
11
Sim. Se o resultado da multiplicação do conjugado tiver fase linear, será de natureza semelhante a um tom. Isso corresponderá a um pico fino no domínio da frequência, como você observou.
Jason R
A resposta editada é um pouco mais clara?
precisa saber é o seguinte