处理滤波器系数的最佳方式是什么? - 页 2

 

今天,我们的一个被禁止的朋友在Skype上分享了一个免费的Matlab模拟软件的链接http://www.scilab.org/

我得看看它是什么。

总之,在安装过程中,它说它使用了英特尔库(英特尔MKL库已经免费一年了),这是个好消息。

-----------

如果在软件安装步骤中,你选择选择英特尔MKL

英特尔MKL库中提供的FFTW3库和/或FFTW3库,。

安装和使用英特尔MKL库需要遵守英特尔的EULA[1]。

然后你同意接受其约束。

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

一个数字方法发生器

一般来说,我都支持窗式水槽过滤器。


它使用英特尔和lapack软件包的dlls。顺便说一句,这是我有生以来第二次看到一个Dll被放进kodobase!毕竟,MKs一直反对这种潜在的不安全步骤。

也许他们也会让我进去?有很多有趣的东西在工作中。

 
这种几率有多少?如果能看到他们全部,即选项1(文本),那就好了。另外,选项2和5也会有帮助
 

我不太理解滤波器系数的问题。滤波器的系数,从二阶开始,非线性地依赖于截止频率,或者如果你愿意,平滑周期。

如果你给出具体的系数,是否意味着对一些特定的频率(周期)?我的理解是否正确?

 
Alexey Volchanskiy:

今天,我们的一个被禁止的朋友在Skype上分享了一个免费的Matlab模拟软件的链接http://www.scilab.org/

我得看看它是什么。

总之,在安装时,它说它使用了英特尔库(英特尔MKL库已经免费一年了),这很好。

这是好东西--MathLab的免费类似物。它甚至大部分是兼容的,即MathLab的程序可以进入SciLab,反之亦然。我没有试过,但这是它所宣称的。

受桑尼茨的影响,我开始使用R,但一般来说它不太适合我,所以最后我来到了SciLab。最初,它是为处理无线电工程任务的信号而设计的,它离我有点近)。而SciLab中的统计数据也是相当充分的。

 
Yuriy Asaulenko:

我不太理解滤波器系数的问题。滤波器的系数,从二阶开始,非线性地依赖于截止频率,或者如果你愿意,平滑周期。

如果你给出具体的系数,是否意味着对一些特定的频率(周期)?我的理解是否正确?


并非如此。如果你采取实数频率进行计算,并以Hz为单位设置带宽,它仍然会被转换为0到1的归一化频率。而这个归一化频率不再取决于采样率,也不再取决于Hz的实数值。

交易的真实例子是采样率为4Hz,即定时器的运行周期为250ms。低通滤波器LPF(类似于muving)的带宽为0.04-0.4Hz。将所有的东西转换成归一化的频率,只要将所有的频率除以采样频率,我们就可以得到0.01-0.1的带宽。

系数看起来像这样

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

而这里有一个例子图片,是三个不同带宽的低频滤波器,分别是不同长度的。

枞树3

欧元兑美元,2017年3月15日,采样率2赫兹,抑制率40分贝

 
Yuriy Asaulenko:

如果你给出具体的系数,是否意味着对一些特定的频率(周期)?我的理解是否正确?

我现在为自己做了一个Matlab程序,将一组双倍格式的系数数组写入一个文件中。数组的参数和它们的数量可以在参数中设置。

而且有一个MQL类,可以读取所需的集合。

我将以这种方式发布。另外,我将完成这门课,能够选择所需的系数集并以二进制和文本形式写入磁盘。

 
Yuriy Asaulenko:

这是一个好东西--MatLab的免费类似物。它甚至大部分是兼容的,即MatLab程序可以进入SciLab,反之亦然。我没有试过,但据说是这样。

受桑尼茨的影响,我开始使用R,但一般来说它不太适合我,所以最后我来到了SciLab。最初,它是为处理无线电工程任务的信号而设计的,它离我有点近)。而SciLab中的统计数据也是相当充分的。

我对它不熟悉,因为没有必要。嗯,没什么,我们会迅速研究的)。
 
Alexey Volchanskiy:

我现在为自己准备了一个Matlab程序,将一组系数数组写入一个双倍格式的文件中。数组的参数和它们的数量可以在参数中设置。

而且有一个MQL类,可以读取所需的集合。

我将以这种方式发布。此外,我将改进这个班级,使其能够选择所需的系数集,并以二进制和文本形式将其写入磁盘。

那么,从系数的数量上看,你使用的是FIR滤波器?

我使用BIH--那里的系数不多,但从归一化的形式来看,频率更难重新计算。他们的规模并不那么容易。

 
Alexey Volchanskiy:
我对它一点也不熟悉,因为我还不需要。没关系,我们很快就会研究)。
如果你在MathLab中,就没有问题了。至少有了两者共同的图书馆。但是,把一块蛋糕换成另一块蛋糕是否有意义,因为它们在功能上非常接近--我不知道。