O IIR filtra o que significa infinito?


11

Estou tendo dificuldade para entender o que "infinito" em IIR significa na prática. Em teoria, a resposta de impulso é usada para feedback. Se esse feedback nunca termina, como a saída é gerada?

Respostas:


18

Para responder a essa pergunta, você precisa saber o que "Impulso" e "Resposta" significam ...

Um "impulso" é um pulso simples. Digitalmente, seria uma amostra com um valor máximo, enquanto todas as outras amostras antes e depois seriam zero. Se você escutasse isso, ouviria algo como um estalo ou fogo de artifício.

A "resposta" é a saída de um filtro (ou qualquer outra coisa) que recebe o impulso.

Por exemplo, você pode ouvir a "resposta de impulso de uma sala" entrando na sala, dando um simples tapa na mão e ouvindo o eco. Seria necessário um pouco de prática para que a palmada ficasse o mais "afiada" possível. Obter a resposta de impulso de um filtro é da mesma maneira, mas, em vez de bater palmas, você usa um pulso simples e, em vez de uma sala, possui um filtro.

Se você observar a resposta ao impulso de um filtro ou de uma sala, verá que a saída se mexe por um tempo após o impulso (e às vezes também se mexe antes). Na sala, você ouviu esse movimento como o eco. Em um filtro, essa oscilação está diretamente relacionada à frequência e resposta de fase do filtro. Em uma sala, a quantidade de tempo que você ouve o eco é chamada de "tempo de reverberação" - não existe um termo correspondente para um filtro, mas faz parte da resposta ao impulso.

Agora, um filtro FIR (Resposta de impulso finito) é finito porque o tempo de resposta ao impulso é limitado pela matemática. É matematicamente impossível que o tempo de resposta ao impulso ultrapasse o número de toques no filtro - portanto, é finito .

Um filtro IIR, por outro lado, não possui essa limitação matemática no tempo de resposta ao impulso. Se for dada uma precisão matemática infinita, um filtro IIR pode alternar as saídas para sempre. Obviamente, em um sentido prático, isso nunca dura para sempre, já que, em algum momento, a oscilação fica menor que a precisão da matemática usada e desaparece.


obrigado pela boa explicação! Onde o feedback ocorre no IIR?
precisa saber é o seguinte

2
@Parhs: o feedback ocorre porque a saída atual é derivada dos valores de entrada e saída anteriores , enquanto que para o filtro FIR, a saída é derivada apenas dos valores de entrada anteriores .
Paul R

1
O feedback @Parha é um efeito colateral da topologia. E por topologia, quero dizer algo como um diagrama de fluxo ou uma exibição "esquemática" do filtro. Basicamente, os resultados de uma operação matemática em um estágio alimentam outra operação em um estágio anterior. É isso que o feedback é. A maioria das pessoas considera as FIR mais fáceis de usar, porque elas não têm esse feedback. Esse feedback é difícil de fazer funcionar corretamente, mas possui uma grande quantidade de eficiência.

Um sistema IIR possui um estado interno que 'lembra' a entrada anterior de todos os tempos. A maneira como você modela isso é alimentar as saídas anteriores de volta à saída atual, como este biquad de formulário direto 1 ou, equivalentemente, um loop de feedback na entrada, como este biquad canônico de formulário direto 2 .
Eryk Sun

11


b0yb0z1b1b1bi


z1

insira a descrição da imagem aqui

FIR Os
filtros FIR, por outro lado, têm um caminho linear da entrada para a saída. Após N amostras, o sinal de entrada (como um pulso Dirac) será deslocado para fora e é o fim.
Os filtros FIR são inerentemente estáveis, enquanto os filtros IIR não são necessariamente.

insira a descrição da imagem aqui


1
que o looping individual não pode ser perigoso, dando resultados indesejados em alguns casos?
precisa saber é o seguinte

2
Definitivamente pode. Use os caminhos ou ganhos incorretos de feedback e poderá criar um filtro instável ou um que solte uma oscilação senoidal de algo para sempre. Geralmente, não é isso que você deseja que um "filtro" faça; portanto, existem técnicas para analisar a estabilidade e evitar a instabilidade.
precisa saber é o seguinte

A soma de todos os termos de feedback precisa retornar ao início da cadeia de feedback ou a saída de termos posteriores pode ser resumida na entrada para termos posteriores? Embora eu esperasse que qualquer filtro que pudesse ser realizado da última maneira pudesse se transformar na forma que você ilustrou, eu afirmaria que existe uma subclasse útil de filtros IIR que pode ser formada a partir de filtros de primeira ordem em cascata (onde cada um saída de cada termo do lado direito pode alimentar-se, mas nenhum de seus antecessores) #
687

1
a1a2

@stevenvh: Como observei na minha resposta, há um subconjunto útil de filtros IIR em que um estágio pode retornar a si mesmo, mas não a um estágio anterior; Não sei se li um termo para descrever esses filtros, mas eles são muito mais fáceis de caracterizar do que os filtros IIR generalizados. Embora eles possam ser renderizados com os coeficientes certos no formato acima, seria mais difícil reconhecer esse filtro (existe um termo para eles?) Nesse formato.
supercat

4

Existem duas classes amplas de filtros digitais, resposta implusa infinita (IIR) e resposta de impulso finito (FIR). Novamente, os filtros IIR são baseados em equações e filtros FIR em tabelas.

Os filtros IIR são mais parecidos com os filtros analógicos do mundo real. Por exemplo, considere um decaimento exponencial simples, como você obteria de um filtro passa-baixo analógico RC. A resposta de saída a uma entrada de etapa é um exponencial que se aproxima cada vez mais da entrada. Observe que esse exponencial nunca chega à saída, apenas perto o suficiente para que não nos importemos ou não possamos medir o erro. Nesse sentido, esse filtro é inifinito. Um filtro IIR tem as mesmas características.

O filtro IIR passa baixo monopolar muito comum pode ser expresso como:

FILT <- FILT + FF (NOVO - FILT)

Isso significa que cada iteração da saída se moveu uma fração fixa (FF, a "fração de filtro") da distância para a entrada. Isso é fácil de visualizar quando FF = 1/2. Se tudo for 0 e a entrada for subitamente 1 e permanecer lá (uma unidade), a saída será 1/2, 3/4, 7/8, 15/16, etc. Esta é uma série infinita. Eventualmente, o valor chegará tão perto de 1 que será expresso como 1, pois os valores digitais no computador não têm precisão infinita.

Os filtros FIR funcionam com um princípio totalmente diferente. Um fragmento recente finito do sinal de entrada é salvo, e cada um dos valores salvos é multiplicado por um coeficiente diferente; em seguida, todos os resultados são adicionados para gerar a saída do filtro para essa iteração. Na próxima iteração, o valor salvo mais antigo é descartado, os outros são deslocados para um slot mais antigo e a nova entrada é colocada no slot desocupado. O novo trecho salvo é então multiplicado pelos coeficientes, etc. Esse processo é conhecido como "convolução" e a tabela de coeficientes geralmente chamada de núcleo do filtro. Algumas coisas sofisticadas e úteis podem ser feitas com esse tipo de filtro, tornando-se criativo com os coeficientes. Esse é um tópico em si que não vou abordar agora. No entanto, como um trecho finito da entrada é armazenado na memória, qualquer parte do sinal de entrada só pode afetar a saída por um tempo finito. Depois que uma amostra de entrada é deslocada para o final do snippet armazenado, ela desaparece e não tem mais efeito na saída.

Existem livros inteiros escritos sobre esse material e você pode passar vários semestres de cursos universitários aprofundando-se nisso. Espero que minha visão geral de 30 segundos desmistifique isso o suficiente para responder à sua pergunta.


1

Um ponto ainda não mencionado é que os filtros IIR podem ser subdivididos em dois estilos: aqueles em que os estágios podem ser classificados, de modo que cada estágio seja inteiramente dependente de seu próprio valor anterior e dos valores dos estágios anteriores, e aqueles em que os os estágios não podem ser classificados (porque dois ou mais estágios dependem um do outro). É possível que os estágios em um filtro FIR façam referência às saídas anteriores de outros estágios, desde que possam ser classificados como no estilo anterior do IIR, e nenhum estágio se refere à sua própria saída anterior.

Se os estágios em um filtro IIR puderem ser classificados e se a magnitude total dos coeficientes de auto-feedback para um determinado estágio for menor que um, é garantido que o filtro IIR seja estável. Se, por exemplo, um estágio incluir alguma quantidade de sinal dos estágios anteriores, mais a metade do valor anterior desse estágio e 1/4 do valor anterior, menos 1/8 do valor anterior, a magnitude total da auto- o feedback será 7/8; portanto, na ausência de mais entradas de estágios inferiores, a magnitude da contribuição do auto-feedback diminuiria em 12,5% a cada iteração.


0

Um FIR faz sua matemática em um número finito de elementos, digamos 32 ou 12 ou algum número, mas é isso que a matemática faz, pega um número finito de elementos e executa o filtro apenas neles.

Um IIR faz suas contas em todas as amostras que você o alimenta. Se você alimentá-lo com 10 amostras e pará-lo, funcionou em 10 amostras; se você alimentá-lo com 1.000.000.000 de amostras, a matemática operou com 1.000.000.000 de amostras. E se você deixar a coisa funcionando indefinidamente, se aproximando do infinito (deixe correr para sempre), o número de elementos da mesma forma é indefinido se aproximando do infinito. Como a palavra finito se aplica claramente ao outro modelo, e o modelo IIR pretende não ter um número finito de amostras, a palavra infinito como o oposto ao finito soa melhor do que indefinido ou alguma outra palavra desse tipo.


"operado em 1.000.000.000 de amostras". Bem, não diretamente. Como parte da saída é usada no cálculo para a próxima amostra, sempre haverá vestígios das amostras anteriores. O filtro sempre manterá um número muito limitado de amostras. E não é "indefinido"; é determinístico, mesmo que seja instável.
stevenvh

isso é o que eu estava sugerindo que cada amostra tem alguns efeitos pequenos de todas as amostras que a precederam, para o IIR.
old_timer

O número infinito vs finito de elementos no cálculo não é a diferença entre IIR e FIR. O IIR mais simples funciona em apenas 2 elementos de dados: 1 da entrada, 1 da saída.
Radagast

O infinito não é do número de entradas, mas do número de ciclos acumulados; o finito leva apenas N número de amostras para uma única entrada na matemática; o infinito opera efetivamente em todos os ciclos. Número finito de ciclos vs número infinito de ciclos para uma única entrada.
Novidade
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.