Qual é a melhor maneira de lidar com os coeficientes do filtro? - página 2

 

Hoje um amigo nosso banido compartilhou no Skype um link para o analógico gratuito Matlab http://www.scilab.org/

Vou ter que ver o que é.

De qualquer forma, durante a instalação diz que utiliza bibliotecas Intel (a biblioteca Intel MKL já é gratuita há um ano), o que é uma boa notícia.

-----------

Se durante as etapas de instalação do software, você optar por selecionar a Intel MKL

biblioteca e/ou a biblioteca FFTW3 fornecida na biblioteca MKL da Intel, a

instalação e uso da biblioteca Intel MKL está sujeita ao EULA da Intel [1].

ao qual você então concorda em ficar vinculado.

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

Um gerador de métodos digitais?

Em geral, eu sou a favor de um filtro de pia de janela.


Utiliza dlls de pacote intel e lapack. A propósito, só pela segunda vez em minha vida vi um dll ser deixado na kodobase! Afinal, os MKs sempre foram contra tais medidas potencialmente inseguras.

Talvez eles me deixem entrar também? Há muitas coisas interessantes em andamento.

 
Quantas dessas probabilidades existem? Seria bom vê-los todos, ou seja, a opção 1 (textual). As opções 2 e 5 também seriam úteis
 

Eu não entendo bem os coeficientes de filtragem. Os coeficientes do filtro, a partir da 2ª ordem, não dependem linearmente da freqüência de corte, ou se você quiser, do período de suavização.

Se você der coeficientes específicos, isso significa para algumas freqüências específicas (períodos)? Eu entendo corretamente?

 
Alexey Volchanskiy:

Hoje um amigo nosso banido compartilhou no Skype um link para o analógico gratuito Matlab http://www.scilab.org/

Vou ter que ver o que é.

De qualquer forma, ao instalá-lo, ele diz que usa bibliotecas Intel (a biblioteca Intel MKL já é gratuita há um ano), o que é bom.

É um bom material - um análogo gratuito do MathLab. É até compatível em sua maioria, ou seja, os programas do MathLab vão para o SciLab e vice-versa. Ainda não tentei, mas é isso o que declara.

Influenciado pelo Sanych, comecei com R, mas isso não me convém muito bem em geral, então no final eu vim para o SciLab. Inicialmente foi projetado para processar sinais para tarefas de engenharia de rádio, e está um pouco mais próximo de mim). E as estatísticas no SciLab também são bastante suficientes.

 
Yuriy Asaulenko:

Eu não entendo bem os coeficientes de filtragem. Os coeficientes de filtragem, a partir da 2ª ordem, não dependem linearmente da freqüência de corte, ou se você quiser, do período de alisamento.

Se você der coeficientes específicos, isso significa para algumas freqüências específicas (períodos)? Eu entendo corretamente?


Nem por isso. Se você tomar frequências reais para os cálculos, e definir a largura de banda em Hz, ela ainda será convertida para uma frequência normalizada de 0 a 1. E esta frequência normalizada não depende mais da taxa de amostragem, nem dos valores reais em Hz.

O verdadeiro exemplo para negociação é uma taxa de amostragem de 4Hz, ou seja, o temporizador funciona com um período de 250ms. A largura de banda do filtro de baixa passagem LPF (analógico de muving) é de 0,04-0,4 Hz. Converta tudo em freqüência normalizada, basta dividir todas as freqüências pela freqüência de amostragem, obtemos uma largura de banda de 0,01-0,1.

Os coeficientes são parecidos com os seguintes

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};

E aqui está uma imagem de exemplo para três filtros LF com diferentes faixas de freqüência, respectivamente, comprimentos diferentes.

fir3

EURUSD, 15.03.2017, taxa de amostragem 2 Hz, supressão 40 dB

 
Yuriy Asaulenko:

Se você der coeficientes específicos, isso significa para algumas freqüências específicas (períodos)? Eu entendo corretamente?

Fiz agora um programa Matlab para mim, que escreve um conjunto de conjuntos de coeficientes em formato duplo em um arquivo. Os parâmetros das matrizes e sua quantidade podem ser definidos em parâmetros.

E há uma classe MQL que pode ler o conjunto necessário.

É assim que eu vou postar. Além disso, vou completar a classe para poder selecionar o conjunto de coeficientes necessários e escrever em disco em formato binário e de texto.

 
Yuriy Asaulenko:

É uma coisa boa - um análogo gratuito do MatLab. É até compatível em sua maioria, ou seja, os programas MatLab vão para o SciLab e vice-versa. Ainda não tentei, mas é declarado assim.

Influenciado pelo Sanych, comecei com R, mas isso não me convém muito bem em geral, então no final eu vim para o SciLab. Inicialmente foi projetado para processar sinais para tarefas de engenharia de rádio, e está um pouco mais próximo de mim). E as estatísticas no SciLab também são bastante suficientes.

Não estou familiarizado com isso, pois não havia necessidade. Bem, nada, vamos estudá-lo rapidamente).
 
Alexey Volchanskiy:

Agora tenho um programa Matlab para mim, que escreve um conjunto de conjuntos de coeficientes em um arquivo em formato duplo. Os parâmetros das matrizes e seu número podem ser definidos nos parâmetros.

E há uma classe MQL que pode ler o conjunto necessário.

É assim que eu vou postar. Além disso, vou melhorar a classe para poder selecionar o conjunto de coeficientes necessários e escrevê-los em disco em formato binário e de texto.

Então, a julgar pelo número de coeficientes, você usa filtros FIR?

Eu uso BIH - não há muitos coeficientes, mas da forma normalizada a freqüência é mais difícil de recalcular. Eles não escalam tão facilmente.

 
Alexey Volchanskiy:
Eu não estou nada familiarizado com isso, como não precisei fazer. Tudo bem, vamos estudá-lo rapidamente).
Se você estiver no MathLab, não há problema. Pelo menos com as bibliotecas comuns a ambos. Mas se faz sentido trocar um pedaço de bolo por um pedaço de bolo, porque eles estão muito próximos em funcionalidade - não sei.
Razão: