Este é o décimo segundo curso de Engenharia Elétrica Universitária: processamento
digital de sinais — o último do ramo EE. EE06 construiu
transformações que residem em um computador, os filtros que você pode realmente entregar, e
a maquinaria multirritmo que transita entre taxas.
transform.
Unidades 12.1–12.3 alteram taxas e constroem uma pequena pipeline verificada.
Unidades 12.4–12.5 projetam filtros: FIR por janelas, IIR por transformação bilinear
transformada.
Unidades 12.6–12.7 alteram taxas e constroem um pipeline pequeno verificado.
O hábito de verificação: todo projeto de filtro é validado contra sua
especificação (ondulação medida, transição medida, banda rejeitada medida),
toda afirmação de mapeamento de frequência é explicitamente pré-deformada e toda afirmação de aceleração
é uma contagem de operações, não um mito.
Por que importa. Tudo neste curso — cada filtro, cada
espectro, qualquer aceleração — é eventualmente um programa operando sobre uma lista de
números. Todo o comportamento desse programa é definido por uma única lista: a
resposta ao impulso.
A ideia, com uma imagem. Um sistema discreto é LTI quando é totalmente
descrito pela sua resposta ao impulso$h[n]$: a saída é
convolução$y[n] = \sum_{k} h[k]\cdot x[n-k]$ — deslize os taps
sobre a entrada e some uma diagonal por vez.
O FIR se estabiliza em três amostras; o averador recursivo nunca se estabiliza exatamente — a soma dos taps é o destino em ambos
Causalidade significa $h[n] = 0$ para $n < 0$ (nenhuma saída antes de uma
entrada); Estabilidade BIBO significa $\sum |h[n]|$ converge. Toda
afirmação neste curso reduz-se a uma dessas duas frases.
A dedução. Alimente a exponencial complexa $x[n] = e^{j\omega n}$
na soma de convolução: cada termo adquire o fator
$h[k]e^{j\omega(n-k)} = e^{j\omega n}h[k]e^{-j\omega k}$, então a saída é
$e^{j\omega n}\sum_{k}h[k]e^{-j\omega k}$ — a exponencial é uma
autofunção, e o autovalor $H(e^{j\omega}) = \sum h[n]e^{-j\omega n}$
é a resposta em frequência. A resposta em frequência é apenas a DTFT dos
taps: a unidade 12.2 baseia-se exatamente nisso.
Exemplo resolvido 1 — a tabela deslizante.$h = [1, 2, 1]$ (um tap de 3-
mais suave) em um degrau $x = [1, 1, 1, 1, \ldots]$: deslize e adicione —
$y = 1, 3, 4, 4, \ldots$ O valor estáável é $\sum h = 4$ ✓ (um degrau
através de qualquer FIR se estabelece na soma dos taps — ou seja, o ganho CC $H(1)$). Um
pulso finito $[1,1,1]$ resulta em $1, 3, 4, 3, 1$, espelhando os taps: a
saída lê os taps para frente e depois para trás.
Exemplo resolvido 2 — o primo recursivo. A média móvel
$y[n] = (y[n-1] + x[n])/2$ possui resposta ao impulso infinita
$h[n] = 0.5^{n+1}$: sua resposta a um degrau calcula-se como $0.5, 0.75, 0.875,
0.9375$ — reduzindo à metade a distância até 1 a cada passo, o exponencial
$1 - 2^{-(n+1)}$ ✓, pois seu único polo situa-se em $z = 0.5$. Compare as
dois suavizadores: a memória do FIR é exatamente 3 amostras; o recursivo
nunca esquece totalmente. $|pole| < 1$ é estabilidade — unidade 12.5
torna isso uma especialidade.
Erros comuns. Inverter o sinal errado na tabela (convolução
é comutativa, mas uma tabela manual deve permanecer consistente ou as diagonais
mentem). Citar $\sum h$ como "o ganho" sem especificar que é o ganho em DC
apenas. E esperar que um suavizador recursivo se estabilize — ele aproxima-se, nunca
chega.
Resumo. LTI significa convolução por $h[n]$; causalidade é $h[n]=0$ para
$n<0$; estabilidade ocorre quando $\sum|h| < \infty$ (polos dentro do círculo unitário);
exponenciais são autofunções com autovalor $H(e^{j\omega})$.
Por que importa. Um computador armazena $N$ amostras, não uma integral — a
espectro deve tornar-se uma lista finita de números. Como essa lista se apresenta a você
é o único tema mais prático do curso.
A ideia, com uma figura. O DTFT$X(e^{j\omega}) = \sum_{n} x[n]e^{-j\omega n}$ é periódico em $\omega$
com período $2\pi$. Amostrá-lo em $N$ pontos gera o
DFT — e amostrar em frequência significa que o sinal temporal
é tratado como periódico: esse único fato explica a vazamento.
No bin: dois picos. Meio bin afastado: as lóbulas laterais da janela retangular pintam todos os bins
Resolução é uma decisão temporal: os bins têm largura de $\Delta f = f_{s}/N$
portanto, resolução de 1 Hz em $f_{s} = 1$ kHz significa $N = 1000$ — um segundo
de dados, sem exceções.
A dedução. Amostrar o DTFT em $\omega_{k} = 2\pi k/N$ equivale a
multiplicá-lo por um pente de frequências; pela dualidade, o sinal temporal torna-se
periódico com período $N$. Se seu tom estiver exatamente em um bin, as
cópias periódicas unem-se perfeitamente — dois picos limpos. Se estiver entre
bins, as cópias discordam e a discrepância espalha energia para todos os
bins. Janelar os dados com $w[n]$ convolui o espectro verdadeiro com
$W(e^{j\omega})$: as lóbulas laterais do retângulo estão apenas $-13$ dB abaixo, portanto
o espalhamento ser audível; a janela de Hamming suprime seus lóbulos laterais até
$-43$ dB, adquirindo um espectro limpo à custa de um lóbulo principal mais largo.
Exemplo resolvido 1 — a mancha, quantificada. Uma DFT de 8 pontos de um cosseno
exatamente no bin 1 ($f = f_{s}/8$): $|X| = 4$ nos bins 1 e 7, zero
em outros lugares ✓ (todas as amostras 8 descrevem períodos inteiros). Deslize o tom meio
um bin ($f = 1.5\cdot f_{s}/8$): as magnitudes calculam $2.40, 2.80,
1.19, 1.0, \ldots$ em todos os bins ✓ — um tom entre bins é visível
em toda parte, e um sinal pequeno ao lado de um grande desaparece em seus
lobos laterais. Esse é o verdadeiro custo do vazamento.
Exemplo resolvido 2 — o orçamento de resolução. Em $f_{s} = 1$ kHz:
$N = 100$ fornece bins de 10 Hz — dois tons separados por 6 Hz formam UM pico, não importa
quão limpo pareça o gráfico. $N = 1000$ fornece bins de 1 Hz para um segundo de dados.
O preenchimento de zeros até 4000 pontos desenha o mesmo pico com 40× mais tinta:
o padding interpola o mesmo espectro, não resolve nada
novo. A resolução foi decidida quando você escolheu quanto tempo medir.
Erros comuns. Ler números de bin como hertz — o mapa é
$f = k\cdot f_{s}/N$. Acreditar que preenchimento de zeros compra resolução. E
esquecer que a DFT assume que suas amostras $N$ se repetem para sempre: a descontinuidade
entre cópia e cópia é em si um sinal de banda larga.
Resumo.$X[k]$ = DTFT amostrado em $2\pi k/N$ ⇔ periódico no tempo com
período $N$; tons fora dos bins vazam pelos lobos laterais da janela
(retângulo $-13$ dB, Hamming $-43$ dB); $\Delta f = f_{s}/N$ é adquirido
com o tempo de medição, nunca com preenchimento.
Por que importa. A DFT requer $N^{2}$ operações complexas — uma
transformada de 1024 pontos equivale a um milhão de multiplicações. A FFT
é o algoritmo que tornou o processamento digital de sinais uma área de estudo.
A ideia, com uma imagem. Fatorar uma DFT de $N$ pontos em duas
DFTs de $N/2$ pontos mais a combinação de $N/2$ multiplica — e recursa. A
borboleta é a unidade de combinação: $\log_{2}N$ estágios de
$N/2$ borboletas, cada uma realizando multiplicação e adição.
Mesma resposta, 102× menos operações em N = 1024 — e a diferença aumenta com N
A derivação. Dividir $x[n]$ em amostras pares e ímpares:
$X[k] = \sum_{even} x[n]W_{N}^{kn} + W_{N}^{k}\sum_{odd}x[n]W_{N}^{kn}$
com o fator de rotação$W_{N} = e^{-j2\pi/N}$. Cada soma é
uma DFT de $N/2$ pontos (Danielson–Lanczos); o braço ímpar precisa apenas do
fator $W_{N}^{k}$ para recombinar. Recursione $\log_{2}N$ vezes. O
processo de separação par/ímpar percorre os bits de endereço de trás para frente — logo
entrada invertida em bits para a variante decimação no tempo.
Exemplo resolvido 1 — a contagem. Contando operações complexas de multiplicação-adição:
direto: $N^{2} = 1024^{2} = 1\,048\,576$; FFT:
$N\log_{2}N = 1024\times 10 = 10\,240$ — 102× menos ✓. Em
$N = 4096$: $4096^{2}$ contra $4096\times 12$ = 341× ✓. A lacuna
aumenta com $N$: a FFT é $O(N\log N)$, e toda a ordem da
cálculo muda.
Exemplo resolvido 2 — o analisador de espectro. 1 faixas em Hz para
$f_{s} = 1$ kHz precisam de $N \ge 1000$: escolha $N = 1024$ (uma potência de dois),
fornecendo $\Delta f = 1000/1024 = 0.977$ Hz ✓ exatamente suficiente. Em dez nanossegundos por
operação, a transformação termina em cerca de $100\ \mu s$ — tempo real
contra um registro de 1.024 s. A faixa 100 desse DFT é frequência
$100\times 0.977 = 97.66$ Hz ✓ — o mapeamento de faixa para hertz é
$k\cdot f_{s}/N$, e esquecê-lo é o erro clássico de laboratório.
Erros comuns. Assumir que $N$ deve ser uma potência de dois (misturado-raiz
e Bluestein lidam com qualquer $N$; o caso de potência de dois é apenas o
mais rápido). Esperar que a FFT altere a resposta — ela calcula o mesmo
DFT, apenas mais rápido. E ler faixas como hertz, novamente.
Resumo. Divisão par/ímpar + fatores twiddle, $\log_{2}N$ estágios,
$N\log_{2}N$ operações: ganho de velocidade de 102× em $N=1024$ que cresce com $N$;
a matemática é o DFT, a engenharia é a borboleta.
Por que importa. O filtro FIR é o cavalo de batalha que você
pode provar coisas sobre: incondicionalmente estável, e — com coeficientes simétricos —
taps — exatamente fase linear. Frequências em uma banda passante plana mantêm suas
fases relativas; filtragem de amplitude ainda pode alterar uma forma de onda.
A ideia, com uma imagem. Comece com a resposta ao impulso do filtro passa-baixas ideal
(um sinc), truncando-o para $N$ taps com uma janela $w[n]$, e a
forma espectral da janela É o destino do filtro: sua largura de lóbulo principal
A janela decide tudo: lóbulo principal = largura de transição, lobos laterais = profundidade da rejeição
A janela guia o projeto; calcule a resposta do filtro real para verificar sua banda passante e rejeita
Definições com números. Lobos laterais máximos das próprias janelas: retangular $-13$ dB,
Hann $-31$ dB, Hamming $-43$ dB, Blackman $-58$ dB.
Largura de transição $\approx 3.3\cdot f_{s}/N$ para Hamming. Taps simétricos reais
$h[n] = h[N-1-n]$ fornecem fase linear com atraso de grupo
$(N-1)/2$ amostras sempre que a resposta for não nula. A fase pode saltar por
$\pi$ quando o fator de amplitude real mudar de sinal; fase e atraso de
grupo são indefinidos nos zeros da resposta.
A derivação. Truncar $h[n]$ é multiplicar por $w[n]$; no
domínio da frequência, a resposta real convoluciona com $W(e^{j\omega})$. Portanto, a
resposta implementada é o muro de tijolos ideal espalhado pela janela:
por trás de Parks–McClellan torna o projeto equirripple ótimo onde as janelas são apenas convenientes.)
cuja atenuação depende da convolução, corte e contagem de taps. Um
valor de lobo lateral da janela não é garantia de rejeição do filtro resultante.
Use a tabela de janelas e estimativa de transição para escolher um design inicial,
depois calcule sua resposta. (O teorema de alternância
por trás de Parks–McClellan torna o projeto equirripple ótimo onde as janelas
são apenas convenientes.)
Exemplo resolvido 1 — dimensionar o filtro. Um FIR Hamming em $f_{s} = 1$ kHz
deve passar até 200 Hz e atenuar a partir de 250 Hz. Escolha um
corte ideal de 225 Hz na transição de 50 Hz: $N = 3.3\cdot 1000/50 = 66$ ✓ — use 67, ímpar,
para um filtro simétrico Tipo-I com atraso de $(67-1)/2 = 33$ amostras
(33 ms). Em $N = 31$, a mesma janela resulta em transição de $3.3\cdot 1000/31 = 106$ Hz:
os dois designs delimitam a especificação; o atraso é um custo para registrar,
não uma nota de rodapé.
Exemplo resolvido 2 — verifique o projeto. Forme as amostras 67 a partir de
$h[n] = 0.45\operatorname{sinc}(0.45(n-33))w[n]$, onde
$\operatorname{sinc}(x)=\sin(\pi x)/(\pi x)$ e seu valor em zero é 1.
Normalize a soma das amostras para 1. Avalie
$H(f)=\sum_{n=0}^{66}h[n]e^{-j2\pi fn/1000}$.
Em uma grade de 0.025 Hz, a banda passante calculada (0–200 Hz) varia de
$-0.034$ a $+0.0045$ dB, e o maior nível da banda rejeitada
(250–500 Hz) é cerca de $-52.3$ dB. Essas verificações amostradas atendem às metas
de ondulação de ±0.05 dB e no máximo $-43$ dB de nível da banda rejeitada; uma grade mais fina ou
busca de extremos verifica entre as amostras. Se um projeto em vez disso fornecer
$-37$ dB, ele falha nessa meta: inspecione suas amostras, corte, janela, número de amostras
e faixa de medição em vez de adivinhar uma causa única.
Erros comuns. Projetar $N$ baseado apenas no corte e nunca medir.
Escolher um $N$ par quando se pretendia um projeto Tipo-I (ímpar, simétrico).
Esquecer o atraso de $(N-1)/2$ em um loop de controle. E pedir às janelas
otimalidade — elas são convenientes, não as melhores.
Resumo. Janelize o sinc ideal: a tabela dos lobos laterais orienta a escolha da janela,
$3.3f_{s}/N$ define a transição, simetria define fase linear no atraso
$(N-1)/2$; então meça a resposta contra todos os números prometidos.
12.5
Projeto de filtro IIR
Por que importa. O mesmo corte de 100 Hz que exige um FIR com 67 coeficientes
exige de um IIR biquad 5 coeficientes — pois herda
quarenta anos de conhecimento em filtros analógicos através de uma substituição.
A ideia, com uma imagem. A transformada bilinear$s = \frac{2}{T}\cdot\frac{1-z^{-1}}{1+z^{-1}}$ mapeia todo o semiplano esquerdo analógico
dentro do círculo unitário: todo filtro analógico estável
torna-se automaticamente digital e estável.
A estabilidade é gratuita; o custo é a distorção de frequência, compensada pelo pré-deformação
O preço é a distorção de frequência: o eixo analógico $-\infty \ldots
\infty$ envolve uma vez o círculo unitário de forma compressiva, então toda
frequência crítica deve ser pré-deformada$\omega_{a} = \frac{2}{T}\tan(\omega_{d}T/2)$ antes do uso.
A derivação. Substitua $s = j\omega_{a}$ na transformada: resolve para
$z = \frac{1+sT/2}{1-sT/2}$, cuja magnitude é 1 exatamente quando
$\mathrm{Re}\,s = 0$ — o eixo imaginário analógico mapeia-se sobre o círculo
unitário, semiplano esquerdo estritamente interno. A relação tangente é a
distorção: próximo de dc $\tan\theta \approx \theta$ (distorção desprezível), mas uma
frequência digital aproximando-se de Nyquist comprime-se em direção ao infinito
analógico. Tabelas de Butterworth, Chebyshev e elípticas são transplantadas intactas
porque apenas o eixo de frequência se deformou — a geometria polinomial permaneceu.
Exemplo resolvido 1 — o biquádrado. Um filtro passa-baixas Butterworth de ordem 2 em
100 Hz, $f_{s} = 1$ kHz: pré-distorção
$\omega_{a} = 2000\tan(\pi\cdot 100/1000) = 649.8$ rad/s ✓. Com
$s$ normalizado por $\omega_{a}$, a constante de substituição é
$K = 1/\tan(0.1\pi) = 3.078$ e o protótipo
$H(s) = 1/(s^{2}+1.4142s+1)$ transforma-se em
Exemplo resolvido 2 — verifique, depois pague. Ganho DC: o denominador soma
para $14.82 - 16.94 + 6.12 = 4.00$, logo $H(1) = 4/4 = 1.000$ ✓
(Butterworth é plano em DC). A resposta exatamente em 100 Hz avalia-se em
$-3.0$ dB ✓ — o prewarp posicionou o ponto de $-3$ dB precisamente no
frequência prometida, que é todo o objetivo da pré-deformação. Os polos
situar em $|z| = 0.643$, dentro do círculo unitário porque o mapeamento
garante isso ✓. Pule o prewarp — projete o filtro analógico em
$2\pi \times 100 = 628.3$ rad/s — e o ponto de $-3$ dB cai em 96.9 Hz;
defina $T = 1$ também ($K = 1$) e ele corta em 250 Hz, apresentando uma leitura complacente
$-0.05$ dB em 100 Hz enquanto ignora totalmente a especificação — os
números sempre mostram a diferença. O
custo: 5 coeficientes contra os 67 taps do FIR, mas a fase é
não linear próxima à frequência de corte e, em ponto fixo, os coeficientes
coeficientes são frágeis — um arredondamento de $6.12$ desloca o
a frequência de corte mensuravelmente. Eficiência, fase e sensibilidade trocam em uma linha.
Erros comuns. Pular o prewarp (a frequência de corte cai baixa — 96.9 Hz
para 100 Hz em 1 kHz é pequeno, 2.86 kHz para 4 kHz em 10 kHz é fatal).
Definir $T = 1$ ainda citando hertz analógicos. Testar estabilidade por
acaso em vez de confiar no mapeamento. E esperar fase linear — IIR
fase próxima aos seus polos é o oposto de plana.
Resumo. Bilinear: PLI → disco unitário (estabilidade livre), frequências
deformadas por $\frac{2}{T}\tan(\cdot)$ (pré-deformação em cada frequência crítica);
o biquádico Butterworth landing como
$H(z) = \frac{1+2z^{-1}+z^{-2}}{14.82 - 16.94z^{-1} + 6.12z^{-2}}$
(dc 1.000, $-3.0$ dB em 100 Hz, polos em 0.643).
Por que importa. Taxa de amostragem é orçamento de computação: um filtro rodando a
48 kHz custa seis vezes mais que o mesmo filtro a 8 kHz. Multitaxa é a arte de
fazer o trabalho onde é barato.
A ideia, com uma imagem.Decimação por $M$ (manter a cada
$M$-ésima amostra) deve primeiro fazer passa-baixas abaixo de $f_{s}/(2M)$ — ou o espectro dobrado
aliase, irreversivelmente. Interpolação por $L$ (inserir
$L-1$ zeros entre amostras) deve então passar passa-baixas abaixo do Nyquist antigo para
eliminar as imagens.
Oupsampling pinta imagens a cada 8 kHz; um passa-baixas as apaga; polifásico faz a mesma aritmética para um sexto das multiplicações
A derivação. Inserir zeros por $L$ no tempo torna
$X_{up}(e^{j\omega}) = X(e^{j\omega L})$ — o mesmo espectro replicado
$L$ vezes ao redor do círculo: essas são as imagens, e elas são exatamente
tão reais quanto o sinal. Manter 1 amostra em $M$ sobrepor $M$ cópias espectrais
sobrepostas entre si: tudo que está acima da nova Nyquist dobra-se para dentro
da banda. Os dois filtros passa-baixos não são burocracia; cada um elimina uma
certeza matemática. Polifásico é então pura álgebra: os
conjuntos de fase do filtro de interpolação $L$ veem apenas a cada $L$ entrada,
portanto, um filtro em $f_{s}L$ torna-se $L$ subfiltros em $f_{s}$ — idênticos
arithmeticamente, $1/L$ multiplica.
Exemplo resolvido 1 — fala de 8 kHz para 48 kHz. Interpole por 6, depois aplique um
filtro passa-baixo em 4 kHz (a antiga Nyquist) para remover as imagens em 8k, 16k,
40k… Executado ingenuamente, esse filtro opera a 48 kHz — seis vezes mais trabalho.
A estrutura polifásica reorganiza isso em 6 subfiltros operando cada um a 8 kHz: a
mesma aritmética, $1/6$ menos multiplicações ✓ — e isso não é uma
aproximação, é o mesmo cálculo programado de forma diferente.
Exemplo resolvido 2 — um conversor, não dois. Redispersar áudio de 48 kHz
para 72 kHz requer $L = 3$, $M = 2$ ($48\times 3/2 = 72$ ✓). Duas etapas necessitariam de um interpolador, um filtro, um decimador e outro filtro. Um
precisa de um interpolador, um filtro, um decimator e outro filtro. Um
filtro passa-baixo em 3 kHz (a própria Nyquist de entrada — ele bloqueia a 144
passa-baixas em 24 kHz (a Nyquist da própria entrada — ele bloqueia a $\uparrow 3$
imagens e os $\downarrow 2$ aliases de uma vez), mantenha cada segunda
amostra. Um filtro, uma passagem, o mesmo resultado.
Erros comuns. Decimar antes de filtrar (o alias então não é
ruído, ele é permanente). Esquecer a $1/L$ perda de amplitude de
zero-stuffing (compense com ganho de $L$ no filtro). E
tratar polifase como aproximação — ela é contabilidade exata.
Resumo.$\downarrow M$ precisa de um passa-baixas em $f_{s}/2M$ primeiro;
$\uparrow L$ precisa de um passa-baixas na antiga Nyquist depois; polifase
entrega a mesma aritmética para $1/L$ as multiplicações; conversores racionais $L/M$
se fundem em um único filtro na taxa intermediária.
12.7
Projeto de processamento de sinais
Por que importa. O curso fecha o caminho que a prática abre: com uma
especificação, uma implementação e uma medição — e a lacuna honesta
entre as três.
A ideia, com uma imagem. Construa um detector de tom como pipeline,
cada etapa verificada individualmente antes da próxima existir: filtro anti-alias →
janela → FFT → limiar. Um defeito encontrado em uma etapa custa uma hora;
encontrado no sistema integrado, uma semana de bisseção.
Especifique primeiro, verifique cada etapa sozinha, depois meça todo o conjunto contra cada linha de especificação
O método. Escreva a especificação primeiro — um detector de tom: 1 Hz
bins, com latência inferior a 1 s, detecção em $-10$ dB SNR — implementar em
etapas verificadas e relatar o desempenho medido para cada
linha, incluindo falhas.
Exemplo resolvido 1 — a especificação volta ao ataque. 1 bins de Hz em $f_{s} = 1$ kHz
precisa de $N \ge 1000$ amostras — isso já é $1.0$ s de dados, e o
especificação exige latência sob 1 s. O conflito surge no tempo de projeto, que
is when you want it: $N = 1024$ gives 0.977 Hz ✓ but a 1.024 s
record ✗; $N = 1000$ gives 1.000 Hz — exactly on the line. The margin
tabela de margens registra a troca; nada fica em silêncio.
2: o ganho de processamento do bin é $-10$ — em
coherent energy lands in one bin while white noise spreads over all
$N/2$: the bin processing gain is $10\log_{10}(N/2)$ — at
$N = 1024$ that is $27$ dB ✓. An input SNR of $-10$ dB becomes about
$+17$ dB in the decision bin: detectable with margin — the window
custa alguns dB de ganho e ainda assim supera — e o número veio
da transformada, não da esperança.
Erros comuns. Medir apenas o cenário ideal. Metas silenciosas — linhas de especificação presentes no código, mas ausentes no relatório. Ajustar o detector ao tom de teste (overfitting é mentir com passos extras). E pular verificações por etapa: a integração oculta o que a verificação mostraria.
a ajuste do detector ao tom de teste (overfitting é mentir com passos extras). E pular verificações por etapa: a integração oculta o que a verificação mostraria.
a ajuste do detector ao tom de teste (overfitting é mentir com passos extras). E pular verificações por etapa: a integração oculta o que a verificação mostraria.
a ajuste do detector ao tom de teste (overfitting é mentir com passos extras). E pular verificações por etapa: a integração oculta o que a verificação mostraria.
Resumo. Especifique primeiro, verifique apenas as etapas, confie na medição
margens; o ganho de processamento $10\log_{10}(N/2)$ define a viabilidade.