Filtro de média móvel de ponto fixo
Média móvel Este exemplo ensina como calcular a média móvel de uma série temporal no Excel. Uma média móvel é usada para suavizar irregularidades (picos e vales) para reconhecer facilmente as tendências. 1. Primeiro, vamos dar uma olhada em nossa série de tempo. 2. No separador Dados, clique em Análise de dados. Nota: não é possível encontrar o botão Análise de dados Clique aqui para carregar o suplemento do Analysis ToolPak. 3. Selecione Média móvel e clique em OK. 4. Clique na caixa Input Range e selecione o intervalo B2: M2. 5. Clique na caixa Intervalo e escreva 6. 6. Clique na caixa Output Range e seleccione a célula B3. 8. Faça um gráfico destes valores. Explicação: porque definimos o intervalo como 6, a média móvel é a média dos 5 pontos de dados anteriores eo ponto de dados atual. Como resultado, os picos e vales são suavizados. O gráfico mostra uma tendência crescente. O Excel não consegue calcular a média móvel para os primeiros 5 pontos de dados porque não existem pontos de dados anteriores suficientes. 9. Repita os passos 2 a 8 para o intervalo 2 eo intervalo 4. Conclusão: Quanto maior o intervalo, mais os picos e vales são suavizados. Quanto menor o intervalo, mais próximas as médias móveis são para os pontos de dados reais. O cientista e engenheiros guia para processamento de sinal digital Por Steven W. Smith, Ph. D. Capítulo 28: Processadores de sinais digitais Fixo versus Flutuante O processamento de sinais digitais pode ser dividido em duas categorias, ponto fixo e ponto flutuante. Estes referem-se ao formato utilizado para armazenar e manipular números dentro dos dispositivos. Os DSPs de ponto fixo geralmente representam cada número com um mínimo de 16 bits, embora um comprimento diferente possa ser usado. Por exemplo, a Motorola fabrica uma família de DSP de ponto fixo que usam 24 bits. Há quatro maneiras comuns de que esses 2 16 65536 padrões de bits possíveis podem representar um número. Em inteiro não assinado. O número armazenado pode assumir qualquer valor inteiro de 0 a 65.535. Da mesma forma, assinado inteiro usa twos complementar para fazer o intervalo incluir números negativos, de-32.768 para 32.767. Com a notação de fração não assinada, os 65.536 níveis são espalhados uniformemente entre 0 e 1. Finalmente, o formato de fração assinada permite números negativos, igualmente espaçados entre -1 e 1. Em comparação, os DSP de ponto flutuante usam tipicamente um mínimo de 32 bits para armazenar cada valor. Isso resulta em muitos mais padrões de bits do que para ponto fixo, 2 32 4,294,967,296 para ser exato. Uma característica chave da notação de ponto flutuante é que os números representados não estão uniformemente espaçados. No formato mais comum (ANSIIEEE Std. 754-1985), os números maiores e menores são plusmn3.4x10 38 e 1.210 -38. respectivamente. Os valores representados estão desigualmente espaçados entre estes dois extremos, de modo que a diferença entre dois números seja cerca de dez milhões de vezes menor do que o valor dos números. Isso é importante porque ele coloca grandes lacunas entre grandes números, mas pequenas lacunas entre pequenos números. A notação de ponto flutuante é discutida em mais detalhes no Capítulo 4. Todos os DSPs de ponto flutuante também podem tratar números de ponto fixo, uma necessidade de implementar contadores, loops e sinais vindos do ADC e indo para o DAC. No entanto, isso não significa que matemática de ponto fixo será realizada tão rapidamente quanto as operações de ponto flutuante depende da arquitetura interna. Por exemplo, os DSPs da SHARC são otimizados para operações de ponto flutuante e ponto fixo, e os executa com igual eficiência. Por esta razão, os dispositivos SHARC são muitas vezes referidos como DSP de 32 bits, em vez de apenas ponto flutuante. A Figura 28-6 ilustra as compensações primárias entre DSPs de ponto fixo e flutuante. No Capítulo 3, salientamos que a aritmética de ponto fixo é muito mais rápida do que o ponto flutuante em computadores de uso geral. No entanto, com DSPs a velocidade é quase o mesmo, um resultado do hardware sendo altamente otimizado para operações matemáticas. A arquitetura interna de um DSP de ponto flutuante é mais complicada do que para um dispositivo de ponto fixo. Todos os registros e os barramentos de dados devem ter 32 bits de largura em vez de apenas 16 o multiplicador e a ALU deve ser capaz de executar rapidamente a aritmética de ponto flutuante, o conjunto de instruções deve ser maior (para que eles possam lidar com números flutuantes e fixos) em breve. Ponto flutuante (32 bits) tem melhor precisão e uma maior faixa dinâmica do que ponto fixo (16 bits). Além disso, os programas de ponto flutuante geralmente têm um ciclo de desenvolvimento mais curto, uma vez que o programador geralmente não precisa se preocupar com problemas como estouro, subfluxo e erro de arredondamento. Por outro lado, os DSP de ponto fixo têm sido tradicionalmente mais baratos do que os dispositivos de ponto flutuante. Nada muda mais rapidamente do que o preço da eletrônica qualquer coisa que você encontrar em um livro será out-of-date antes de ser impresso. No entanto, o custo é um fator chave para entender como os DSPs estão evoluindo, e precisamos dar uma idéia geral. Quando este livro foi concluído em 1999, DSP de ponto fixo vendidos entre 5 e 100, enquanto os dispositivos de ponto flutuante estavam na faixa de 10 a 300. Esta diferença de custo pode ser vista como uma medida da complexidade relativa entre os dispositivos. Se você quiser saber o que os preços são hoje. Você precisa olhar hoje. Agora vamos voltar nossa atenção para o desempenho que um sistema de ponto flutuante de 32 bits pode fazer com um ponto fixo de 16 bits. A resposta a essa pergunta é a relação sinal-ruído. Suponha que armazenamos um número em um formato de ponto flutuante de 32 bits. Como mencionado anteriormente, o hiato entre este número e seu vizinho adjacente é de cerca de um dez-milionésimo do valor do número. Para armazenar o número, ele deve ser redondo para cima ou para baixo em um máximo de metade do tamanho do intervalo. Em outras palavras, cada vez que armazenamos um número em notação de ponto flutuante, adicionamos ruído ao sinal. A mesma coisa acontece quando um número é armazenado como um valor de ponto fixo de 16 bits, exceto que o ruído adicionado é muito pior. Isso ocorre porque os intervalos entre números adjacentes são muito maiores. Por exemplo, suponha que armazenamos o número 10.000 como um inteiro assinado (de -32.768 para 32.767). A diferença entre os números é uma dez milésima do valor do número que estamos armazenando. Se quisermos armazenar o número 1000, o intervalo entre os números é apenas um milésimo do valor. O ruído nos sinais é normalmente representado pelo seu desvio padrão. Isso foi discutido em detalhes no Capítulo 2. Por aqui, o fato importante é que o desvio padrão deste ruído de quantização é cerca de um terço do tamanho do intervalo. Isso significa que a relação sinal / ruído para armazenar um número de ponto flutuante é de cerca de 30 milhões para um, enquanto que para um número de ponto fixo é apenas cerca de dez mil a um. Em outras palavras, o ponto flutuante tem aproximadamente 30.000 vezes menos ruído de quantização do que o ponto fixo. Isso traz uma maneira importante de que os DSPs sejam diferentes dos microprocessadores tradicionais. Suponha que implementamos um filtro FIR em ponto fixo. Para fazer isso, percorremos cada coeficiente, o multiplicamos pela amostra apropriada do sinal de entrada e adicionamos o produto a um acumulador. Heres o problema. Nos microprocessadores tradicionais, este acumulador é apenas outra variável de ponto fixo de 16 bits. Para evitar o estouro, precisamos escalonar os valores que estão sendo adicionados e, em conformidade, adicionamos ruído de quantização em cada etapa. No pior caso, este ruído de quantização irá simplesmente adicionar, reduzindo muito a relação sinal-ruído do sistema. Por exemplo, num filtro FIR de 500 coeficientes, o ruído em cada amostra de saída pode ser 500 vezes o ruído em cada amostra de entrada. A relação sinal-ruído de dez mil para um caiu para um terrível vinte para um. Embora este seja um caso extremo, ele ilustra o ponto principal: quando muitas operações são realizadas em cada amostra, é ruim, muito ruim. Consulte o Capítulo 3 para obter mais detalhes. DSPs lidar com esse problema usando um acumulador de precisão estendido. Este é um registro especial que tem 2-3 vezes mais bits do que os outros locais de memória. Por exemplo, em um DSP de 16 bits ele pode ter de 32 a 40 bits, enquanto que no SHARC DSPs ele contém 80 bits para uso de ponto fixo. Esta gama alargada praticamente elimina o ruído de arredondamento enquanto a acumulação está em curso. O único erro de arredondamento sofrido é quando o acumulador é dimensionado e armazenado na memória de 16 bits. Esta estratégia funciona muito bem, embora limite como alguns algoritmos devem ser realizados. Em comparação, o ponto flutuante tem tal ruído de quantização baixo que estas técnicas não são normalmente necessárias. Além de ter menor ruído de quantização, sistemas de ponto flutuante também são mais fáceis de desenvolver algoritmos para. A maioria das técnicas de DSP são baseadas em multiplicações e adições repetidas. No ponto fixo, a possibilidade de um overflow ou underflow deve ser considerada após cada operação. O programador precisa entender continuamente a amplitude dos números, como os erros de quantização estão se acumulando e qual escala precisa ocorrer. Em comparação, essas questões não surgem em ponto flutuante os números cuidar de si mesmos (exceto em casos raros). Para melhor compreender esta questão, a Fig. 28-7 mostra uma tabela do manual do usuário do SHARC. Isso descreve as maneiras que a multiplicação pode ser executada para formatos de ponto fixo e ponto flutuante. Primeiro, observe como números de ponto flutuante podem ser multiplicados há apenas uma maneira Isso é, Fn Fx Fy, onde Fn, Fx e Fy são qualquer um dos 16 registros de dados. Não poderia ser mais simples. Em comparação, veja todos os comandos possíveis para a multiplicação de ponto fixo. Estas são as muitas opções necessárias para lidar eficientemente com os problemas de arredondamento, dimensionamento e formatação. Na fig. 28-7, Rn, Rx e Ry referem-se a qualquer um dos 16 registos de dados, e MRF e MRB são acumuladores de 80 bits. As linhas verticais indicam opções. Por exemplo, a entrada superior esquerda nesta tabela significa que todos os seguintes são comandos válidos: Rn Rx Ry, MRx Rx Ry e MRB Rx Ry. Em outras palavras, o valor de quaisquer dois registradores pode ser multiplicado e colocado em outro registrador, ou em um dos acumuladores de precisão estendidos. Essa tabela também mostra que os números podem ser assinados ou não assinados (S ou U) e podem ser fracionários ou inteiros (F ou I). As opções RND e SAT são formas de controlar o arredondamento eo estouro do registro. Há outros detalhes e opções na tabela, mas eles não são importantes para a presente discussão. A idéia importante é que o programador de ponto fixo deve compreender dezenas de maneiras de realizar a tarefa muito básica de multiplicação. Em contraste, o programador de ponto flutuante pode gastar seu tempo concentrando-se no algoritmo. Dadas estas trocas entre ponto fixo e ponto flutuante, como você escolhe qual usar Aqui estão algumas coisas a considerar. Primeiro, observe quantos bits são usados no ADC e no DAC. Em muitas aplicações, 12-14 bits por amostra é o crossover para uso fixo versus ponto flutuante. Por exemplo, a televisão e outros sinais de vídeo usam tipicamente ADC de 8 bits e DAC, ea precisão do ponto fixo é aceitável. Em comparação, as aplicações de áudio profissionais podem amostrar com tão alto quanto 20 ou 24 bits, e quase certamente precisam de ponto flutuante para capturar o grande intervalo dinâmico. A próxima coisa a observar é a complexidade do algoritmo que será executado. Se é relativamente simples, acho que ponto fixo, se é mais complicado, acho que ponto flutuante. Por exemplo, filtragem FIR e outras operações no domínio do tempo exigem apenas algumas dezenas de linhas de código, tornando-as adequadas para ponto fixo. Em contraste, algoritmos de domínio de freqüência, tais como análise espectral e convolução FFT, são muito detalhados e podem ser muito mais difíceis de programar. Embora possam ser escritos em ponto fixo, o tempo de desenvolvimento será grandemente reduzido se o ponto flutuante for usado. Por fim, pense no dinheiro: quão importante é o custo do produto e quão importante é o custo do desenvolvimento Quando o ponto fixo é escolhido, o custo do produto será reduzido, mas o custo de desenvolvimento provavelmente será maior devido a Os algoritmos mais difíceis. No sentido inverso, o ponto flutuante geralmente resultará em um ciclo de desenvolvimento mais rápido e mais barato, mas um produto final mais caro. A Figura 28-8 mostra algumas das principais tendências nos DSPs. A Figura (a) ilustra o impacto que os processadores de sinal digital tiveram no mercado incorporado. Estas são aplicações que usam um microprocessador para operar e controlar diretamente algum sistema maior, como um telefone celular, forno de microondas ou painel de exibição de instrumento automotivo. O microcontrolador de nome é freqüentemente usado para se referir a esses dispositivos, para distingui-los dos microprocessadores usados em computadores pessoais. Como mostrado em (a), cerca de 38 de designers incorporados já começaram a usar DSPs, e outros 49 estão considerando o switch. O alto débito e potência computacional dos DSPs, muitas vezes os torna uma escolha ideal para projetos incorporados. Conforme ilustrado em (b), cerca de duas vezes tantos engenheiros usam atualmente ponto fixo como o uso de ponto flutuante DSPs. No entanto, isso depende muito da aplicação. Ponto fixo é mais popular em produtos de consumo competitivo, onde o custo da eletrônica deve ser mantido muito baixo. Um bom exemplo disso são os telefones celulares. Quando você está em concorrência para vender milhões de seu produto, uma diferença de custo de apenas alguns dólares pode ser a diferença entre o sucesso eo fracasso. Em comparação, o ponto flutuante é mais comum quando um maior desempenho é necessário eo custo não é importante. Por exemplo, suponha que você está projetando um sistema de imagem médica, como um scanner de tomografia computadorizada. Apenas algumas centenas do modelo será vendido, a um preço de várias centenas de milhares de dólares cada. Para esta aplicação, o custo do DSP é insignificante, mas o desempenho é crítico. Apesar do maior número de DSPs de ponto fixo sendo usados, o mercado de ponto flutuante é o segmento de mais rápido crescimento. Conforme mostrado em (c), mais de metade dos engenheiros usando dispositivos de 16 bits planejam migrar para ponto flutuante em algum momento em um futuro próximo. Antes de deixar este tópico, devemos ressaltar que ponto flutuante e ponto fixo geralmente usam 32 bits e 16 bits, respectivamente, mas nem sempre. Por exemplo, a família SHARC pode representar números em ponto fixo de 32 bits, um modo que é comum em aplicações de áudio digital. Isto faz com que os 2 32 níveis de quantização espaçam uniformemente sobre uma gama relativamente pequena, digamos, entre -1 e 1. Em comparação, a notação de ponto flutuante coloca os 2 32 níveis de quantificação logaritmicamente numa enorme gama, tipicamente plusmn3.4x10 38. Isto dá 32 - bit ponto fixo melhor precisão. Isto é, o erro de quantização em qualquer amostra será menor. No entanto, ponto flutuante de 32 bits tem um maior intervalo dinâmico. O que significa que há uma maior diferença entre o maior número eo menor número que pode ser representado. Documentação dfilt. latticemamin O mais importante é a posição do rótulo no diagrama, que identifica onde o formato se aplica. Como um exemplo, observe o rótulo ProductFormat, que segue sempre um elemento de multiplicação de coeficientes no fluxo de sinal. O rótulo indica que os coeficientes deixam o elemento de multiplicação com o comprimento da palavra eo comprimento da fração associados às operações do produto que incluem coeficientes. A partir da revisão da tabela, você verá que o ProductFormat se refere às propriedades ProductFracLength. ProductWordLength. E ProductMode que definem totalmente o formato do coeficiente após operações de multiplicação (ou produto). Propriedades Nesta tabela você verá as propriedades associadas com a fase mínima, a implementação da estrutura de média móvel de objetos dfilt. Observação A tabela lista todas as propriedades que um filtro pode ter. Muitas das propriedades são dinâmicas, significando que elas existem apenas em resposta às configurações de outras propriedades. Você pode não ver todas as propriedades listadas o tempo todo. Para exibir todas as propriedades de um filtro a qualquer momento, use onde hd é um filtro. Para obter mais informações sobre as propriedades deste filtro ou de qualquer objeto dfilt, consulte Propriedades de filtro de ponto fixo. Define o modo usado para responder a condições de estouro em aritmética de ponto fixo. Escolha entre saturar (limitar a saída ao maior valor representável positivo ou negativo) ou envolver (definir valores de transbordamento para o valor representável mais próximo usando aritmética modular). A escolha que você faz afeta somente o aritmético do acumulador e da saída. Coeficiente e aritmética de entrada sempre satura. Finalmente, os produtos nunca excedem 8212 mantêm a precisão total. Para a saída de uma operação de produto, define o comprimento da fração usada para interpretar os dados. Essa propriedade torna-se gravável (você pode alterar o valor) quando você definir ProductMode para SpecifyPrecision. Determina como o filtro lida com a saída das operações do produto. Escolha de precisão total (FullPrecision), ou se deseja manter o bit mais significativo (KeepMSB) ou o bit menos significativo (KeepLSB) no resultado quando você precisar encurtar as palavras de dados. Para que você seja capaz de definir a precisão (o comprimento da fração) usado pela saída das multiplicações, você definir ProductMode para SpecifyPrecision. Especifica o comprimento da palavra a ser usado para os resultados da operação de multiplicação. Essa propriedade torna-se gravável (você pode alterar o valor) quando você definir ProductMode para SpecifyPrecision. Especifica se é necessário redefinir os estados do filtro ea memória antes de cada operação de filtragem. Permite-lhe decidir se o seu filtro mantém estados de corridas de filtragem anteriores. False é a configuração padrão. Define o modo que o filtro usa para quantificar valores numéricos quando os valores se situam entre valores representáveis para o formato de dados (comprimento de palavras e frações). Ceil - Rodada em direção ao infinito positivo. Convergente - Redonda para o inteiro representável mais próximo. Arredonda para o inteiro mais próximo incluso armazenado. Este é o menos preconceituoso dos métodos disponíveis neste software. Fix - Rodada em direção a zero. Chão - Ronda em direção ao infinito negativo. Mais próximo - Rodada mais próxima. Os laços rodam em direção ao infinito positivo. Round - Redonda para o mais próximo. Os laços rodam em direção ao infinito negativo para números negativos, e em direção ao infinito positivo para números positivos. A escolha que você faz afeta somente o aritmético do acumulador e da saída. Coeficiente e aritmética de entrada sempre redonda. Finalmente, os produtos nunca excedem 8212 mantêm a precisão total. Especifica se o filtro usa coeficientes de ponto fixo assinados ou não assinados. Apenas os coeficientes refletem essa configuração de propriedade. Escolha o seu país
Comments
Post a Comment