Mudanças entre as edições de "Conceitos de Sistemas baseados em amostras e quadros"
Linha 113: | Linha 113: | ||
==Exemplo prático== | ==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 (16, 256, 1024, 16384 amostras). Para a medição dos tempos foi utilizado sempre o mesmo computador, e ativado o '''Profiler''' ['''Analysis > Performance Tools > Show Profiler Report''']. | + | Para comparar o desempenho de um sistema, o exemplo a seguir é configurado para processamento por amostras, e para diferentes tamanhos de quadros (16, 256, 1024, 16384 amostras). 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] | ||
+ | |- | ||
+ | | 1 | ||
+ | | 45,38 | ||
+ | |- | ||
+ | | 16 | ||
+ | | 6,92 | ||
+ | |- | ||
+ | | 256 | ||
+ | | 3,25 | ||
+ | |- | ||
+ | | 1024 | ||
+ | | 3,22 | ||
+ | |- | ||
+ | | 4096 | ||
+ | | 2,92 | ||
+ | |} | ||
+ | </center> |
Edição das 19h43min 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
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
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
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
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
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 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. 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 (16, 256, 1024, 16384 amostras). 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
Figura 7 - Resultado da filtragem FIR
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] |
---|---|
1 | 45,38 |
16 | 6,92 |
256 | 3,25 |
1024 | 3,22 |
4096 | 2,92 |