Monday 15 July 2019

Matlab moving average signal processing


Usando o MATLAB, como posso encontrar a média móvel de 3 dias de uma coluna específica de uma matriz e anexar a média móvel àquela matriz? Estou tentando calcular a média móvel de 3 dias de baixo para cima da matriz que forneci meu Code. Given a seguinte matriz a e mask. I tentaram implementar o comando conv, mas estou recebendo um erro Aqui está o comando conv que eu tenho tentado usar na coluna 2 da matriz a. A saída que desejo é dada na Para a coluna 2 da matriz a, estou computando a média móvel de 3 dias da seguinte maneira e colocando o resultado na coluna 4 da matriz a uma matriz renomeada a como a A média de 3 dias de 17, 14, 11 é 14 a média de 3 dias de 14, 11, 8 é 11 a média de 3 dias de 11, 8, 5 é 8 ea média de 3 dias de 8, 5, 2 é 5 Não há valor nas 2 linhas inferiores para a 4ª coluna porque o cálculo para a média móvel de 3 dias começa em A parte inferior A saída válida não será mostrada até pelo menos 17, 14 e 11 Esperemos que isso faz sentido Aaron Jun 12 13 em 1 28. Em geral, seria útil se você mostrar o erro Neste caso, você está fazendo duas coisas erradas . Primeiro, sua convolução precisa ser dividida por três ou o comprimento da média móvel. Em segundo lugar, observe o tamanho de c Você não pode apenas caber c em um A maneira típica de obter uma média móvel seria usar same. but que doesn t Olhar como o que você want. Instead você é forçado a usar um par de lines. I necessidade de calcular uma média móvel em uma série de dados, dentro de um loop for Eu tenho que obter a média móvel em N 9 dias A matriz I m computação em É 4 séries de 365 valores M, que em si são valores médios de outro conjunto de dados que eu quero traçar os valores médios dos meus dados com a média móvel em um plot. I googled um pouco sobre as médias móveis eo comando conv e encontrou algo Que eu tentei implementar no meu código. Então, basicamente, eu computo o meu médio e plotá-lo com aw Rong média móvel Eu escolhi o valor de wts fora do site mathworks, de modo que é fonte incorreta Meu problema, porém, é que eu não entendo o que este wts é Alguém poderia explicar Se tem algo a ver com os pesos dos valores que é Inválido neste caso Todos os valores são ponderados o same. And se eu estou fazendo isso inteiramente errado, eu poderia obter alguma ajuda com it. My sinceres thanks. asked Sep 23 14 às 19 05.Using conv é uma excelente maneira de implementar uma mudança Média No código que você está usando, wts é o quanto você está pesando cada valor como você adivinhou a soma de que o vetor deve ser sempre igual a um Se você deseja peso cada valor uniformemente e fazer um filtro N tamanho N, então você iria querer A fazer. Usando o argumento válido em conv resultará em ter menos valores em Ms do que você tem em M Use mesmo se você don t mente os efeitos de zero padding Se você tiver a caixa de ferramentas de processamento de sinal você pode usar cconv se você quiser tentar Uma média móvel circular Algo como. Você deve ler t Ele conv e documentação cconv para obter mais informações se você não tem já. Você pode usar o filtro para encontrar uma média em execução sem usar um loop for Este exemplo encontra a média em execução de um vetor de 16 elementos, usando um tamanho de janela de 5.2 suave como parte Da caixa de ferramentas de ajuste de curvas que está disponível na maioria dos casos. yy suaviza e suaviza os dados no vetor de coluna y usando um filtro de média móvel Os resultados são retornados no vetor de coluna yy O intervalo padrão para a média móvel é 5.In muitas experiências em Ciência, as verdadeiras amplitudes do sinal os valores do eixo y mudam bastante suavemente como uma função dos valores do eixo x, ao passo que muitos tipos de ruído são vistos como mudanças rápidas e aleatórias na amplitude de um ponto a outro dentro do sinal. Ser útil em alguns casos para tentar reduzir o ruído por um processo chamado suavização Em suavização, os pontos de dados de um sinal são modificados para que os pontos individuais que são mais elevados do que os pontos imediatamente adjacentes presumivelmente porque o F ruído são reduzidos e os pontos que são inferiores aos pontos adjacentes são aumentados Isso naturalmente leva a um sinal mais suave e uma resposta mais lenta passo para mudanças de sinal Enquanto o verdadeiro sinal subjacente é realmente suave, então o verdadeiro sinal não será muito Distorcida pela suavização, mas o ruído de alta frequência será reduzido Em termos das componentes de frequência de um sinal, uma operação de suavização actua como um filtro passa-baixa que reduz os componentes de alta frequência e passa os componentes de baixa frequência com pouca alteração. Algoritmos A maioria dos algoritmos de suavização baseiam-se na técnica de mudança e multiplicação, na qual um grupo de pontos adjacentes nos dados originais são multiplicados ponto por ponto por um conjunto de coeficientes de números que define a forma suave, os produtos são somados e divididos Pela soma dos coeficientes, que se torna um ponto de dados suavizados, então o conjunto de coeficientes é deslocado um ponto para baixo os dados originais eo processo é repetido O sim O algoritmo de suavização plest é o boxcar rectangular ou não-ponderado deslizante-média lisa ele simplesmente substitui cada ponto no sinal com a média de m pontos adjacentes, onde m é um inteiro positivo chamado a largura lisa Por exemplo, para um m 3 liso de 3 pontos . Para j 2 a n-1, onde S j o j-ésimo ponto no sinal suavizado, Y j o j-ésimo ponto no sinal original e n é o número total de pontos no sinal Podem ser construídas operações semelhantes sem problemas Qualquer largura desejada m m Normalmente m é um número ímpar Se o ruído nos dados é ruído branco que é uniformemente distribuído em todas as frequências eo seu desvio padrão é D então o desvio padrão do ruído restante no sinal após a primeira passagem De uma média deslizante não ponderada lisa será aproximadamente s sobre a raiz quadrada de m D sqrt m, onde m é a largura lisa Apesar da sua simplicidade, este bom é realmente otimizado para o problema comum de reduzir o ruído branco, mantendo o passo mais nítido re Resposta A resposta a uma mudança de passo é de fato linear então este filtro tem a vantagem de responder completamente sem efeito residual com seu tempo de resposta que é igual à largura lisa dividida pela taxa de amostragem. O triangular liso é como o liso retangular, Acima, exceto que ele implementa uma função de suavização ponderada Para um m 5 liso de 5 pontos para j 3 a n-2, e similarmente para outras larguras suaves veja a planilha. Em ambos os casos, o inteiro no denominador é a soma Dos coeficientes no numerador, o que resulta em uma unidade de ganho suave que não tem efeito sobre o sinal onde é uma linha reta e que preserva a área sob picos. É muitas vezes útil aplicar uma operação de suavização mais de uma vez, que É, para suavizar um sinal já suavizado, a fim de construir lisas mais longas e mais complicadas Por exemplo, o triangular de 5 pontos liso acima é equivalente a duas passagens de um triângulo retangular de 3 pontos Três passagens de um triângulo retangular de 3 pontos 1 3 6 7 6 3 1 A regra geral é que n passa de aw liso resultados lisos em uma largura lisa combinada de nw - N 1 Por exemplo, 3 passagens de um 17-ponto liso resulta em um 49-ponto liso Estes lábios de multi-passagem são mais eficazes na redução de ruído de alta freqüência no sinal do que um retangular liso, mas exibir passo mais lento resposta Em todas essas suaves , A largura do m suave é escolhida para ser um número inteiro ímpar, de modo que os coeficientes lisos são simetricamente equilibrados em torno do ponto central, o que é importante porque preserva a posição do eixo x de picos e outras características no sinal. Crítico para aplicações analíticas e espectroscópicas porque as posições de pico são frequentemente objetivos de medição importantes. Note-se que estamos assumindo aqui que os intervalos do eixo x do sinal é uniforme, isto é, que a diferença entre os valores do eixo x de adj Acent pontos é o mesmo em todo o sinal Isso também é assumido em muitas das outras técnicas de processamento de sinal descritas neste ensaio, e é uma característica muito comum, mas não necessária de sinais que são adquiridos por equipamentos automatizados e computerized. O Savitzky - Golay liso é baseado no encaixe dos mínimos quadrados de polinômios para segmentos dos dados O algoritmo é discutido em comparação com as médias de deslizamento médio, o Savitzky-Golay liso é menos eficaz na redução do ruído, mas mais eficaz na retenção da forma de O sinal original É capaz de diferenciação, bem como suavização O algoritmo é mais complexo e os tempos computacionais são maiores do que os tipos suaves discutidos acima, mas com computadores modernos a diferença não é significativa e código em várias línguas é amplamente disponível on-line. A forma de qualquer algoritmo de suavização pode ser determinada aplicando que suave a uma função delta um sinal que consiste em todos os zeros, exceto para Como demonstrado pelo simples script de Octave Matlab DeltaTest m Redução de ruído A suavização geralmente reduz o ruído em um sinal Se o ruído é branco, que é uniformemente distribuído em todas as freqüências e seu desvio padrão é D, então o desvio padrão do ruído restante No sinal após uma passagem de uma retangular lisa será aproximadamente D sqrt m, onde m é a largura lisa Se um triangular liso é usado em vez disso, o ruído será ligeiramente menor, cerca de D 0 8 sqrt m As operações de suavização podem ser aplicadas mais Do que uma vez que é, um sinal previamente suavizado pode ser suavizado novamente Em alguns casos isso pode ser útil se houver uma grande quantidade de ruído de alta freqüência no sinal No entanto, a redução de ruído para ruído branco é menor em cada liso sucessivo Para Por exemplo, três passagens de um retangular liso reduz o ruído branco por um fator de aproximadamente D 0 7 sqrt m, apenas uma ligeira melhora ao longo de dois passes. A distribuição de freqüência de ruído, designada por cor de ruído Afecta substancialmente a capacidade de suavização para reduzir o ruído A função Matlab Octave NoiseColorTest m compara o efeito de um carro box box de 20 pontos sem deslizamento médio suave no desvio padrão de ruído branco, rosa e azul, todos os quais têm um desvio padrão desmonte original Como o suavização é um processo de filtro passa-baixa, ele produz menos ruído rosa e vermelho de baixa freqüência e produz efeitos de ruído azul e violeta de alta freqüência mais do que o ruído branco. Observe que o cálculo do desvio padrão é independente de A ordem dos dados e, portanto, da sua distribuição de frequências classificar um conjunto de dados não altera o seu desvio padrão O desvio padrão de uma onda senoidal é independente da sua frequência A suavização altera tanto a distribuição de frequência como o desvio padrão de um conjunto de dados. End efeitos e os pontos perdidos problema Nas equações acima, o 3-ponto retangular lisa é definida apenas para j 2 a n-1 Não há dados suficientes na s Ignal para definir um 3-ponto liso completo para o primeiro ponto no sinal j 1 ou para o último ponto jn porque não há pontos de dados antes do primeiro ponto ou após o último ponto Similarmente, um 5-ponto liso é definido apenas para J 3 a n-2 e, portanto, um liso não pode ser calculado para os dois primeiros pontos ou para os dois últimos pontos Em geral, para uma m-largura suave, haverá m -1 2 pontos no início do sinal E m -1 2 pontos no final do sinal para o qual um m completo de largura lisa não pode ser calculado da maneira usual O que fazer Há duas abordagens Um é aceitar a perda de pontos e trim off esses pontos ou substituí-los Com zeros no sinal suave Essa é a abordagem tomada na maioria das figuras neste trabalho A outra abordagem é usar progressivamente menores suaves nas extremidades do sinal, por exemplo, para usar 2, 3, 5, 7 pontos suaves para o sinal Pontos 1, 2, 3 e 4 e para pontos n, n-1, n-2, n-3 respectivamente. A abordagem posterior pode ser pref A função fastsmooth discutida abaixo pode utilizar qualquer um destes dois métodos. Exemplos de suavização Um exemplo simples de suavização é mostrado na Figura 4 A metade esquerda deste sinal é um Pico barulhento A metade direita é o mesmo pico depois de sofrer um algoritmo de suavização triangular O ruído é muito reduzido enquanto o próprio pico é pouco alterado O ruído reduzido permite que as características do sinal a posição do pico, altura, largura, área, etc. A metade direita deste sinal é um pico barulhento. A metade direita é o mesmo pico depois de sofrer um algoritmo de suavização. O ruído é muito reduzido enquanto o próprio pico é pouco alterado, tornando mais fácil medir a posição do pico, a altura , E a largura diretamente pela estimativa gráfica ou visual mas não melhora medidas feitas pelos métodos dos mínimos quadrados veja abaixo. Quanto maior a largura lisa, th E maior a redução de ruído, mas também maior a possibilidade de o sinal ser distorcido pela operação de suavização A escolha óptima de largura suave depende da largura e forma do sinal e do intervalo de digitalização Para os sinais de tipo pico, o factor crítico É a razão suave a relação entre a largura l suave m eo número de pontos na meia largura do pico Em geral, o aumento da relação de alisamento melhora a relação sinal-ruído mas provoca uma redução na amplitude e no aumento da Largura de banda do pico Estar ciente de que a largura lisa pode ser expressa de duas maneiras diferentes a como o número de pontos de dados ou b como o intervalo de eixo x para dados espectroscópicos geralmente em nm ou em unidades de freqüência Os dois são simplesmente relacionados o número de Pontos de dados é simplesmente o intervalo do eixo x vezes o incremento entre os valores do eixo x adjacentes. A razão suave é a mesma em qualquer dos casos. As figuras acima mostram exemplos do efeito de três larguras diferentes Em picos ruidosos de forma Gaussiana Na figura à esquerda, o pico tem uma altura verdadeira de 2 0 e há 80 pontos na meia largura do pico. A linha vermelha é o pico não alisado original. As três linhas verdes sobrepostas são a Resultados de alisamento deste pico com uma largura triangular de largura de topo para fundo 7, 25 e 51 pontos Uma vez que a largura do pico é de 80 pontos, as proporções suaves destes três lisos são 7 80 0 09, 25 80 0 31 e 51 80 0 64, respectivamente Como a largura lisa aumenta, o ruído é progressivamente reduzido, mas a altura do pico também é reduzida ligeiramente Para o maior liso, a largura do pico é ligeiramente aumentada Na figura à direita, o pico original em vermelho tem um verdadeiro Altura de 1 0 e uma meia largura de 33 pontos É também menos ruidoso que o exemplo à esquerda As três linhas verdes sobrepostas são os resultados das mesmas três lisas triangulares de largura de cima para baixo 7, 25 e 51 pontos Mas porque a largura do pico neste caso é de apenas 33 pontos, Você pode ver que a redução do efeito de distorção de pico da altura do pico e aumento na largura do pico é maior para o pico mais estreito porque as proporções suaves são mais altas Razões suaves de mais de 1 0 são raramente usadas devido a distorção de pico excessiva Observe que mesmo no pior caso, as posições de pico não são efetuadas supondo que os picos originais eram simétricos e não sobrepostos por outros picos Se a retenção da forma do pico é Mais importante do que otimizar a relação sinal-ruído, o Savitzky-Golay tem a vantagem sobre superfícies lisas médias Em todos os casos, a área total sob o pico permanece inalterada Se o pico de largura variar substancialmente, Largura para variar ao longo do sinal, pode ser usado. O problema com suavização é que ele é muitas vezes menos benéfico do que você poderia pensar É importante ressaltar que suavizar os resultados, tais como ilustrar D na figura acima pode ser enganosamente impressionante, porque eles empregam uma única amostra de um sinal barulhento que é suavizada em graus diferentes Isso faz com que o espectador a subestimar a contribuição do ruído de baixa freqüência, que é difícil de estimar visualmente porque há tão poucos Ciclos de baixa frequência no registo de sinal Este problema pode ser visualizado registando um número de amostras independentes de um sinal ruidoso constituído por um único pico, como ilustrado nas duas figuras abaixo Estas figuras mostram dez parcelas sobrepostas com o mesmo pico mas com um branco independente Ruído, cada um traçado com uma cor de linha diferente, sem alisamento à esquerda e alisado à direita Inspeção dos sinais suavizados à direita mostra claramente a variação na posição de pico, altura e largura entre as 10 amostras causadas pelo ruído de baixa freqüência remanescente Nos sinais suavizados Sem o ruído, cada pico teria uma altura de pico de 2, centro de pico em 500 e largura de 150 Só porque um sinal parece Suave não significa que não há ruído Baixa freqüência de ruído remanescente nos sinais após o alisamento ainda interferirá com a medição precisa da posição de pico, altura e largura. Os scripts geradores abaixo de cada figura requerem que as funções gaussian m, whitenoise m e fastsmooth m sejam baixadas. Deve ser claro que a suavização raramente pode eliminar completamente o ruído, porque a maior parte do ruído é espalhado em uma ampla gama de freqüências e alisamento Simplesmente reduz o ruído em parte de sua faixa de freqüência Somente para alguns tipos muito específicos de ruído, por exemplo, ruído de freqüência discreta ou picos de ponto único há esperança de qualquer coisa perto de eliminação de ruído completa. A figura abaixo é outro exemplo de sinal que ilustra Alguns destes princípios O sinal consiste em dois picos gaussianos, um localizado em x 50 e o segundo em x 150 Ambos os picos têm uma altura de pico de 10 e uma meia-largura de pico de 10 e um ruído branco aleatório normalmente distribuído com Um desvio padrão de 0 1 foi adicionado a todo o sinal O intervalo de amostragem do eixo x, no entanto, é diferente para os dois picos é s 0 1 para o primeiro pico de x 0 a 100 e 1 0 para o segundo Pico de x 100 para 200 Isso significa que o primeiro pico é caracterizado por dez vezes mais pontos que o segundo pico Pode parecer que o primeiro pico é mais ruidoso do que o segundo, mas isso é apenas uma ilusão a relação sinal-ruído para Ambos os picos é 10 O segundo pico parece menos ruidoso apenas porque há menos amostras de ruído lá e tendemos a subestimar a dispersão de pequenas amostras O resultado disso é que quando o sinal é alisado, o segundo pico é muito mais provável de ser distorcida Pelo liso torna-se mais curto e mais largo do que o primeiro pico O primeiro pico pode tolerar uma largura lisa muito mais larga, resultando em um maior grau de redução de ruído Similarmente, se ambos os picos são medidos com o método de ajuste de curva de mínimos quadrados, O primeiro pico é mais estável com o ruído e os parâmetros medidos desse pico serão cerca de 3 vezes mais precisos do que o segundo pico, porque há 10 vezes mais pontos de dados nesse pico e a precisão de medição impr Oves aproximadamente com a raiz quadrada do número de pontos de dados se o ruído é branco Você pode baixar o arquivo de dados udx em formato TXT ou em Matlab MAT format. Optimization de suavização Como a largura suave aumenta, a taxa de suavização aumenta, o ruído é reduzido rapidamente Em seguida, mais lentamente, ea altura do pico também é reduzida, lentamente em primeiro lugar, em seguida, mais rapidamente A redução de ruído depende da largura lisa, o tipo suave, por exemplo retangular, triangular, etc, ea cor do ruído, Redução também depende da largura do pico O resultado é que o sinal de ruído definido como a relação entre a altura do pico do desvio padrão do ruído aumenta rapidamente no início, em seguida, atinge um máximo Isso é ilustrado na animação à esquerda Para um pico gaussiano com ruído branco produzido por este script Matlab Octave A melhoria máxima na relação sinal-ruído depende do número de pontos no pico, quanto mais pontos no pico, maiores larguras lisas podem ser Empregado e maior a redução de ruído Esta figura também ilustra que a maior parte da redução de ruído é devido a componentes de alta freqüência do ruído, enquanto grande parte do ruído de baixa freqüência permanece no sinal, mesmo que ele é alisado. Qual é a melhor relação suave Depende da finalidade da medição do pico Se o objetivo final da medição for medir a altura ou a largura do pico, então devem ser usadas relações suaves abaixo de 0 2 e a solução Savitzky-Golay é preferida. Mas se o objetivo do medidor É medir o valor do eixo x da posição de pico do pico, podem ser empregues relações lisas maiores se desejado, porque o alisamento tem pouco efeito na posição de pico a menos que o pico seja assimétrico ou o aumento na largura do pico seja tanto que provoque picos adjacentes Para sobrepor Se o pico é realmente formado de dois picos subjacentes que se sobrepõem tanto que eles parecem ser um pico, então ajuste de curva é a única maneira de medir os parâmetros do subjacente Picos Infelizmente, a relação óptimo sinal / ruído corresponde a uma relação suave que distorce significativamente o pico, razão pela qual a curva de ajuste dos dados não liso é muitas vezes preferred. In aplicações de análise química quantitativa com base na calibração por amostras padrão, a redução de altura de pico Causada pela suavização não é tão importante Se as mesmas operações de processamento de sinal forem aplicadas às amostras e aos padrões, a redução de altura de pico dos sinais padrão será exatamente igual à dos sinais de amostra e o efeito será cancelado exatamente em Tais casos podem ser utilizadas larguras macias de 0 5 a 1 0, se necessário para melhorar ainda mais a relação sinal-ruído, como mostrado na figura à esquerda para uma mecha rectangular simples de média deslizante. Na química prática, a altura de pico absoluta As medições são raramente necessário calibração contra soluções padrão é a regra Lembrar o objetivo da análise quantitativa não é medir um sinal, mas rathe R para medir a concentração do desconhecido. É muito importante, no entanto, aplicar exactamente os mesmos passos de processamento de sinal aos sinais padrão que para os sinais de amostra, caso contrário pode resultar um grande erro sistemático. Para uma comparação mais detalhada de todos os quatro suavização Tipos considerados acima, veja. Quando deve suavizar um sinal Há duas razões suavizar um sinal. A por razões cosméticas, preparar um gráfico mais agradável ou mais dramático de um sinal para inspecção visual ou publicações, especialmente para enfatizar o comportamento a longo prazo a curto prazo ou b se o sinal será subsequentemente analisado por um método que Seriam degradadas pela presença de demasiado ruído de alta frequência no sinal, por exemplo se as alturas dos picos forem determinadas visualmente ou graficamente ou utilizando a função MAX, das larguras dos picos é medida pela função de meia-amplitude , Ou se a localização de máximos, mínimos ou pontos de inflexão no sinal deve ser determinada automaticamente pela detecção de cruzamentos de zero em derivadas do sinal. Otimização da quantidade e tipo de suavização é importante nestes casos ver Mas geralmente, se um Computador está disponível para fazer medições quantitativas, é melhor usar métodos de mínimos quadrados sobre os dados não alisados, ao invés de estimativas gráficas sobre dados suavizados Se um instrumento comercial tem a opção de Suavizar os dados para você, é melhor para desabilitar a suavização e gravar e salvar os dados sem alinhamento você sempre pode liso você mesmo mais tarde para a apresentação visual e será melhor usar os dados sem alinhamento para um encaixe de mínimos quadrados ou outro processamento que Você pode querer fazer mais tarde Smoothing pode ser usado para localizar picos, mas não deve ser usado para medir picos. Care deve ser usado no projeto de algoritmos que empregam alisamento Por exemplo, em uma técnica popular para pico de localização e picos de medição estão localizados Através da detecção de cruzamentos descendentes na primeira derivada suavizada, mas a posição, altura e largura de cada pico é determinada pelo ajuste de curvas de mínimos quadrados de um segmento de dados não-lisos originais na vizinhança do cruzamento de zero. Se o alisamento pesado for necessário para fornecer discriminação confiável contra picos de ruído, os parâmetros de pico extraídos por ajuste de curva não são distorcidos pela suavização. Quando você NÃO deve suavizar um sinal Uma comunicação Sobre a situação onde você não deve suavizar os sinais é anterior a procedimentos estatísticos, tais como menos quadrados curva de montagem porque. Um alisamento não melhorará significativamente a precisão da medição de parâmetros por medições de mínimos quadrados entre amostras independentes de sinal independentes, b todos os algoritmos de suavização são pelo menos ligeiramente com perdas, implicando pelo menos alguma alteração na forma e amplitude do sinal, c é mais difícil avaliar a Ajuste, inspecionando os resíduos se os dados são alisados, porque o ruído suavizado pode ser confundido com um sinal real e d suavização do sinal subestima seriamente os erros de parâmetros previstos pelos cálculos de propagação de erro eo método bootstrap. Dealing com picos e outliers Às vezes os sinais são contaminados com picos muito altos, estreitos ou outliers ocorrendo em intervalos aleatórios e com amplitudes aleatórias, mas com larguras de apenas um ou alguns pontos. Não só parece feio, mas também perturba as suposições de computações de mínimos quadrados porque Não é normalmente distribuído aleatório de ruído Este tipo de interferência é difícil de eliminar usando o acima smoot No entanto, um filtro mediano, que substitui cada ponto no sinal pela mediana em vez da média de m pontos adjacentes, pode eliminar completamente picos estreitos com pouca mudança no sinal, se a largura dos picos é Apenas um ou alguns pontos e igual ou inferior a m Veja A função killspikes m usa uma abordagem diferente que localiza e elimina os picos por patches sobre eles usando interpolação linear a partir do sinal antes e depois Diferentemente de smooths convencionais, essas funções podem ser lucrativas Aplicado antes das funções de ajuste dos mínimos quadrados Por outro lado, se é os picos que são realmente o sinal de interesse, e outros componentes do sinal estão interferindo com a sua medida, consulte Uma alternativa ao alisamento para reduzir o ruído no conjunto De dez sinais não suavizados acima utilizados é a média de conjunto que pode ser realizada neste caso de forma muito simples pelo gráfico de código de Octave de Matlab x, média y o resultado mostra uma redução Isto é suficiente para julgar que há um único pico com forma gaussiana, que pode então ser medido pelo ajuste de curva coberto em uma seção posterior usando o código de Octave Matlab peakfit xmean y, 0,0 , 1 com o resultado mostrando excelente concordância com a posição 500, altura 2 e largura 150 do pico gaussiano criado na terceira linha do script gerador acima à esquerda Uma grande vantagem da média do conjunto é que o ruído em todas as freqüências é reduzido não Apenas o ruído de alta freqüência, como em suavização. Con denso oversampled sinais Às vezes os sinais são gravados mais densamente que é, com menor eixo x intervalos do que realmente necessário para capturar todas as características importantes do sinal Isso resulta em maiores do que os dados necessários Tamanhos, o que retarda os procedimentos de processamento de sinal e pode taxar a capacidade de armazenamento. Para corrigir isso, os sinais sobreamosturados podem ser reduzidos em tamanho, eliminando os pontos de dados dizer, soltando cada outro ponto ou cada Terceiro ponto ou substituindo grupos de pontos adjacentes por suas médias A abordagem posterior tem a vantagem de usar em vez de descartar pontos de dados estranhos e age como suavização para fornecer alguma medida de redução de ruído Se o ruído no sinal original é branco e O sinal é condensado pela média de cada n pontos, o ruído é reduzido no sinal condensado pela raiz quadrada de n, mas sem alteração na distribuição de freqüência do ruído O teste de roteiro de Octave Matlab condensa m demonstra o efeito da média de caixa usando a condensação m Para reduzir o ruído sem alterar a cor do ruído Mostra que o vagão reduz o ruído medido removendo os componentes de alta freqüência, mas tem pouco efeito sobre os parâmetros de pico O ajuste de curvas de mínimos quadrados nos dados condensados ​​é mais rápido e resulta em um erro de ajuste menor Nenhuma medida mais precisa dos parâmetros de pico. Demonstração de vídeo Este vídeo de 18 segundos de 3 MByte demonstra o efeito da triangula R alisamento num único pico gaussiano com uma altura de pico de 1 0 e uma largura de pico de 200 A amplitude de ruído branco inicial é 0 3, dando uma relação sinal / ruído inicial de cerca de 3 3 Uma tentativa de medir a amplitude de pico e pico A largura do sinal ruidoso, mostrada na parte inferior do vídeo, é inicialmente seriamente imprecisa devido ao ruído. Conforme a largura lisa é aumentada, no entanto, a relação sinal-ruído melhora ea precisão das medições de amplitude de pico e pico A largura é melhorada No entanto, acima de uma largura lisa de cerca de 40 proporção lisa 0 2, a suavização faz com que o pico seja mais curto do que 1 0 e mais largo do que 200, embora a relação sinal / ruído continue a melhorar à medida que a largura lisa é Aumentada Esta demonstração foi criada no Matlab 6 5.SPECTRUM, o aplicativo de processamento de sinal Macintosh gratuito, inclui funções de suavização retangulares e triangulares para qualquer número de pontos Planilhas A suavização pode ser feita em planilhas usando o shift e mult Iply descrita acima Nas planilhas eo conjunto de coeficientes de multiplicação está contido nas fórmulas que calculam os valores de cada célula dos dados suavizados nas colunas C e E A coluna C executa um 7-ponto retangular liso 1 1 1 1 1 1 1 E coluna E faz um 7-ponto triangular liso 1 2 3 4 3 2 1, aplicado aos dados na coluna A Você pode digitar ou copiar e colar quaisquer dados que você gosta na coluna A, e você pode estender a planilha para colunas mais longas De dados arrastando a última linha das colunas A, C e E para baixo conforme necessário Mas para alterar a largura lisa, você teria que mudar as equações nas colunas C ou E e copiar as mudanças para baixo a coluna inteira É prática comum para Dividir os resultados pela soma dos coeficientes de modo que o ganho líquido é a unidade ea área sob a curva do sinal suavizado é preservada As planilhas e contêm uma coleção de coeficientes de convolução de ganho unitário para lisos de largura rectangular, triangular e gaussiana 3 a 29 em bot H coluna vertical e formato de linha horizontal Você pode Copiar e Colar estes em suas próprias planilhas. As planilhas e demonstrar um método mais flexível em que os coeficientes estão contidos em um grupo de 17 células adjacentes na linha 5, colunas I a Y, tornando-o Mais fácil de alterar a forma e largura lisas até um máximo de 17 Nesta planilha, o suave é aplicado três vezes em sucessão, resultando em uma largura efetiva lisa de 49 pontos aplicados à coluna Gpared para Matlab Octave, as planilhas são muito mais lentas, menos Flexível e menos facilmente automatizado Por exemplo, nessas planilhas, para alterar o sinal ou o número de pontos no sinal, ou para alterar a largura ou tipo suave, você tem que modificar a planilha em vários lugares, enquanto que para fazer o mesmo Usando o Matlab Octave fastsmooth função abaixo, você só precisa alterar os argumentos de entrada de uma única linha de código E combinando várias técnicas diferentes em uma planilha é mais complicado do que escrever um Matlab Octave script que faz a mesma coisa Smoothing em Matlab e Octave A função personalizada fastsmooth implementa deslocar e multiplicar tipo smooths usando um algoritmo recursivo Clique neste link para inspecionar o código, ou clique com o botão direito do mouse para download para uso dentro Matlab Fastsmooth é um Matlab Função da forma s fastsmooth a, w, tipo, borda O argumento a é o vetor de sinal de entrada w é a largura lisa um tipo de número inteiro positivo determina o tipo liso tipo 1 dá um sliding-average retangular ou boxcar tipo liso 2 dá um triangular Liso, equivalente a duas passagens de um tipo médio deslizante 3 dá um pseudo-gaussiano liso, equivalente a três passes de uma média deslizante essas formas são comparadas na figura à esquerda Veja para uma comparação destes modos de suavização O argumento borda controla como As arestas do sinal são os primeiros w 2 pontos e os últimos w 2 pontos são manuseados Se edge 0, os contornos são zero Neste modo o tempo decorrido é independente da largura lisa Isto dá O tempo de execução mais rápido Se a aresta 1, as arestas são suavizadas com progressivamente menores suaviza o mais próximo da extremidade Neste modo o tempo de execução aumenta com o aumento de largura lisa O sinal suavizado é retornado como o vetor s Você pode deixar os dois últimos argumentos de entrada Comparado aos algoritmos lisos baseados em convolução, o fastsmooth usa um algoritmo recursivo simples que tipicamente dá tempos de execução muito mais rápidos, especialmente para grandes larguras suaves que ele Pode suavizar um sinal de 1.000.000 pontos com uma média deslizante de 1.000 pontos em menos de 0 1 segundo Aqui está um exemplo simples de fastsmooth demonstrando o efeito no gráfico de ruído branco. SegmentedSmooth m ilustrado à direita, é uma função de alisamento segmentos de largura múltipla d ata, com base No algoritmo fastsmoo th, que pode ser útil se as larguras dos picos ou o nível de ruído variar substancialmente em todo o sinal A sintaxe é o s ame as fastsmooth m except that the second input argument smoothwidths can be a vector SmoothY SegmentedSmooth Y, smoothwidths, type, ends The function divides Y into a number of equal-length regions defined by the length of the vector smoothwidths , then smooths each region with a smooth of type type and width defined by the elements of vector smoothwidths In the graphic example in the figure on the right, smoothwidths 31 52 91 which divides up the signal into three regions and smooths the first region with smoothwidth 31, the second with smoothwidth 51, and the last with smoothwidth 91 Any number of smooth widths and sequence of smooth widths can be used Type help SegmentedSmooth for other examples examples DemoSegmentedSmooth m demonstrates the operation with different signals consisting of noisy variable-width peaks that get progressively wider, like the figure on the right. SmoothWidthTest m is a simple script that uses the fastsmooth function to demonstrate the effect of smoothing on peak height, noise, and signal-to-noise ratio of a peak You can change the peak shape in line 7, the smooth type in line 8, and the noise in line 9 A typical result for a Gaussian peak with white noise smoothed with a pseudo-Gaussian smooth is shown on the left Here, as it is for most peak shapes, the optimal signal-to-noise ratio occurs at a smooth ratio of about 0 8 However, that optimum corresponds to a significant reduction in the peak height which could be a serious problem A smooth width about half the width of the original unsmoothed peak produces less distortion of the peak but still achieves a reasonable noise reduction SmoothVsCurvefit m is a similar script, but is also compares curve fitting as an alternative method to measure the peak height without smoothing. This effect is explored more completely by the text below, which shows an experiment in Matlab or Octave that creates a Gaussian peak, smooths it, compares the smoothed and unsmoothed version, then uses the max, ha lfwidth and trapz functions to print out the peak height, halfwidth, and area max and trapz are both built-in functions in Matlab and Octave, but you have to download halfwidth m To learn more about these functions, type help followed by the function name. x 0 1 10 y exp - x-5 2 plot x, y ysmoothed fastsmooth y,11,3,1 plot x, y,x, ysmoothed, r disp max y halfwidth x, y,5 trapz x, y disp max ysmoothed halfwidth x, ysmoothed,5 trapz x, ysmoothed.1 1 6662 1 7725 0 78442 2 1327 1 7725 These results show that smoothing reduces the peak height from 1 to 0 784 and increases the peak width from 1 66 to 2 13 , but has no effect on the peak area, as long as you measure the total area under the broadened peak. Smoothing is useful if the signal is contaminated by non-normal noise such as sharp spikes or if the peak height, position, or width are measured by simple methods, but there is no need to smooth the data if the noise is white and the peak parameters are measured by least-squares methods, because the results obtained on the unsmoothed data will be more accurate see. The Matlab Octave user-defined function condense m condense y, n returns a condensed version of y in which each group of n points is replaced by its average, reducing the length of y by the factor n For x, y data sets, use this function on both independent variable x and dependent variable y so that the features of y will appear at the same x values. The Matlab Octave user-defined function medianfilter m medianfilter y, w performs a median-based filter operation that replaces each value of y with the median of w adjacent points which must be a positive integer killspikes m is a threshold-based filter for eliminating narrow spike artifacts The syntax is fy killspikes x, y, threshold, width Each time it finds a positive or negative jump in the data between y n and y n 1 that exceeds threshold , it replaces the next width points of data with a linearly interpolated segment spanning x n to x n width 1 , See killspikesdemo T ype help killspikes at the command prompt. ProcessSignal is a Matlab Octave command-line function that performs smoothing and differentiation on the time-series data set x, y column or row vectors It can employ all the types of smoothing described above Type help ProcessSignal Returns the processed signal as a vector that has the same shape as x, regardless of the shape of y The syntax is Processed ProcessSignal x, y, DerivativeMode, w, type, ends, Sharpen, factor1, factor2, SlewRate, MedianWidth. iSignal is an interactive function for Matlab that performs smoothing for time-series signals using all the algorithms discussed above including the Savitzky-Golay smooth, a median filter, and a condense function, with keystrokes that allow you to adjust the smoothing parameters continuously while observing the effect on your signal instantly, making it easy to observe how different types and amounts of smoothing effect noise and signal, such as the height, width, and areas of peaks Other functi ons include differentiation, peak sharpening, interpolation, least-squares peak measurement, and a frequency spectrum mode that shows how smoothing and other functions can change the frequency spectrum of your signals The simple script iSignalDeltaTest demonstrates the frequency response of iSignal s smoothing functions by applying them to a single-point spike allowing you to change the smooth type and the smooth width to see how the the frequency response changes View the code here or download the ZIP file with sample data for testing. Use the A and Z keys to increase and decrease the smooth width, and the S key to cycle through the available smooth types Hint use the Gaussian smooth and keep increasing the smooth width until the peak shows. Note you can right-click on any of the m-file links on this site and select Save Link As to download them to your computer for use within Matlab Unfortunately, iSignal does not currently work in Octave. An earlier version of his page is available in French, at courtesy of Natalie Harmann and Anna Chekovsky Last updated February, 2017 This page is part of A Pragmatic Introduction to Signal Processing , created and maintained by Prof Tom O Haver Department of Chemistry and Biochemistry, The University of Maryland at College Park Comments, suggestions, bug reports, and questions should be directed to Prof O Haver at Unique visits since May 17, 2008.

No comments:

Post a Comment