Em uma edição anterior, apresentamos uma função de filtragem que usa várias frequências de Fourier (doravante denominadas componentes) (k) com a maior amplitude. A próxima pergunta seria: qual é o número mínimo de componentes que podemos usar para capturar a essência vital (também conhecida como informação) do sinal original?
Para responder a essa pergunta, apresentamos uma nova medida, usada no processamento de sinais e na teoria da informação, chamada de relação sinal-ruído (SNR). A relação sinal/ruído compara o nível do sinal desejado com o nível do ruído de fundo.
Nesta edição, começaremos com a representação trigonométrica da transformada de Fourier, calcularemos a potência média contribuída por cada frequência/componente de Fourier (também conhecida como densidade de potência) e estimaremos a relação sinal-ruído para uma função de filtro genérica. Em seguida, consideraremos um filtro passa-baixas (LPF) - um filtro que passa sinais com uma frequência menor do que uma frequência de corte selecionada - e examinaremos a alteração na SNR à medida que a frequência de corte aumenta, e derivaremos uma fórmula aproximada para calcular sua SNR. Por fim, discutiremos os valores de SNR comumente usados para aplicação prática e como podemos usá-los para definir a frequência de corte do filtro.
Por que devo me importar?
Em comparação com nossos previous article sobre a Transformada de Fourier, este artigo examina o tópico de uma perspectiva diferente. Esperamos que você tire proveito ou atualize suas intuições e reforce esses conceitos importantes.
Histórico
A relação sinal/ruído é definida da seguinte forma:
$$\boldsymbol{}\textrm{SNR} = \frac{P_{signal}}{P_{noise}}$$
$${\rm{SN}}{{\rm{R}}_{{\rm{dB}}}} = 10 \times {\log _{10}}\left( {\frac{{{P_{signal}}}}{{{P_{noise}}}}} \right) = 10 \times {\log _{10}}\left( {{\rm{SNR}}} \right)$$
Onde:
- ${P_{signal}}$ = A potência média do sinal desejado.
- ${P_{noise}}$ = A potência média no ruído de fundo.
- ${\rm{SN}}{{\rm{R}}_{{\rm{dB}}}}$ = A relação sinal/ruído, medida em decibéis.
O ruído de fundo (N) é, por definição, estocástico (indeterminista), com média zero, de modo que a SNR é expressa da seguinte forma:
$$SNR = \frac{{{P_{signal}}}}{{E[{N^2}]}}$$
Onde:
- E[.] = o operador de valor esperado
Observe que a definição da potência média do ruído de fundo é idêntica à sua variância para um sinal de entrada não determinístico (aleatório) (Q), podemos expressar a potência média como $E[{Q^2}]$.
$$SNR = \frac{{E[{Q^2}]}}{{E[{N^2}]}} = \frac{{s_Q^2 + {{\bar Q}^2}}}{{s_N^2}}$$
Como o sinal de entrada pode não ter média zero, temos ${\bar Q^2}$ no numerador. Observe que a relação sinal-ruído é uma razão entre as variâncias da entrada e do ruído.
Transformada discreta de Fourier
Dada uma amostra finita de dados ${ {x_t}}$ de tamanho N, podemos expressar o valor no tempo (você quer dizer no tempo t?) em termos da transformada discreta de Fourier correspondente $\{ {A_i}\angle {\phi _i}\} _{i = 0}^{N - 1}$ da seguinte forma:
$$x(t) = \frac{1}{N}\left( {{A_o} + \sum\limits_{j = 1}^{N - 1} {{A_1}\cos (j \times \omega \times t + {\phi _j})} } \right)$$
$$\omega = \frac{{2\pi \times {f_s}}}{N}$$
Onde:
- N = O número de observações (também conhecido como pontos de dados) no conjunto de dados de amostra.
- {${A_o},{A_1},...,{A_{N - 1}}$} = as amplitudes dos componentes DFT.
- $\{ {\phi _1},{\phi _2},..,{\phi _{N - 1}}\}$ = os ângulos de fase dos componentes DFT (medidos em radianos).
- ${f_s}$ = Taxa ou frequência de amostragem.
- $\omega$ = a frequência radiante fundamental ou principal da DFT.
Observe que a DFT é simétrica em torno do componente N/2 (ou N/2+1, se N for um número par) e se repete a cada N componentes (ou seja, é cíclica, conforme ilustrado abaixo).
Para os nossos fins aqui, e para evitar distinguir entre dados de amostra ímpares e pares, usamos o espectro completo $\{ 0,1,2,.., N - 1\}$ na nossa derivação abaixo.
Por que usamos o DFT aqui?
As funções cosseno na expressão acima são ortogonais (não correlacionadas) entre si, portanto, o cálculo da média e da variância do sinal expresso como a soma ponderada dessas funções cosseno é bastante simplificado.
Vamos calcular a média do sinal:
$$\begin{aligned} E[x(t)] &= E\left[ {\frac{1}{N}\left( {{A_o} + \sum\limits_{j = 1}^{N - 1} {{A_1}\cos (j \times \omega \times t + {\phi _j})} } \right)} \right] \\ &= \frac{1}{N} \times \left( {{A_o} + \sum\limits_{j = 1}^{N - 1} {{A_1}E[\cos (j \times \omega \times t + {\phi _j})]} } \right) \\ &= \bar X = \frac{{{A_o}}}{N}\end{aligned} $$
Agora, vamos subtrair a média dos valores dos pontos de dados:
$$x(t) - \bar X = \frac{1}{N}\sum\limits_{j = 1}^{N - 1} {{A_1}\cos (j \times \omega \times t + {\phi _j})} $$
A variação do sinal de entrada (${s^2}$) é definida da seguinte forma:
$$\begin{aligned} {{\rm{s}}^2} &= E[{(x(t) - \bar x)^2} \\ & = \frac{1}{{{N^2}}}E\left[ {{{\left( {\sum\limits_{j = 1}^{N - 1} {{A_j}\cos (j \times \omega \times t + {\phi _j})} } \right)}^2}} \right] \end{aligned}$$
Vamos expandir essa expressão:
$$\begin{aligned}
\rm{s}^2 = & \frac{1}{{{N^2}}} \times \left( {\sum\limits_{j = 1}^{N - 1} {A_j^2E\left[ {{{\cos }^2}(j \times \omega \times t + {\phi _j})} \right]} } \right) +\\
& \frac{2}{{{N^2}}} \times \left( {\sum\limits_{j = 1}^{N - 2} {\sum\limits_{h = j + 1}^{N - 1} {{A_j}{A_h} E\left[ {\cos (j \times \omega \times t + {\phi _j})\times \cos (h \times \omega \times t + {\phi _h})} \right]} } } \right)
\end{aligned}$$
E, o $s^2$ pode ser expresso da seguinte forma:
$${s^2} = \frac{1}{{{N^2}}} \times \left( {\sum\limits_{j = 1}^{N - 1} {A_j^2E[{{\cos }^2}(j \times \omega \times t + {\phi _j})]} } \right) = \frac{1}{{{N^2}}}\sum\limits_{j = 1}^{N - 1} {\frac{{A_j^2}}{2}}$$
Em suma, a variação do sinal de entrada pode ser expressa da seguinte forma:
$${s^2} = \frac{1}{{2{N^2}}} \times \sum\limits_{j = 1}^{N - 1} {A_j^2}$$
Portanto, cada componente DFT contribui com $\frac{{{A^2}}}{{2{N^2}}}$ para a variância (ou potência) do sinal.
Função de filtro
Para qualquer função de filtro, temos dois sinais: Entrada $\{ {I_t}\}$ e o sinal de saída filtrado (${O_t}$).
O ruído de fundo é simplesmente a diferença entre os dois sinais:
$$\{ {N_t}\} = \{ {O_t} - {I_t}\}$$
A Transformada Discreta de Fourier (DFT) para sinais de entrada e saída filtrados são: $ {A_i}\angle {\phi _i}\} _{i = 0}^{N - 1}$ e $\{ {B_i}\angle {\theta _i}\} _{i = 0}^{N - 1}$, respectivamente, e a DFT do sinal de ruído (${C_i}\angle {\gamma _i}\} _{i = 0}^{N - 1}$) também é a diferença entre a DFT dos dois sinais.
$${C_i}\angle {\gamma _i} = {A_i}\angle {\phi _i} - {B_i}\angle {\theta _i}$$
Observe que o cálculo de ${C_i}\angle \gamma$ envolve números complexos, o que requer que as partes reais e imaginárias sejam subtraídas.
Vamos examinar uma função de filtro simples, em que não afeta o ângulo de fase do componente de frequência, apenas a amplitude, então ${\gamma _i} = {\phi _i} = {\theta _i}$ e ${C_i} = ({A_i} - {B_i})\angle {\phi _i}$
$$\begin{aligned} SNR =& \frac{{s_O^2 + {{\bar O}^2}}}{{s_N^2}} = \frac{{\frac{{B_o^2}}{{{N^2}}} + \frac{1}{{2{N^2}}} \times \sum\limits_{j = 1}^{N - 1} {B_j^2} }}{{\frac{1}{{2{N^2}}} \times \sum\limits_{j = 1}^{N - 1} {C_j^2} }} \\ =& \frac{{2B_o^2 + \sum\limits_{j = 1}^{N - 1} {B_j^2} }}{{\sum\limits_{j = 1}^{N - 1} {({A_j} - {B_j}} {)^2}}} \\ =& \frac{{2B_o^2 + \sum\limits_{j = 1}^{N - 1} {B_j^2} }}{{\sum\limits_{j = 1}^{N - 1} {A_j^2} + \sum\limits_{j = 1}^{N - 1} {B_j^2} - 2\sum\limits_{j = 1}^{N - 1} {{A_j}{B_j}} }}\end{aligned}$$
Pronto! Podemos calcular a SNR usando apenas as amplitudes da DFT do sinal de entrada e saída.
De agora em diante, vamos considerar uma amostra de tamanho ímpar (N). Usando a propriedade de simetria da DFT, podemos usar apenas a primeira metade do espectro, e a SNR pode ser expressa da seguinte forma:
$$\begin{aligned} SNR =& \frac{{2B_o^2 + 2\sum\limits_{j = 1}^{N/2} {B_j^2} }}{{2\sum\limits_{j = 1}^{N/2} {A_j^2} + 2\sum\limits_{j = 1}^{N/2} {B_j^2} - 4\sum\limits_{j = 1}^{N/2} {{A_j}{B_j}} }} \\ =& \frac{{B_o^2 + \sum\limits_{j = 1}^{N/2} {B_j^2} }}{{\sum\limits_{j = 1}^{N/2} {A_j^2} + \sum\limits_{j = 1}^{N/2} {B_j^2} - 2\sum\limits_{j = 1}^{N/2} {{A_j}{B_j}} }}\end{aligned}$$
Filtro passa-baixa
Para uma função de filtro passa-baixa (LPF), à medida que a frequência de corte aumenta, a taxa SNR também aumenta, pois permite a passagem de mais componentes de frequência.
Para LPF(K), a DFT de saída é expressa da seguinte forma:
$${B_j} = \left\{ {\begin{array}{*{20}{c}}
{\begin{array}{*{20}{c}}
{{A_j}}&{j < K}
\end{array}}\\
{\begin{array}{*{20}{c}}
0&{j \ge K}
\end{array}}
\end{array}} \right.$$
A SNR é simplificada ainda mais:
$$SNR(K) = \frac{{A_o^2 + \sum\limits_{j = 1}^{K - 1} {A_j^2} }}{{\sum\limits_{j = K}^{N/2} {A_j^2} }}$$
Vamos examinar a alteração marginal quando mais um componente de frequência (digamos, o componente K) puder passar pelo filtro:
$$\begin{aligned}{\rm{SNR}}(K + 1) &= \frac{{A_o^2 + \sum\limits_{j = 1}^{K - 1} {A_j^2} + A_K^2}}{{\sum\limits_{j = K}^{N/2} {A_j^2} - A_K^2}} \\ &= \frac{{\left( {A_o^2 + \sum\limits_{j = 1}^{K - 1} {A_j^2} } \right) \times \left( {1 + \frac{{A_K^2}}{{A_o^2 + \sum\limits_{j = 1}^{K - 1} {A_j^2} }}} \right)}}{{\sum\limits_{j = K}^{N/2} {A_j^2 \times \left( {1 - \frac{{A_K^2}}{{\sum\limits_{j = K}^{N/2} {A_j^2} }}} \right)} }}\\ &= SNR(K) \times \frac{{\left( {1 + \frac{{A_K^2}}{{A_o^2 + \sum\limits_{j = 1}^{K - 1} {A_j^2} }}} \right)}}{{\left( {1 - \frac{{A_K^2}}{{\sum\limits_{j = K}^{N/2} {A_j^2} }}} \right)}}\end{aligned}$$
À medida que aumentamos o valor da frequência de corte do filtro (ou seja, K), o numerador se aproxima rapidamente de 1,0; assim, podemos aproximar a fórmula da SNR da seguinte forma:
$${\rm{SNR(K + 1)}} \approx \frac{{{\rm{SNR(K)}}}}{{1 - A_K^2/\sum\limits_{j = K}^{N/2} {A_j^2} }}$$
$$\frac{{{\rm{SNR(K + 1)}}}}{{{\rm{SNR(K)}}}} \approx 1 + \frac{{A_K^2}}{{\sum\limits_{j = K + 1}^{N/2} {A_j^2} }}$$
Usando a fórmula, podemos calcular o SNR:
$$SNR(1) = \frac{{A_o^2}}{{\sum\limits_{j = 1}^{N/2} {A_j^2} }}$$
$$SNR(2) = SNR(1) \times \left( {1 + \frac{{A_1^2}}{{\sum\limits_{j = 2}^{N/2} {A_j^2} }}} \right)$$
$$SNR(3) = SNR(2) \times \left( {1 + \frac{{A_2^2}}{{\sum\limits_{j = 3}^{N/2} {A_j^2} }}} \right)$$
$$SNR(M) = SNR(M - 1) \times \left( {1 + \frac{{A_{M - 1}^2}}{{\sum\limits_{j = M}^{N/2} {A_j^2} }}} \right)$$
Frequência de corte do LPF
Antes de abordarmos a questão da frequência de corte do LPF, precisamos decidir um SNR alvo. Qual é um bom valor alvo para o SNR? Para começar, qualquer valor maior que um (ou ${\rm{dB}} > 0$) indica que há mais potência de sinal do que ruído de fundo.
Para obter melhores resultados, buscamos um valor SNR de 32 (ou seja, ${\rm{dB}} \ge 15$) ou mais.
Agora, podemos identificar uma frequência de corte mínima que produza um valor de SNR mais próximo de 32.
Conclusão
Neste artigo, usamos a função de filtro passa-baixa para demonstrar o cálculo da relação sinal-ruído entre o sinal de saída (filtrado) e o sinal de entrada. Presumimos que qualquer diferença entre os dois sinais é simplesmente ruído de fundo. Além disso, não afirmamos ter conhecimento do sinal original, mas, em vez disso, usamos o sinal filtrado de saída como um substituto.
Você pode aplicar os mesmos princípios usados neste artigo, mas a diferentes funções de filtro. As fórmulas podem ser ligeiramente diferentes, mas a lógica permanece a mesma.
Comentários
iniciar sessão para comentar.