Mudanças entre as edições de "Conceitos de Sistemas baseados em amostras e quadros"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(3 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 109: Linha 109:
  
 
*Tradução de [https://www.mathworks.com/help/dsp/ug/sample-and-frame-based-concepts.html Sample- and Frame-Based Concepts] pelo Google Translate + adequações.
 
*Tradução de [https://www.mathworks.com/help/dsp/ug/sample-and-frame-based-concepts.html Sample- and Frame-Based Concepts] pelo Google Translate + adequações.
 +
 +
*Veja esse vídeo que explica como o tamanho do frame afeta a velocidade de processamento de um sistema. [https://www.mathworks.com/videos/how-to-process-signals-as-frames-in-simulink-1605770729615.html Frame-Based Processing in Simulink]
 +
 +
==Exemplo prático==
 +
Para comparar o desempenho de um sistema, o exemplo a seguir é configurado para processamento por amostras, e para diferentes tamanhos de quadros.  Para a medição dos tempos foi utilizado sempre o mesmo computador, e ativado o '''[https://www.mathworks.com/help/simulink/ug/how-profiler-captures-performance-data.html Profiler]''' ['''Analysis > Performance Tools > Show Profiler Report''']. A simulação foi programada para ser de 20 segundos.
 +
 +
{{fig|6|Modelo do sistema filtragem BP FIR| FIRfilterModel.png| 600px | }}
 +
 +
{{fig|7|Resultado da filtragem FIR| FIRfilterModelResult.png| 600px  | }}
 +
 +
A tabela a seguir mostra os resultados do Profiler, na qual é possível observar o grande ganho em tempo de processamento conseguido com o uso do processamento baseado em quadros.
 +
 +
<center>
 +
{| class="wikitable" style="text-align:center;"
 +
|- style="text-align:left;"
 +
! Amostras por quadro
 +
! Tempo total  [s]
 +
! Ganho (%)
 +
|-
 +
| 1
 +
| 45,38
 +
| 0,0%
 +
|-
 +
| 2
 +
| 25,72
 +
| 43,3%
 +
|-
 +
| 4
 +
| 14,98
 +
| 67,0%
 +
|-
 +
| 16
 +
| 6,92
 +
| 84,8%
 +
|-
 +
| 256
 +
| 3,25
 +
| 92,8%
 +
|-
 +
| 1024
 +
| 3,22
 +
| 92,9%
 +
|-
 +
| 4096
 +
| 2,92
 +
| 93,6%
 +
|}
 +
</center>

Edição atual tal como às 19h47min de 30 de março de 2021

Sinais baseados em amostras e quadros

Sinais baseados em amostra são o tipo mais básico de sinal e são os mais fáceis de construir a partir de um sinal do mundo real (físico). Você pode criar um sinal baseado em amostra pela amostragem de um sinal físico em uma determinada taxa de amostragem e enviando as amostras individuais à medida que são recebidas. Em geral, a maioria dos conversores analógico-digital e digital-analógico enviam sinais baseados em amostras.

Para criar sinais baseados em quadro a partir de sinais baseados em amostra, é necessário armazenar um lote de N amostras em um buffer e criar o quadro de dados (frame). Os quadros sequenciais devem ser reproduzidos a uma taxa que é 1 / N vezes a taxa de amostragem do sinal baseado em amostra original . A taxa de saída dos quadros de dados também é conhecida como taxa de quadros do sinal .

Os dados baseados em quadros são um formato comum em sistemas de tempo real. O hardware de aquisição de dados geralmente opera acumulando um grande número de amostras de sinal a uma taxa alta. O hardware então propaga essas amostras para o sistema em tempo real como um bloco de dados. Isso maximiza a eficiência do sistema, distribuindo a sobrecarga fixa do processo em um lote de muitas amostras. Assim a aquisição de dados, etapa mais rápida, é suspensa por processos de interrupção mais lentos após a aquisição de cada quadro, em vez de após cada amostra individual.

Fontes de sinais baseados por amostra e por quadro

DSP System Toolbox™ Source Blocks Sinais baseados por amostra Sinais baseados por quadro
Chirp X X
Constant (Simulink) X X
Colored Noise X X
Discrete Impulse X X
From Multimedia File X X
Identity Matrix X
Multiphase Clock X X
N-Sample Enable X X
Random Source X
Signal From Workspace X X
Sine Wave X X
UDP Receive X
  • Para executar o processamento baseado em quadros, é necessário ter uma licença do DSP System Toolbox.

Modelo de processamento de sinais baseados em amostra e quadro no MATLAB e Simulink

Usando o DSP System Toolbox é possível processar os sinais de maneira baseada em amostra ou quadro. Ao trabalhar com blocos no Simulink®, você pode especificar, bloco a bloco, que tipo de processamento o bloco executa. Na maioria dos casos, você especifica o modo de processamento definindo o parâmetro de processamento de entrada. Quando você está usando System Objects no MATLAB®, apenas o processamento baseado em quadros está disponível. A tabela a seguir mostra as configurações de parâmetro comuns que você pode usar para realizar o processamento baseado em amostra e quadro no MATLAB e no Simulink.

Processamento das entradas Processamento baseado em amostras Processamento baseado em quadros
Simulink — Blocks Elements as channels (sample based) Columns as channels (frame based)

O que é processamento baseado em amostra?

No processamento baseado em amostra, o processamento de blocos processa uma amostra de cada vez. Cada elemento do sinal de entrada representa uma amostra de um canal distinto. Por exemplo, uma matriz 3 por 2 irá conter a primeira amostra de seis canais independentes.


Figura 1 - Amostras de seis canais independentes
Multichannel samplebased.png
Fonte: https://www.mathworks.com/help/dsp/ug/sample-and-frame-based-concepts.html.

Neste caso o bloco interpreta a entrada escalar como um sinal de canal único, interpretando uma matriz M-por-N como um sinal multicanal com M * N canais independentes. A sequencia de matrizes, correspondem a novas amostras de cada um dos canais.


Figura 2 - Sequencia de 3 amostras de cada um dos seis canais independentes
Multichannel samplebased signal.png
Fonte: https://www.mathworks.com/help/dsp/ug/sample-and-frame-based-concepts.html.

O que é processamento baseado em quadros?

No processamento baseado em quadros, os blocos processam dados um quadro por vez. Cada quadro de dados contém amostras sequenciais de um canal independente. Cada canal é representado por uma coluna do sinal de entrada. Por exemplo, a mesma matriz 3 por 2 passa a representar dois canais, cada um com três amostras.


Figura 3 - Quadro com dois canais e 3 amostras por canal
Multichannel framebased.png
Fonte: [1].

Quando um bloco é configurado para realizar o processamento baseado em quadro, um vetor M por 1 é considerado um sinal de um único canal contendo M amostras por quadro. Da mesma forma, o bloco interpreta uma matriz M por N como um sinal multicanal com N canais independentes e M amostras por canal.


Figura 4 - Sequencia de 3 quadros com dois canais e 3 amostras por canal
Multichannel framebased signal.png
Fonte: [2].

Usar o processamento baseado em quadros é vantajoso para muitas aplicações de processamento de sinal porque você pode processar várias amostras de uma vez. Ao armazenar seus dados em quadros e processar quadros de dados multisample, você pode frequentemente melhorar o tempo computacional de seus algoritmos de processamento de sinal.

Como acelerar sistemas em tempo real

O hardware de aquisição de dados geralmente opera acumulando um grande número de amostras de sinal em uma taxa alta e, em seguida, propagando essas amostras para o sistema em tempo real como um bloco de dados. Esse tipo de propagação maximiza a eficiência do sistema, distribuindo o overhead fixo do processo em muitas amostras; a aquisição de dados mais rápida é suspensa por processos de interrupção mais lentos depois que cada quadro é adquirido, em vez de depois que cada amostra individual é adquirida.

O processamento baseado em quadros aumenta a taxa de transferência(processamento) de dados, conforme mostra a figura a seguir. Cada blocos azul representa o tempo decorrido durante a aquisição de uma amostra. Cada um dos blocos cinza (mais grossos) representa o tempo decorrido durante a rotina de serviço de interrupção (ISR) que lê os dados do hardware. Neste exemplo, a operação baseada em quadro adquire um quadro de 16 amostras entre cada ISR. Assim, a taxa de transferência baseada em quadros é muitas vezes maior do que a alternativa baseada em amostra.


Figura 5 - Processamento baseado em amostra x quadro
Ch signals basic49.gif
Fonte: [3].

A simulação de um modelo no Simulink também se beneficia do processamento baseado em quadros, pois nesse caso é reduzido a sobrecarga das comunicações bloco a bloco, propagando pelos blocos quadros de dados no lugar de amostras individuais.

Exemplo prático

Para comparar o desempenho de um sistema, o exemplo a seguir é configurado para processamento por amostras, e para diferentes tamanhos de quadros. Para a medição dos tempos foi utilizado sempre o mesmo computador, e ativado o Profiler [Analysis > Performance Tools > Show Profiler Report]. A simulação foi programada para ser de 20 segundos.


Figura 6 - Modelo do sistema filtragem BP FIR
FIRfilterModel.png
Fonte: Elaborado pelo autor.

Figura 7 - Resultado da filtragem FIR
FIRfilterModelResult.png
Fonte: Elaborado pelo autor.

A tabela a seguir mostra os resultados do Profiler, na qual é possível observar o grande ganho em tempo de processamento conseguido com o uso do processamento baseado em quadros.

Amostras por quadro Tempo total [s] Ganho (%)
1 45,38 0,0%
2 25,72 43,3%
4 14,98 67,0%
16 6,92 84,8%
256 3,25 92,8%
1024 3,22 92,9%
4096 2,92 93,6%