Qual è il modo migliore per trattare i coefficienti del filtro? - pagina 2

 

Oggi un nostro amico bandito ha condiviso su Skype un link all'analogico gratuito di Matlab http://www.scilab.org/

Dovrò vedere di cosa si tratta.

Comunque, durante l'installazione dice che usa le librerie Intel (la libreria Intel MKL è libera già da un anno), che è una buona notizia.

-----------

Se durante le fasi di installazione del software, si sceglie di selezionare l'Intel MKL

e/o la libreria FFTW3 fornita nella libreria Intel MKL, il

l'installazione e l'uso della libreria Intel MKL sono soggetti all'EULA di Intel [1].

a cui lei accetta di essere vincolato.

Home - Scilab
Home - Scilab
  • Scilab Enterprises
  • www.scilab.org
Scilab Official Website
 
Timur Gatin:

Un generatore di metodi digitali?

In generale, sono a favore di un filtro per il lavandino della finestra.


Utilizza le DLL di intel e il pacchetto lapack. A proposito, solo per la seconda volta nella mia vita ho visto un dll che viene fatto entrare nel kodobase! Dopo tutto, gli MK sono sempre stati contrari a questi passi potenzialmente pericolosi.

Forse faranno entrare anche me? C'è un sacco di roba interessante in lavorazione.

 
Quante di queste probabilità ci sono? Sarebbe bene vederli tutti, cioè l'opzione 1 (testuale). Anche le opzioni 2 e 5 sarebbero utili
 

Non capisco bene i coefficienti del filtro. I coefficienti dei filtri, a partire dal 2° ordine, sono dipendenti in modo non lineare dalla frequenza di taglio, o se volete, dal periodo di attenuazione.

Se date coefficienti specifici, significa per alcune frequenze specifiche (periodi)? Ho capito bene?

 
Alexey Volchanskiy:

Oggi un nostro amico bandito ha condiviso su Skype un link all'analogico gratuito di Matlab http://www.scilab.org/

Dovrò vedere di cosa si tratta.

Comunque, quando lo si installa, dice che usa le librerie Intel (la libreria Intel MKL è libera già da un anno), il che è buono.

È roba buona - un analogo gratuito di MathLab. È anche per lo più compatibile, cioè i programmi MathLab vanno in SciLab e viceversa. Non l'ho provato, ma è quello che dichiara.

Influenzato da Sanych, ho iniziato con R, ma non mi si addice molto in generale, così alla fine sono arrivato a SciLab. Inizialmente è stato progettato per elaborare segnali per compiti di ingegneria radio, ed è un po' più vicino a me). E anche le statistiche in SciLab sono sufficienti.

 
Yuriy Asaulenko:

Non capisco bene i coefficienti del filtro. I coefficienti dei filtri, a partire dal 2° ordine, sono dipendenti in modo non lineare dalla frequenza di taglio, o se volete, dal periodo di attenuazione.

Se date coefficienti specifici, significa per alcune frequenze specifiche (periodi)? Ho capito bene?


Non proprio. Se prendete delle frequenze reali per i calcoli, e impostate la larghezza di banda in Hz, sarà comunque convertita in una frequenza normalizzata da 0 a 1. E questa frequenza normalizzata non dipende più dalla frequenza di campionamento, né dai valori reali in Hz.

L'esempio reale per il commercio è una frequenza di campionamento di 4Hz, cioè il timer funziona con un periodo di 250ms. La larghezza di banda del filtro passa basso LPF (analogo del muving) è di 0,04-0,4 Hz. Convertire tutto in frequenza normalizzata, basta dividere tutte le frequenze per la frequenza di campionamento, si ottiene una larghezza di banda di 0,01-0,1.

I coefficienti sono così

double coeff[77] = {
0.0020403288714222, 0.0009819655397928, 0.0011225519005867, 0.0011964370038970, 0.0011779675029415, 0.0010436596580495, 
0.0007732498419909, 0.0003535344421556, -0.0002219434905004, -0.0009469112562786, -0.0018062225251740, -0.0027691214309082, 
-0.0037944927090922, -0.0048248454791543, -0.0057936459361424, -0.0066213616961954, -0.0072249511520868, -0.0075155986002137, 
-0.0074086882831938, -0.0068221975313534, -0.0056865034528597, -0.0039448978330095, -0.0015624214733406, 0.0014713627928496, 
0.0051450870992394, 0.0094188377587497, 0.0142247666794483, 0.0194626330409670, 0.0250204215515161, 0.0307523534113099, 
0.0365038435854891, 0.0421106663853138, 0.0474013760205897, 0.0522124336902514, 0.0563870184354613, 0.0597902427400937, 
0.0623061126904552, 0.0638517409542778,
0.0643721286293195, // центр симметрии
 0.0638517409542778, 0.0623061126904552, 0.0597902427400937, 
0.0563870184354613, 0.0522124336902514, 0.0474013760205897, 0.0421106663853138, 0.0365038435854891, 0.0307523534113099, 
0.0250204215515161, 0.0194626330409670, 0.0142247666794483, 0.0094188377587497, 0.0051450870992394, 0.0014713627928496, 
-0.0015624214733406, -0.0039448978330095, -0.0056865034528597, -0.0068221975313534, -0.0074086882831938, -0.0075155986002137, 
-0.0072249511520868, -0.0066213616961954, -0.0057936459361424, -0.0048248454791543, -0.0037944927090922, -0.0027691214309082, 
-0.0018062225251740, -0.0009469112562786, -0.0002219434905004, 0.0003535344421556, 0.0007732498419909, 0.0010436596580495, 
0.0011779675029415, 0.0011964370038970, 0.0011225519005867, 0.0009819655397928, 0.0020403288714222};

Ed ecco un'immagine di esempio per tre filtri LF con diverse larghezze di banda, rispettivamente, diverse lunghezze.

abete3

EURUSD, 15.03.2017, frequenza di campionamento 2 Hz, soppressione 40 dB

 
Yuriy Asaulenko:

Se date coefficienti specifici, significa per alcune frequenze specifiche (periodi)? Ho capito bene?

Ora ho fatto un programma Matlab per me, che scrive un insieme di array di coefficienti in un file in formato doppio. I parametri degli array e la loro quantità possono essere impostati nei parametri.

E c'è una classe MQL che può leggere il set richiesto.

Questo è il modo in cui lo posterò. Inoltre completerò la classe per essere in grado di selezionare il set di coefficienti richiesto e scrivere su disco in forma binaria e testuale.

 
Yuriy Asaulenko:

È una buona cosa - un analogo gratuito di MatLab. È anche per lo più compatibile, cioè i programmi MatLab vanno in SciLab e viceversa. Non l'ho provato, ma è dichiarato così.

Influenzato da Sanych, ho iniziato con R, ma non mi si addice molto in generale, così alla fine sono arrivato a SciLab. Inizialmente è stato progettato per elaborare segnali per compiti di ingegneria radio, ed è un po' più vicino a me). E anche le statistiche in SciLab sono sufficienti.

Non ho familiarità con esso, perché non ce n'era bisogno. Beh, niente, lo studieremo rapidamente).
 
Alexey Volchanskiy:

Ora ho un programma Matlab per me, che scrive un insieme di array di coefficienti in un file in formato doppio. I parametri degli array e il loro numero possono essere impostati nei parametri.

E c'è una classe MQL che può leggere il set richiesto.

Questo è il modo in cui lo posterò. Inoltre, migliorerò la classe per essere in grado di selezionare il set di coefficienti richiesto e scriverli su disco in forma binaria e testuale.

Quindi, a giudicare dal numero di coefficienti, usate filtri FIR?

Io uso BIH - non ci sono molti coefficienti lì, ma dalla forma normalizzata la frequenza è più difficile da ricalcolare. Non si scalano così facilmente.

 
Alexey Volchanskiy:
Non lo conosco affatto, perché non ne ho avuto bisogno. Va bene, lo studieremo rapidamente).
Se sei in MathLab, non ci sono problemi. Almeno con le librerie comuni a entrambi. Ma se ha senso cambiare un pezzo di torta con un pezzo di torta, perché sono molto vicini nella funzionalità - non lo so.
Motivazione: