Plotter
BasePlot
Classe base para plotagem de gráficos, implementando funcionalidades comuns a todos os plots.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
ax
|
Axes
|
Objeto |
required |
title
|
str
|
Título do plot. |
''
|
labels
|
Optional[List[str]]
|
Lista de rótulos para os eixos. |
None
|
xlim
|
Optional[Tuple[float, float]]
|
Limites do eixo x |
None
|
ylim
|
Optional[Tuple[float, float]]
|
Limites do eixo y |
None
|
colors
|
Optional[Union[str, List[str]]]
|
Cores do plot. |
None
|
style
|
Optional[Dict[str, Any]]
|
Estilo do plot. |
None
|
TimePlot
Bases: BasePlot
Classe para plotar sinais no domínio do tempo, recebendo um vetor de tempo \(t\), e uma lista de sinais \(s(t)\).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fig
|
Figure
|
Figura do plot |
required |
grid
|
GridSpec
|
GridSpec do plot |
required |
pos
|
int
|
Posição do plot |
required |
t
|
ndarray
|
Vetor de tempo |
required |
signals
|
Union[ndarray, List[ndarray]]
|
Sinal ou lista de sinais \(s(t)\). |
required |
Exemplos
- Modulador:
- Demodulador:
- Adição de AWGN
FrequencyPlot
Bases: BasePlot
Classe para plotar sinais no domínio da frequência, recebendo uma frequência de amostragem \(f_s\) e um sinal \(s(t)\) e realizando a transformada de Fourier do sinal, conforme a expressão abaixo.
Sendo
- \(S(f)\): Sinal no domínio da frequência.
- \(s(t)\): Sinal no domínio do tempo.
- \(\mathcal{F}\): Transformada de Fourier.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fig
|
Figure
|
Figura do plot |
required |
grid
|
GridSpec
|
GridSpec do plot |
required |
pos
|
int
|
Posição do plot |
required |
fs
|
float
|
Frequência de amostragem |
required |
signal
|
ndarray
|
Sinal a ser plotado |
required |
fc
|
float
|
Frequência central |
0.0
|
Exemplos
- Modulador:
- Demodulador:
- Adição de AWGN
ConstellationPlot
Bases: BasePlot
Classe para plotar sinais no domínio da constelação, recebendo os sinais \(d_I\) e \(d_Q\), realizando o plot em fase \(I\) e quadratura \(Q\), conforme a expressão abaixo.
Sendo
- \(s(t)\): Sinal complexo.
- \(d_I(t)\): Sinal em fase.
- \(d_Q(t)\): Sinal em quadratura.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fig
|
Figure
|
Figura do plot |
required |
grid
|
GridSpec
|
GridSpec do plot |
required |
pos
|
int
|
Posição do plot |
required |
dI
|
ndarray
|
Sinal I |
required |
dQ
|
ndarray
|
Sinal Q |
required |
amplitude
|
Optional[float]
|
Amplitude alvo para pontos ideais |
None
|
Exemplos
- Fase e Constelação:
BitsPlot
Bases: BasePlot
Classe para plotar bits, recebendo uma lista de bits \(b_t\) e realizando o plot em função do tempo \(t\).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fig
|
Figure
|
Figura do plot |
required |
grid
|
GridSpec
|
GridSpec do plot |
required |
pos
|
int
|
Posição do plot |
required |
bits_list
|
List[ndarray]
|
Lista de bits |
required |
sections
|
Optional[List[Tuple[str, int]]]
|
Seções do plot |
None
|
colors
|
Optional[List[str]]
|
Cores do plot |
None
|
Exemplos
- Datagrama:
- Codificador Convolucional:
- Embaralhador:
- Preâmbulo:
- Multiplexador:
EncodedBitsPlot
Bases: BasePlot
Classe para plotar sinais codificados com codificação de linha, recebendo um vetor de simbolos \(s\) e realizando o plot em função do tempo \(t\).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fig
|
Figure
|
Figura do plot |
required |
grid
|
GridSpec
|
GridSpec do plot |
required |
pos
|
int
|
Posição do plot |
required |
symbols
|
ndarray
|
Vetor de simbolos \(s\) |
required |
color
|
str
|
Cor do plot |
'black'
|
Exemplos
- Codificação de Linha:
ImpulseResponsePlot
Bases: BasePlot
Classe para plotar a resposta ao impulso de um filtro, recebendo um vetor de tempo \(t_{imp}\) e realizando o plot em função do tempo \(t\).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fig
|
Figure
|
Figura do plot |
required |
grid
|
GridSpec
|
GridSpec do plot |
required |
pos
|
int
|
Posição do plot no GridSpec |
required |
t_imp
|
ndarray
|
Vetor de tempo da resposta ao impulso |
required |
impulse_response
|
ndarray
|
Amostras da resposta ao impulso |
required |
t_unit
|
str
|
Unidade de tempo no eixo X ("ms" ou "s"). Default é "ms" |
'ms'
|
Exemplos
- Resposta ao Impulso RRC:
- Resposta ao Impulso Filtro Passa baixa:
- Resposta ao Impulso RRC Invertido:
TrellisPlot
Bases: BasePlot
Classe para plotar o diagrama de treliça de um decodificador viterbi, recebendo um dicionário de treliça e realizando o plot em função do tempo \(t\).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fig
|
Figure
|
Figura do plot |
required |
grid
|
GridSpec
|
GridSpec do plot |
required |
pos
|
int
|
Posição do plot no GridSpec |
required |
trellis
|
dict
|
Dicionário do treliça. |
required |
num_steps
|
int
|
Número de passos no tempo |
5
|
initial_state
|
int
|
Estado inicial |
0
|
Exemplos
- Treliça Decodificador Viterbi:
SampledSignalPlot
Bases: BasePlot
Classe para plotar um sinal \(s(t)\) amostrado em \(t_s\).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fig
|
Figure
|
Figura do plot |
required |
grid
|
GridSpec
|
GridSpec do plot |
required |
pos
|
int ou tuple
|
Posição no GridSpec |
required |
t_signal
|
ndarray
|
Vetor de tempo do sinal filtrado |
required |
signal
|
ndarray
|
Sinal filtrado |
required |
t_samples
|
ndarray
|
Instantes de amostragem |
required |
samples
|
ndarray
|
Amostras correspondentes |
required |
Exemplos
- Sinal Amostrado:
PhasePlot
Bases: BasePlot
Classe para plotar a fase dos sinais \(d_I(t)\) e \(d_Q(t)\) no domínio do tempo, conforme a expressão abaixo.
Sendo
- \(s(t)\): Vetor de fases por intervalo de tempo.
- \(d_I(t)\): Componente sinal \(d_I(t)\), em fase.
- \(d_Q(t)\): Componente sinal \(d_Q(t)\), em quadratura.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fig
|
Figure
|
Figura do plot |
required |
grid
|
GridSpec
|
GridSpec do plot |
required |
pos
|
int
|
Posição do plot |
required |
t
|
ndarray
|
Vetor de tempo |
required |
signals
|
Union[ndarray, List[ndarray]]
|
Sinais IQ (I e Q) |
required |
labels
|
(List[str], opcional)
|
Rótulos para os sinais. Se não fornecido, será gerado automaticamente. |
required |
Exemplos
- Fase e Constelação:
BersnrPlot
Bases: BasePlot
Classe para plotar a curva \(E_b/N_0\) versus \(BER\), uma lista de sinais ber_values
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fig
|
Figure
|
Figura do plot |
required |
grid
|
GridSpec
|
GridSpec do plot |
required |
pos
|
int
|
Posição do plot no GridSpec |
required |
ebn0
|
ndarray
|
Vetor de valores de \(E_b/N_0\) em \(dB\) |
required |
ber_values
|
List[ndarray]
|
Lista de vetores de valores de \(BER\) para diferentes condições |
required |
labels
|
Optional[List[str]]
|
Rótulos para as curvas. |
required |
Exemplos
- Argos e QPSK:
GaussianNoisePlot
Bases: BasePlot
Classe para plotar a densidade de probabilidade \(p(x)\) de uma dada variância \(\sigma^2\), seguindo a expressão abaixo.
Sendo
- \(p(x)\): Densidade de probabilidade do ruído.
- \(\sigma^2\): Variância do ruído.
- \(x\): Amplitude do ruído.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fig
|
Figure
|
Figura do plot |
required |
grid
|
GridSpec
|
GridSpec do plot |
required |
pos
|
int
|
Posição do plot no GridSpec |
required |
variance
|
float
|
Variância do ruído |
required |
num_points
|
int
|
Número de pontos para a curva da gaussiana |
1000
|
Exemplos
PoleZeroPlot
Bases: BasePlot
Classe para plotar o diagrama de polos e zeros de uma função de transferência discreta no plano-z.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fig
|
Figure
|
Figura do plot |
required |
grid
|
GridSpec
|
GridSpec do plot |
required |
pos
|
int
|
Posição no GridSpec |
required |
b
|
ndarray
|
Coeficientes do numerador da função de transferência |
required |
a
|
ndarray
|
Coeficientes do denominador da função de transferência |
required |
Exemplos
mag2db(signal)
Converte a magnitude do sinal para escala logarítmica (\(dB\)). O processo de conversão é dado pela expressão abaixo.
Sendo
- \(x\): Sinal a ser convertido para \(dB\).
- \(x_{peak}\): Pico de maior magnitude do sinal.
- \(10^{-12}\): Constante para evitar divisão por zero.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
signal
|
ndarray
|
Array com os dados do sinal |
required |
Returns:
Type | Description |
---|---|
ndarray
|
Array com o sinal convertido para \(dB\) |
create_figure(rows, cols, figsize=(16, 9))
Cria uma figura com GridSpec
, retornando o objeto fig
e grid
para desenhar os plots.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rows
|
int
|
Número de linhas do GridSpec |
required |
cols
|
int
|
Número de colunas do GridSpec |
required |
figsize
|
Tuple[int, int]
|
Tamanho da figura |
(16, 9)
|
Returns:
Type | Description |
---|---|
Tuple[Figure, GridSpec]
|
Tuple[plt.Figure, gridspec.GridSpec]: Tupla com a figura e o GridSpec |
save_figure(fig, filename, out_dir='../../out')
Salva a figura em <out_dir>/<filename>
a partir do diretório raiz do script.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fig
|
Figure
|
Objeto |
required |
filename
|
str
|
Nome do arquivo de saída |
required |
out_dir
|
str
|
Diretório de saída |
'../../out'
|
Raises:
Type | Description |
---|---|
ValueError
|
Se o diretório de saída for inválido |