Receptor
__init__(fs=128000, Rb=400, output_print=True, output_plot=True)
Classe que encapsula todo o processo de recepção no padrão ARGOS-3. A estrutura do receptor é representada pelo diagrama de blocos abaixo.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fs
|
int
|
Frequência de amostragem em Hz. |
128000
|
Rb
|
int
|
Taxa de bits em bps. |
400
|
output_print
|
bool
|
Se |
True
|
output_plot
|
bool
|
Se |
True
|
AS3-SP-516-2097-CNES (seção 3.1 e 3.2)
demodulate(s)
Demodula o sinal \(s'(t)\) com ruído recebido, recuperando os sinais \(x'_{I}(t)\) e \(y'_{Q}(t)\).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
s
|
ndarray
|
Sinal \(s'(t)\) a ser demodulado. |
required |
Returns:
Name | Type | Description |
---|---|---|
xI_prime |
ndarray
|
Sinal \(x'_{I}(t)\) demodulado. |
yQ_prime |
ndarray
|
Sinal \(y'_{Q}(t)\) demodulado. |
Exemplo
- Tempo:
- Frequência:
lowpassfilter(cut_off, xI_prime, yQ_prime, t)
Aplica o filtro passa-baixa com resposta ao impuslo \(h(t)\) aos sinais \(x'_{I}(t)\) e \(y'_{Q}(t)\), retornando os sinais filtrados \(d'_{I}(t)\) e \(d'_{Q}(t)\).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
cut_off
|
float
|
Frequência de corte do filtro. |
required |
xI_prime
|
ndarray
|
Sinal \(x'_{I}(t)\) a ser filtrado. |
required |
yQ_prime
|
ndarray
|
Sinal \(y'_{Q}(t)\) a ser filtrado. |
required |
t
|
ndarray
|
Vetor de tempo. |
required |
Returns:
Name | Type | Description |
---|---|---|
dI_prime |
ndarray
|
Sinal \(d'_{I}(t)\) filtrado. |
dQ_prime |
ndarray
|
Sinal \(d'_{Q}(t)\) filtrado. |
Exemplo
- Tempo:
- Frequência:
matchedfilter(dI_prime, dQ_prime, t)
Aplica o filtro casado com resposta ao impuslo \(-g(t)\) aos sinais \(d'_{I}(t)\) e \(d'_{Q}(t)\), retornando os sinais filtrados \(I'(t)\) e \(Q'(t)\).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
dI_prime
|
ndarray
|
Sinal \(d'_{I}(t)\) a ser filtrado. |
required |
dQ_prime
|
ndarray
|
Sinal \(d'_{Q}(t)\) a ser filtrado. |
required |
t
|
ndarray
|
Vetor de tempo. |
required |
Returns:
Name | Type | Description |
---|---|---|
It_prime |
ndarray
|
Sinal \(I'(t)\) filtrado. |
Qt_prime |
ndarray
|
Sinal \(Q'(t)\) filtrado. |
Exemplo
- Tempo:
- Frequência:
sampler(It_prime, Qt_prime, t)
Realiza a decisão (amostragem e quantização) dos sinais \(I'(t)\) e \(Q'(t)\), retornando os vetores de simbolos \(X'_{NRZ}[n]\) e \(Y'_{MAN}[n]\).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
It_prime
|
ndarray
|
Sinal \(I'(t)\) a ser amostrado e quantizado. |
required |
Qt_prime
|
ndarray
|
Sinal \(Q'(t)\) a ser amostrado e quantizado. |
required |
t
|
ndarray
|
Vetor de tempo. |
required |
Returns:
Name | Type | Description |
---|---|---|
Xnrz_prime |
ndarray
|
Sinal \(X'_{NRZ}[n]\) amostrado e quantizado. |
Yman_prime |
ndarray
|
Sinal \(Y'_{MAN}[n]\) amostrado e quantizado. |
Exemplo
- Tempo:
- Constelação:
- Fase:
decode(Xnrz_prime, Yman_prime)
Decodifica os vetores de simbolos codificados \(X'_{NRZ}[n]\) e \(Y'_{MAN}[n]\), retornando os vetores de bits \(X'n\) e \(Y'n\).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
Xnrz_prime
|
ndarray
|
Sinal \(X'_{NRZ}[n]\) quantizado. |
required |
Yman_prime
|
ndarray
|
Sinal \(Y'_{MAN}[n]\) quantizado. |
required |
Returns:
Name | Type | Description |
---|---|---|
Xn_prime |
ndarray
|
Sinal \(X'n\) decodificado. |
Yn_prime |
ndarray
|
Sinal \(Y'n\) decodificado. |
Exemplo
- Tempo:
remove_preamble(Xn_prime, Yn_prime)
Remove os 15 primeiros bits dos vetores de bits \(X'n\) e \(Y'n\), correspondentes ao preâmbulo adicionado no transmissor.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
Xn_prime
|
ndarray
|
Sinal \(X'n\) decodificado. |
required |
Yn_prime
|
ndarray
|
Sinal \(Y'n\) decodificado. |
required |
Returns:
Name | Type | Description |
---|---|---|
Xn_prime |
ndarray
|
Sinal \(X'n\) sem preâmbulo. |
Yn_prime |
ndarray
|
Sinal \(Y'n\) sem preâmbulo. |
Exemplo
- Tempo:
descrambler(Xn_prime, Yn_prime)
Desembaralha os vetores de bits \(X'n\) e \(Y'n\), retornando os vetores de bits \(v_{t}^{0'}\) e \(v_{t}^{1'}\).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
Xn_prime
|
ndarray
|
Vetor de bits \(X'n\) embaralhados. |
required |
Yn_prime
|
ndarray
|
Vetor de bits \(Y'n\) embaralhados. |
required |
Returns:
Name | Type | Description |
---|---|---|
vt0 |
ndarray
|
Vetor de bits \(v_{t}^{0'}\) desembaralhado. |
vt1 |
ndarray
|
Vetor de bits \(v_{t}^{1'}\) desembaralhado. |
Exemplo
- Tempo:
conv_decoder(vt0, vt1)
Decodifica os vetores de bits \(v_{t}^{0'}\) e \(v_{t}^{1'}\), retornando o vetor de bits \(u_{t}'\).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
vt0
|
ndarray
|
Vetor de bits \(v_{t}^{0'}\) desembaralhado. |
required |
vt1
|
ndarray
|
Vetor de bits \(v_{t}^{1'}\) desembaralhado. |
required |
Returns:
Name | Type | Description |
---|---|---|
ut |
ndarray
|
Vetor de bits \(u_{t}'\) decodificado. |
Exemplo
- Tempo:
run(s, t, fc=4000)
Executa o processo de recepção, retornando o resultado da recepção.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
s
|
ndarray
|
Sinal \(s(t)\) recebido. |
required |
t
|
ndarray
|
Vetor de tempo. |
required |
fc
|
float
|
Frequência de portadora. |
4000
|
Returns:
Name | Type | Description |
---|---|---|
ut |
ndarray
|
Vetor de bits \(u_{t}'\) decodificado. |
Exemplo
- Tempo: