Tuesday 11 July 2017

Moving Average System Digital Signal Processing


O cientista e engenheiros guia para processamento de sinal digital Por Steven W. Smith, Ph. D. Como o nome indica, o filtro de média móvel opera fazendo a média de um número de pontos a partir do sinal de entrada para produzir cada ponto no sinal de saída. Na forma de equação, isto é escrito: Onde está o sinal de entrada, é o sinal de saída, e M é o número de pontos na média. Por exemplo, num filtro de média móvel de 5 pontos, o ponto 80 no sinal de saída é dado por: Como alternativa, o grupo de pontos do sinal de entrada pode ser escolhido simetricamente em torno do ponto de saída: Isto corresponde à alteração da soma em Eq . 15-1 de: j 0 a M -1, para: j - (M -1) / 2 a (M -1) / 2. Por exemplo, em um filtro de média móvel de 10 pontos, o índice, j. Pode variar de 0 a 11 (média de um lado) ou -5 a 5 (média simétrica). A média simétrica requer que M seja um número ímpar. A programação é ligeiramente mais fácil com os pontos de apenas um lado no entanto, isso produz uma mudança relativa entre os sinais de entrada e saída. Você deve reconhecer que o filtro de média móvel é uma convolução usando um kernel de filtro muito simples. Por exemplo, um filtro de 5 pontos tem o kernel do filtro: 82300, 0, 1/5, 1/5, 1/5, 1/5, 1/5, 0, 08230. Ou seja, o filtro de média móvel é uma convolução Do sinal de entrada com um impulso retangular com uma área de um. A Tabela 15-1 mostra um programa para implementar o filtro de média móvel. Documentação Este exemplo mostra como usar filtros de média móvel e reamostragem para isolar o efeito de componentes periódicos da hora do dia em leituras de temperatura por hora, bem como remover ruídos de linha indesejados A partir de uma medição de tensão em malha aberta. O exemplo também mostra como suavizar os níveis de um sinal de relógio enquanto preserva as bordas usando um filtro mediano. O exemplo também mostra como usar um filtro Hampel para remover outliers grandes. Suavização de Motivação é como descobrimos padrões importantes em nossos dados enquanto deixamos de lado coisas que não são importantes (ou seja, ruído). Utilizamos a filtragem para executar esta suavização. O objetivo do alisamento é produzir mudanças lentas no valor de modo que seu mais fácil ver tendências em nossos dados. Às vezes, quando você examinar os dados de entrada, você pode desejar suavizar os dados para ver uma tendência no sinal. No nosso exemplo, temos um conjunto de leituras de temperatura em Celsius tomadas a cada hora no Aeroporto Logan para todo o mês de janeiro de 2011. Note que podemos ver visualmente o efeito que a hora do dia tem sobre as leituras de temperatura. Se você está interessado somente na variação diária da temperatura durante o mês, as flutuações de hora em hora só contribuem o ruído, que pode fazer as variações diárias difíceis de discernir. Para remover o efeito da hora do dia, gostaríamos agora de suavizar nossos dados usando um filtro de média móvel. Um filtro de média móvel Na sua forma mais simples, um filtro de média móvel de comprimento N toma a média de cada N amostras consecutivas da forma de onda. Para aplicar um filtro de média móvel a cada ponto de dados, construímos nossos coeficientes de nosso filtro de modo que cada ponto seja igualmente ponderado e contribua 1/24 para a média total. Isso nos dá a temperatura média ao longo de cada período de 24 horas. Filter Delay Note que a saída filtrada está atrasada em cerca de doze horas. Isto é devido ao fato de que nosso filtro de média móvel tem um atraso. Qualquer filtro simétrico de comprimento N terá um atraso de (N-1) / 2 amostras. Podemos contabilizar esse atraso manualmente. Extraindo Diferenças Médicas Alternativamente, também podemos usar o filtro de média móvel para obter uma melhor estimativa de como a hora do dia afeta a temperatura global. Para fazer isso, primeiro, subtraia os dados suavizados das medições de temperatura por hora. Em seguida, segmente os dados diferenciados em dias e tome a média em todos os 31 dias do mês. Extraindo Peak Envelope Às vezes, também gostaríamos de ter uma estimativa suavemente variável de como os altos e baixos de nosso sinal de temperatura mudam diariamente. Para fazer isso, podemos usar a função envelope para conectar altos e baixos extremos detectados em um subconjunto do período de 24 horas. Neste exemplo, garantimos que haja pelo menos 16 horas entre cada extrema alta e extrema baixa. Podemos também ter uma idéia de como os altos e baixos tendem tomando a média entre os dois extremos. Filtros de média móvel ponderada Outros tipos de filtros de média móvel não pesam igualmente cada amostra. Outro filtro comum segue a expansão binomial de (1 / 2,1 / 2) n Este tipo de filtro aproxima-se de uma curva normal para grandes valores de n. É útil para a filtragem de ruído de alta freqüência para pequenas n. Para encontrar os coeficientes para o filtro binomial, convolve 1/2 1/2 com si mesmo e, em seguida, convida iterativamente a saída com 1/2 1/2 um número prescrito de vezes. Neste exemplo, use cinco iterações totais. Outro filtro um pouco semelhante ao filtro de expansão gaussiano é o filtro de média móvel exponencial. Este tipo de filtro de média móvel ponderada é fácil de construir e não requer um tamanho de janela grande. Você ajusta um filtro de média móvel ponderado exponencialmente por um parâmetro alfa entre zero e um. Um valor maior de alfa terá menos suavização. Amplie as leituras durante um dia. Select Your CountrySignal Processing O Processamento de Sinal é a arte ea ciência de modificar os dados de séries temporais adquiridos para fins de análise ou aprimoramento. Exemplos incluem análise espectral (usando o Fast Fourier ou outras transformações) e aprimorando dados adquiridos usando a filtragem digital. Igor é ideal para processamento de sinal por causa de seu forte suporte para dados de séries temporais longas (ou quotwaveformquot). E porque os seus comandos de processamento de sinal incorporados podem ser facilmente utilizados através de diálogos simples. Além disso, a linguagem de programação Igoracutes facilita a implementação de qualquer tipo de algoritmo de processamento de sinal personalizado, muito auxiliado pelo poder de Igoracutes Fourier (e outras) Transformações. Igor usa o algoritmo Fast Fourier Transform (FFT) para calcular uma Transformação Fourier Discreta (DFT). A FFT pode ser usada para caracterizar simplesmente a magnitude e fase de um sinal, ou pode ser usada em combinação com outras operações para executar cálculos mais envolvidos, tais como convolução ou correlação. A computação FFT presume que os dados de entrada se repetem uma e outra vez. Isto é importante quando os valores inicial e final de seus dados não são os mesmos: a descontinuidade causa aberrações no espectro computado pela FFT. QuotWindowingquot suaviza as extremidades dos dados para eliminar essas aberrações. A resposta está na forma de uma distribuição de valores de potência em função da freqüência, onde quotpowerquot é considerado como sendo a média dos sinaisup2. No domínio da frequência, este é o quadrado da magnitude de FFTacutes. Os espectros de potência podem ser calculados para todo o sinal de uma vez (um quotperiodograma) ou periodogramas de segmentos do sinal de tempo podem ser calculados em média em conjunto para formar a densidade espectral de potência quot. A Transformada de Hilbert calcula um sinal no domínio do tempo que está desfasado em 90 graus com o sinal de entrada. As aplica�es unidimensionais incluem computar o envelope de um sinal modulado e a medi�o da taxa de decaimento de uma sinus�de exponencialmente em decomposi�o frequentemente encontrada em sistemas lineares e n� lineares subdurados. Quando você calcula o espectro de Fourier (ou Spectra de Potência) de um sinal você descarta toda a informação de fase contida na Transformada de Fourier. Você pode descobrir quais freqüências um sinal contém, mas você não sabe quando essas freqüências aparecem no sinal. Por exemplo, considere o sinal: A representação espectral de f (t) permanece essencialmente inalterada se intercambiarmos as duas frequências f 1 e f 2. Claramente o espectro de Fourier não é a melhor ferramenta de análise para sinais cujos espectros flutuam no tempo. Uma solução para este problema é a chamada Transformada de Fourier de Curto Prazo (ou "Fonograma") na qual você pode calcular o espectro de Fourier usando uma janela temporal deslizante. Ajustando a largura da janela, você pode determinar a resolução temporal dos espectros resultantes. Você pode usar a convolução para calcular a resposta de um sistema linear a um sinal de entrada. O sistema linear é definido por sua resposta ao impulso. A convolução do sinal de entrada ea resposta ao impulso é a resposta do sinal de saída. A filtragem digital é realizada definindo um sistema linear que estimula a resposta ao impulso que quando convolvido com o sinal obtém o resultado desejado (filtro passa-baixa ou passa-alto). O algoritmo de correlação é muito semelhante matematicamente à convolução, mas é usado para propósitos diferentes. É mais freqüentemente usado para identificar o atraso de tempo no qual dois sinais se aproximam ou são semelhantes. Suavização remove variações de curto prazo, ou quotnoisequot para revelar a forma subjacente importante dos dados. A forma mais simples de suavização é a média quotmoving que simplesmente substitui cada valor de dados pela média de valores vizinhos. (Outros termos para este tipo de suavização são quotsliding averagequot, quotbox smoothingquot, ou quotboxcar smoothingquot.) Igoracutes Smooth operação executa caixa suavização, quotbinomialquot (Gaussian) alisamento, e Savitzky-Golay (polinomial) suavização. Os diferentes algoritmos de suavização calculam médias ponderadas que multiplicam os valores vizinhos por diferentes pesos ou quotcoeficientes para calcular o valor suavizado. Os filtros digitais são uma ferramenta natural quando os dados já estão digitalizados. As razões para aplicar a filtragem digital aos dados incluem: Eliminação de componentes de sinal indesejados (quotnoisequot) Melhoria dos componentes de sinal desejados Detecção da presença de certos sinais Simulação de sistemas lineares (computa o sinal de saída dado o sinal de entrada eo sistema acutes função de transferência) Filtros digitais geralmente Vêm em dois sabores: Resposta de Impulso Finito (FIR) e Filtros de Resposta de Impulso Infinito (IIR). Igor implementa a filtragem digital FIR principalmente através da convolução do domínio do tempo usando os comandos Smooth ou SmoothCustom. (Apesar do nome itacutes, SmoothCustom convolve os dados com coeficientes de filtro fornecidos pelo usuário para implementar qualquer tipo de filtro FIR, low-pass, high-pass, band-pass, etc.) O design dos coeficientes de filtro FIR usados ​​com SmoothCustom é mais Facilmente realizado usando o Igor Filter Design Laboratory (um produto separado que também requer Igor Pro). Os filtros digitais IIR são projetados e aplicados a dados usando IFDL. Detecção de nível é o processo de localizar a coordenada X na qual seus dados passam ou atingem um determinado valor de Y. Isso às vezes é chamado de interpolação quotinverse. Dito de outra forma, a detecção de nível responde à pergunta: quotgiven um nível Y, qual é o valor X correspondente Igor fornece dois tipos de respostas a essa pergunta. Uma resposta assume que seus dados Y são uma lista de valores Y exclusivos que aumentam ou diminuem monotonicamente. A outra resposta pressupõe que seus dados de Y variam irregularmente, como faria com dados adquiridos. Neste caso, pode haver vários valores de X que cruzam o nível Y. Exemplos importantes disso são as estatísticas de ponta e pulso. Uma questão relacionada, mas diferente, é dada por uma função y f (x), encontre x onde y é zero (ou algum outro valor) quot. Esta pergunta é respondida pela operação FindRoots. Moving Average Filter (filtro MA) Loading. O filtro de média móvel é um simples filtro Low Pass FIR (Finite Impulse Response) comumente usado para suavizar uma matriz de dados / sinal amostrados. Ele toma M amostras de entrada de cada vez e pegue a média dessas M-amostras e produz um único ponto de saída. É uma estrutura de LPF (Low Pass Filter) muito simples que é útil para cientistas e engenheiros para filtrar o componente ruidoso indesejado dos dados pretendidos. À medida que o comprimento do filtro aumenta (o parâmetro M) a suavidade da saída aumenta, enquanto que as transições nítidas nos dados são feitas cada vez mais sem corte. Isto implica que este filtro tem excelente resposta no domínio do tempo mas uma resposta de frequência pobre. O filtro MA executa três funções importantes: 1) Toma M pontos de entrada, calcula a média desses pontos M e produz um único ponto de saída 2) Devido à computação / cálculos envolvidos. O filtro introduz uma quantidade definida de atraso 3) O filtro age como um Filtro de Passagem Baixa (com fraca resposta de domínio de freqüência e uma boa resposta de domínio de tempo). Código Matlab: O código matlab seguinte simula a resposta no domínio do tempo de um filtro M-point Moving Average e também traça a resposta de freqüência para vários comprimentos de filtro. Time Domain Response: No primeiro gráfico, temos a entrada que está entrando no filtro de média móvel. A entrada é barulhenta e nosso objetivo é reduzir o ruído. A figura a seguir é a resposta de saída de um filtro de média móvel de 3 pontos. Pode-se deduzir da figura que o filtro de média móvel de 3 pontos não fez muito na filtragem do ruído. Aumentamos os toques do filtro para 51 pontos e podemos ver que o ruído na saída reduziu muito, o que é mostrado na próxima figura. Nós aumentamos as derivações para 101 e 501 e podemos observar que mesmo que o ruído seja quase zero, as transições são drasticamente ditas (observe a inclinação em ambos os lados do sinal e compare-as com a transição ideal da parede de tijolo em Nossa entrada). Resposta de Freqüência: A partir da resposta de freqüência pode-se afirmar que o roll-off é muito lento ea atenuação de banda de parada não é boa. Dada esta atenuação de banda de parada, claramente, o filtro de média móvel não pode separar uma banda de freqüências de outra. Como sabemos que um bom desempenho no domínio do tempo resulta em mau desempenho no domínio da freqüência, e vice-versa. Em suma, a média móvel é um filtro de suavização excepcionalmente bom (a ação no domínio do tempo), mas um filtro de passa-baixa excepcionalmente ruim (a ação no domínio da freqüência) Links externos: Livros recomendados: Porta, 21 de Fevereiro de 2007 I. Representação Digital de uma Forma de Onda Um sistema de processamento de sinal digital toma uma onda sonora contínua como entrada, alimenta-a através de um filtro passa-baixo analógico (filtro anti-aliassing) para remover todas as frequências acima da metade da amostragem (Veja o teorema de amostragem de Nyquists). Este Conversor Analógico-Digital (ADC) filtra e amostras a amplitude da onda em intervalos de tempo igualmente espaçados e gera uma lista simples de valores de amostra ordenados em locais de memória sucessivos no computador. Os valores de amostra, representando amplitudes, são codificados usando algum número de bits que determina quão precisamente as amostras são medidas. O Processador é um computador que aplica operações numéricas às ondas amostradas. Na figura abaixo, parece que o processador tem passagem baixa filtrada o sinal, removendo assim as irregularidades jumpy na onda de entrada. Quando o sinal é convertido de volta em um sinal de áudio pelo Digital-Analog Converter (DAC), haverá irregulares irregularidades (mostrado abaixo nesta página) que são erros de quanization. Naturalmente, estes estarão acima da freqüência de Nyquist, então o novo sinal analógico (de volta em tempo real) precisa de outro filtro analógico de passagem baixa na saída, pois tudo acima da freqüência de Nyquist é um artefato barulhento. A. Teorema de amostragem. Nyquist freq (taxa de amostragem) / 2 Aliassing problema (freqüências acima Nyquist freqüência obter mapeado para baixas freqüências). A onda mais à esquerda abaixo tem 8 amostras por ciclo (ou seja, a freqüência é 1/8 da taxa de amostragem (srate).A curva do meio é a maior freqüência que pode ser representada por esta taxa de amostragem. A figura mais à direita é muito rápido, De modo que a onda amostrada soará como a curva pontilhada lenta (que é idêntica à curva mais à esquerda) Solução: aplique o filtro de entrada antes da amostragem para remover todas as entradas indesejadas Qualquer energia restante acima da freqüência de Nyquist será mapeada para Freqüências mais baixas. É claro, em equipamentos digitais modernos, esta filtragem é cuidada para você. para CD padrão, taxa de amostragem 44,1 kHz, de modo a freq Nyquist 22,05 kHz. De B. Quantização de amplitude (conjunto limitado de valores de amplitude). Quando o sinal amostrado é convertido de volta em tempo real, é claro, há apenas valores atribuídos especificados nos pontos de amostragem. O sinal de saída será apenas plana até que a próxima amostra vem junto. Estes pontos planos serão percebidos por um ouvinte como um alto - sinal de freqüência (acima da freqüência de Nyquist), mas será ruído. Assim, a curva vermelha abaixo deve ser suavizada (lowpass filtrada) na curva verde abaixo para soar direito. Naturalmente, se a taxa de amostragem for a do padrão CD comercial, então esse ruído estará acima dos limites da audição humana - para que sua própria orelha possa servir como filtro de quantização lowpass. De fato, uma vez que os alto-falantes normalmente não produzem sons acima de 20 kHzm, eles também podem servir como este filtro de saída passa-baixo. Ruído de quantização - a diferença entre o sinal original eo sinal quantizado. A diferença entre a curva de sinal verde ea curva de saída vermelha é copiada abaixo em azul. Os filtros de saída são necessários (para suavizar o ruído de quantização). Para o padrão de áudio CD comercial (estabelecido em 1980), a quantização é de 16 bits 216 65.536 valores de amplitude Assim, 1 segundo de áudio em qualidade de CD requer 16 bits X 44.1k 705.600 bits. Evidentemente, para a pesquisa da fala, normalmente é necessário apenas cerca de 5 kHz de largura de banda (para uma taxa de amostragem de 10kHz) - cerca de metade do padrão CD. II. Filtragem digital - métodos numéricos para a filtragem de sinais amostrados. Os valores de amostra em cada ponto no tempo são identificados com os inteiros, n. As amplitudes amostradas são identificadas aqui como X n e a n s serão os coeficientes para modificar cada amplitude. A. Filtro digital de passagem baixa primitiva - Por exemplo, uma média de execução de 2 (ou mais) amostras adjacentes. Assim, tomar a amostra X n ea amostra X n1. Adicionar suas amplitudes e dividir por 2. Isso é equivalente a tomar metade da amplitude da amostra X n e adicionar metade de X n1. (O termo matemático para um cálculo semelhante a uma média de corrida é convolução: aplique a operação, mova-se sobre um passo de tempo, aplique-o novamente Repita até ficar sem amostras.) O número de coeficientes utilizados é a ordem do filtro, De modo que a média de execução de 2 amostras adjacentes tem ordem 2. mais geralmente, para um filtro de suavização primitiva (ou passagem baixa), (1) X0 é um valor de amostra de entrada, X1 é o valor de amostra anterior e Y0 é Um valor de amostra de saída (interprete os dígitos e m como índices de subíndice) (2) os coeficientes de filtro são multiplicados vezes as amplitudes da amostra, X. E os coeficientes, em geral, somam 1 (embora às vezes os coeficientes podem ser negativos, é claro que se somam algo maior que 1, então o filtro é também um amplificador) e (3) m (número de coeficientes) é chamado A ordem do filtro. Aqui está um sinal digital processado por um filtro de média móvel de 5ª ordem. É média de 5 amostras adjacentes, multiplicando cada um por 0,2, em seguida, somando. Você pode ver como o sinal é suavizado na tela inferior. Os componentes de maior freqüência da função foram removidos. A equação para este filtro é: Y 0 .2X -2 .2X -1 .2X 0 .2X 1 .2X 2 É ilustrado abaixo como as 5 linhas vermelhas no painel do meio. Resposta de impulso . Resposta do filtro a uma única amostra de 1 embutida entre amostras adjacentes de 0 - aproximadamente equivalente a tocar uma campainha ou fazer ping ao ressonador. Abaixo do impulso vermelho de 1 faz com que o filtro responda com uma oscilação de desvanecimento. B. Filtro primitivo de filtro de primeira diferença de filtro de passagem alta - Subtraia amostras adjacentes para alisar uma tendência de baixa freqüência nos dados amostrados. Mudanças rápidas entre amostras adjacentes são preservadas, mas o valor que ambas as amostras compartilham é descartado. Assim, uma sequência de entrada como 2,6,3,7,4,8,5,9 sai do filtro como 4, -3,4, -3,4, -3,4. Para vários filtros, os coeficientes podem ser positivos ou negativos. Observe que importa muito pouco se usarmos X -1 e X 0 ou X 1 e X 0 - ele simplesmente desloca os pontos de dados um ponto de amostra para a esquerda ou para a direita. C. Propriedades gerais Um filtro digital pode ser feito para exibir qualquer forma espectral desejada. E existem métodos matemáticos para encontrar a forma correta da equação. Geralmente, para fazer um filtro com mais picos (ou pólos como são chamados às vezes) ou para cortes mais nítidos e ondulações menores, são necessários mais coeficientes. III. Fast Fourier Transform, um método para fazer a análise geral de Fourier em sinais amostrados eficientemente. Uma amostra especifica o número de pontos de amostra empregados (o que implica a janela de tempo para o espectro) como uma potência de 2. Amostragem, por exemplo, a 16k Hz significa 1 ms 80 amostras, então uma FFT de 256 pontos olha para 3,2 ms e um ponto de 512 FFT olha para 6,4 ms. No padrão CD, 512 pontos de amostragem são cerca de 1 ms. IV. Codificação Preditiva Linear (LPC). Um método de codificação de voz que constrói um filtro digital que modelará um segmento curto (chamado de quadro) de uma forma de onda de fala usando muitos menos bits do que a própria forma de onda explilcit requer. Os coeficientes e outros parâmetros são então usados ​​para resynthesize o discurso original. O LPC determina primeiro as porções da trama de voz (muitas vezes cerca de 20 ms de comprimento) que são expressas a partir do sem voz. Para as porções sonoras, ele identifica o F0 (pitch). Ele também mede a amplitude da moldura. O algoritmo LPC calcula um conjunto de coeficientes de filtro (onde a ordem LPC é o número de coeficientes calculados - geralmente entre 6 e 20) que irá reconstruir um modelo do sinal de entrada. Este conjunto de coeficientes pode então ser usado para reconstruir aproximadamente (isto é, sintetizar) muitos pontos de amostra a partir de um pequeno número de coeficientes mais a indicação de excitar o filtro com impulsos de ruído ou de passo e a localização dos impulsos de tom no tempo (por exemplo, O F0). Assim, uma moldura contendo 2 períodos de tonalidade (cerca de 20 ms), durante o qual a forma do tracto vocal não muda muito, conteria (se amostrada a 10 kHz) 200 amostras. Um conjunto de apenas 12-16 coeficientes LPC mais 2 impulsos (um para cada período de tonalidade) pode gerar toda a estrutura de 200 amostras bem o suficiente para produzir uma fala bastante natural. A regra do polegar 1 é: 2 coeficientes são necessários para cada pico espectral que se deseja modelar, incluindo um pico na freqüência 0 para modelar a inclinação descendente global do espectro. Assim, 12 coeficientes irão modelar cerca de 5 formantes na moldura mais a inclinação espectral. A regra do polegar 2 é: à medida que os quadros ficam mais longos (para economizar em bits), a sensibilidade (da representação LPC) para mudar no sinal fica mais fraca. Mas à medida que os quadros ficam mais curtos, você usará mais coeficientes por segundo, então a economia de codificação será reduzida. Observe que o algoritmo LPC calcula o espectro sem diferenciar o espectro de origem do espectro do filtro. Os coeficientes LPC modelam o produto de ambos. Isso ocorre porque o LPC usa apenas um pulso unitário (uma única amostra com o valor de 1) para simular um pulso glotal (que parece muito diferente de um pulso). Alguns usos do LPC no laboratório de fonética incluem (1) uma vez que os pulsos de tom são extraídos do sinal antes da codificação LPC, é uma ferramenta de laboratório útil para manipular F0 artificialmente. Basta substituir o arquivo de pulsos por um arquivo diferente. (2) O espectro LPC oferece uma descrição do espectro de fala que é mais fácil de interpretar do que a FFT. Na verdade, os programas que extraem os formantes da fala usualmente fazem LPC primeiro e calculam o espectro LPC, então procuram os picos que são formantes. (Wavesurfer faz isso desta forma.)

No comments:

Post a Comment