Skip to content

Plotter

BasePlot

Classe base para plotagem de gráficos, implementando funcionalidades comuns a todos os plots.

Parameters:

Name Type Description Default
ax Axes

Objeto Axes do matplotlib.

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 x = [xlim[0], xlim[1]].

None
ylim Optional[Tuple[float, float]]

Limites do eixo y y = [ylim[0], ylim[1]].

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: pageplot
  • Demodulador: pageplot
  • Adição de AWGN pageplot

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.

\[ \begin{equation} S(f) = \mathcal{F}\{s(t)\} \end{equation} \]
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: pageplot
  • Demodulador: pageplot
  • Adição de AWGN pageplot

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.

\[ s(t) = d_I(t) + j d_Q(t) \]
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: pageplot

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: pageplot
  • Codificador Convolucional: pageplot
  • Embaralhador: pageplot
  • Preâmbulo: pageplot
  • Multiplexador: pageplot

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: pageplot

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: pageplot
  • Resposta ao Impulso Filtro Passa baixa: pageplot
  • Resposta ao Impulso RRC Invertido: pageplot

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: pageplot

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: pageplot

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.

\[ s(t) = \arctan\left(\frac{d_Q(t)}{d_I(t)}\right) \]
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: pageplot

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: pageplot

GaussianNoisePlot

Bases: BasePlot

Classe para plotar a densidade de probabilidade \(p(x)\) de uma dada variância \(\sigma^2\), seguindo a expressão abaixo.

\[ p(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{x^2}{2\sigma^2}\right) \]
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

pageplot

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

pageplot

mag2db(signal)

Converte a magnitude do sinal para escala logarítmica (\(dB\)). O processo de conversão é dado pela expressão abaixo.

\[ dB(x) = 20 \log_{10}\left(\frac{|x|}{x_{peak} + 10^{-12}}\right) \]
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 Figure do matplotlib

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