FIR filters - page 14

 
ssd >> :

Sabluk, be a friend and give me this "adaptive filter" for my experiments.


So what are you going to do with this filter? You don't care what it adapts to, why or how?

 
begemot61 >> :

So what are you going to do with this filter? Don't you care what it adapts to, why or how?

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

In brief, ideally, the filter-indicator, according to my ideas, should independently

analyze the spectrum of historical data fed to its input and dynamically adapt/adjust

filtering characteristics depending on the spectral composition of the input signal.


In other words, these are the "weighting factors" in the formula of the linear digital filter


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

Here X is input time series, Y is output time series, A and B are sets of weights.


must adapt/adjust to the input signal spectrum.


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

These coefficients are stored in global array double NormCoef[] and are considered by Normalization().Normalization() uses functions FilterOrder(), Io(double x). You do not need functions PriceSelect(), FilterResponse(int index_of_bar) What global variables to leave you see for yourself. I count Normalization() once, during initialization. If you have an adaptive filter, Normalization() should be insidestart(). In this case, I would think about how to speed it up. Well, for example, I would reduce the calculation accuracy of the Bessel function Io(double x) by one digit. T.e double besselAccuracy=0.00001

 
begemot61 >> :

These coefficients are stored in global array double NormCoef[] and are considered by Normalization().Normalization() uses functions FilterOrder(), Io(double x). You do not need functions PriceSelect(), FilterResponse(int index_of_bar) What global variables to leave you see for yourself. I count Normalization() once, during initialization. If you have an adaptive filter, Normalization() should be insidestart(). In this case, I would think about how to speed it up. Well, for example, I would reduce the calculation accuracy of the Bessel function Io(double x) by one digit. T.e double besselAccuracy=0.00001.

Thanks! I just need to grab the FIR and run it in my design.

in other words use initializing part of filter as a generator

 

A question has arisen:

Should the filter readings on the different timeframes be consistent, when the filter parameters are changed accordingly? (e.g. H1 parameters = H4 parameters * 4 )

 
neoclassic >> :

A question has arisen:

Should the filter readings on the different timeframes be consistent, when the filter parameters are changed accordingly? (e.g. H1 parameters = H4 parameters * 4 )

The filter itself does not show anything. It processes the data that is fed to it as input. If the data is different, the result of processing is also different. Although the processing algorithm is the same

 

Hippo, does it make sense to vary the PassBandRipple parameter ?

why exactly is it set to 30?

 
sab1uk >> :

Hippo, does it make sense to vary the PassBandRipple parameter ?

why exactly 30 set?

The point is that the filter with the Kaiser implementation of the window function involves selecting the worst of 2 conditions-pulsation in the passband and suppression in the delay band. Since it cannot provide both conditions at the same time, one of the requirements turns out to be better than the actual requirement. Realistically, 20dB suppression corresponds to +/-0.83dB ripple, 40dB suppression corresponds to +/-0.086dB ripple. For my purposes these are quite small values. Therefore, I simply set the ripple in the bandwidth knowingly greater than any possible value and do not pay attention to it. Although the estimate is present in the code and can be used if necessary.

 

sab1uk, do I understand the bandpass filter principles correctly?

and another question: is it possible to bypass the filter order restrictions in the GCM (2500) ?

 
the BandPass is the differential between the two LPFs (LowPass) similar to how the bastard MACD is derived from the difference of the mashes
if you want an order of 2500+ filter or a cutoff period of 300+, use the Behemoth filter
but its filter is not suitable for all cases...
tried to do 1000 dB of damping or 0.000000000000001 dB of roll-off, but failed to achieve the same sharp resonance in the AFC as the oscillator filters