Filtros FIR - página 14

 
ssd >> :

Sabluk, seja um amigo e me dê este "filtro adaptativo" para minhas experiências.


Então, o que você vai fazer com este filtro? Você não se importa com o que ele se adapta, por que ou como?

 
begemot61 >> :

Então, o que você vai fazer com este filtro? Você não se importa com o que ele se adapta, por que ou como?

------------------------------------------------------------------------------------------------------

Em resumo, o ideal seria que o filtro-indicador, de acordo com minhas idéias, fosse independente

analisar o espectro de dados históricos alimentados à sua entrada e adaptar/ajustar dinamicamente

características de filtragem, dependendo da composição espectral do sinal de entrada.


Em outras palavras, estes são os "fatores de ponderação" na fórmula do filtro digital linear


Y[i] = B[0] X[i] + B[1] X[i-1] + .... - A[1] Y[i-1] - A[2] Y[i-2] - ....

Aqui X é a série temporal de entrada, Y é a série temporal de saída, A e B são conjuntos de pesos.


deve se adaptar/ajustar ao espectro do sinal de entrada.


 
sab1uk >>:
begemot61 подскажи как можно по простому конвертировать твой фильтр с определенными параметрами в импульсную характеристику и записать ее в файл или в массив из глобальных переменных?

Estes coeficientes são armazenados no array global duplo NormCoef[] e são considerados pela Normalização().Normalização() utiliza as funções FilterOrder(), Io(duplo x). Você não precisa das funções PriceSelect(), FilterResponse(int index_of_bar) O que variáveis globais para deixar você ver por si mesmo. Eu conto a Normalização() uma vez, durante a inicialização. Se você tiver um filtro adaptável, a Normalização() deve estar dentro dostart(). Neste caso, eu pensaria em como acelerar o processo. Bem, por exemplo, eu reduziria a precisão do cálculo da função Bessel Io(duplo x) em um dígito. T.e Double besselAccuracy=0,00001

 
begemot61 >> :

Estes coeficientes são armazenados no array global duplo NormCoef[] e são considerados pela Normalização().Normalização() utiliza as funções FilterOrder(), Io(duplo x). Você não precisa das funções PriceSelect(), FilterResponse(int index_of_bar) O que variáveis globais para deixar você ver por si mesmo. Eu conto a Normalização() uma vez, durante a inicialização. Se você tiver um filtro adaptável, a Normalização() deve estar dentro dostart(). Neste caso, eu pensaria em como acelerar o processo. Bem, por exemplo, eu reduziria a precisão do cálculo da função Bessel Io(duplo x) em um dígito. T.e Double besselAccuracy=0,00001

Obrigado! Só preciso pegar o FIR e executá-lo em meu projeto.

em outras palavras, utilizar a inicialização de parte do filtro como um gerador

 

Surgiu uma pergunta:

As leituras do filtro nos diferentes períodos de tempo devem ser consistentes, quando os parâmetros do filtro são alterados de acordo? (por exemplo, parâmetros H1 = parâmetros H4 * 4 )

 
neoclassic >> :

Surgiu uma pergunta:

As leituras do filtro nos diferentes períodos de tempo devem ser consistentes, quando os parâmetros do filtro são alterados de acordo? (por exemplo, parâmetros H1 = parâmetros H4 * 4 )

O filtro em si não mostra nada. Ele processa os dados que lhe são alimentados como entrada. Se os dados são diferentes, o resultado do processamento também é diferente. Embora o algoritmo de processamento seja o mesmo

 

Hipona, faz sentido variar o parâmetro PassBandRipple?

por que está ajustado exatamente para 30?

 
sab1uk >> :

Hipona, faz sentido variar o parâmetro PassBandRipple?

por que exatamente 30 conjuntos?

A questão é que o filtro com a implementação Kaiser da função de janela envolve a seleção da pior de 2 condições-pulsificação na banda de passe e supressão na banda de atraso. Uma vez que não pode fornecer ambas as condições ao mesmo tempo, uma das exigências acaba sendo melhor do que a necessidade real. Realisticamente, a supressão de 20dB corresponde a ondulação +/-0.83dB, a supressão de 40dB corresponde a ondulação +/-0.086dB. Para meus propósitos, estes são valores bastante pequenos. Portanto, eu simplesmente coloco a ondulação na largura de banda conscientemente maior do que qualquer valor possível e não presto atenção a ela. Embora a estimativa esteja presente no código e possa ser usada se necessário.

 

sab1uk, eu entendo corretamente os princípios do filtro passa-banda?

e outra pergunta: é possível contornar as restrições de ordem de filtro no GCM (2500) ?

 
o BandPass é o diferencial entre os dois LPFs (LowPass) semelhante ao modo como o bastardo MACD é derivado da diferença dos mashes
se você quiser um pedido de 2500+ filtro ou um período de corte de 300+, use o filtro Behemoth
mas seu filtro não é adequado para todos os casos...
tentou fazer 1000 dB de amortecimento ou 0,000000000000001 dB de roll-off, mas não conseguiu obter a mesma ressonância nítida no AFC que os filtros osciladores