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
 
(4 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 90: Linha 90:
 
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.
 
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.
  
{{fig|3|Quadro com dois canais e 3 amostras por canal| multichannel_framebased.png|  | https://www.mathworks.com/help/dsp/ug/sample-and-frame-based-concepts.html}}
+
{{fig|3|Quadro com dois canais e 3 amostras por canal| multichannel_framebased.png|  | [https://www.mathworks.com/help/dsp/ug/sample-and-frame-based-concepts.html]}}
  
 
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.  
 
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.  
  
{{fig|4|Sequencia de 3 quadros com dois canais e 3 amostras por canal| multichannel_framebased_signal.png|  | https://www.mathworks.com/help/dsp/ug/sample-and-frame-based-concepts.html}}
+
{{fig|4|Sequencia de 3 quadros com dois canais e 3 amostras por canal| multichannel_framebased_signal.png|  | [https://www.mathworks.com/help/dsp/ug/sample-and-frame-based-concepts.html]}}
  
 
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.
 
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.
 +
 +
{{fig|5|Processamento baseado em amostra x quadro| ch_signals_basic49.gif|  | [https://www.mathworks.com/help/dsp/ug/sample-and-frame-based-concepts.html]}}
 +
 +
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.
  
 
*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%