- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用 Math.Net.Numerics 首先用正弦波填充数组,然后使用 Math.Net.Filtering 创建带通来过滤数据,如下所示:
void Main()
{
double[] preProcessedData = new double[128];
double[] postProcessedData = new double[128];
//Generate sinewave (350Hz, 250 samples)
preProcessedData = MathNet.Numerics.Generate.Sinusoidal(250, 44100, 350, 20);
postProcessedData = preProcessedData;
MathNet.Filtering.OnlineFilter bandPass = MathNet.Filtering.OnlineFilter.CreateBandpass(MathNet.Filtering.ImpulseResponse.Finite, 44100, 390, 410);
bandPass.ProcessSamples(postProcessedData);
//LINQPad extensions
preProcessedData.Dump();
postProcessedData.Dump();
}
但是,这似乎根本没有过滤样本,如此处可见(相同):
Unfiltered Filtered
1.139189962 1.139189962
2.274680952 2.274680952
3.402786006 3.402786006
4.519842146 4.519842146
5.622222267 5.622222267
6.706346918 6.706346918
7.768695925 7.768695925
8.80581982 8.80581982
9.81435104 9.81435104
10.79101486 10.79101486
11.73264004 11.73264004
12.6361691 12.6361691
13.49866827 13.49866827
14.31733699 14.31733699
15.08951702 15.08951702
15.81270108 15.81270108
16.48454099 16.48454099
17.10285526 17.10285526
我做错了什么?该库的可用文档似乎还不是很完整,所以我没有从那里学到很多东西。
最佳答案
ProcessSamples
方法似乎没有修改输入数组,而是返回一个新的过滤数组。你需要:
postProcessedData = bandPass.ProcessSamples(preProcessedData);
(这是 documentation 。)
顺便说一下,您代码中的这一行:
postProcessedData = preProcessedData;
可能不会按照您的想法行事。它不会复制数据;它只是将 postProcessedData
指向 preProcessedData
指向的同一个数组。因此,如果 ProcessSamples
did 修改了输入数组,则 preProcessedData
和 postProcessedData
将在处理后相等。
关于c# - MathNet.Filter 不过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30311521/
我正在尝试使用 MathNumerics 线性代数库在 .net 中实现逻辑回归。我需要实现以下等式,但不确定如何通过矩阵提高 e。 1.0 ./(1.0 + E .^ (-1 .* Z)) 其中 Z
我最近开始使用 MathNET 库,它很棒。我正在大量使用矩阵和向量。该库运行良好,但我发现我必须一直使用转换;这方面的一个例子是: using MathNet.Numerics.LinearAlge
我正在做一个需要在其中使用线性代数方法的项目。我决定使用 MathNet Numerics 库,我想将矩阵乘以向量。我在 MathNet 中找不到可以执行此操作的函数。如何将矩阵乘以向量? 最佳答案
我想使用 MathNet.numerics for csharp 创建自定义优化矩阵运算(基于我对正在使用的稀疏矩阵的了解的智能克罗内克产品)。 是否有一个访问器来获取稀疏矩阵的非零元素? (或索引?
我正在尝试使用 MathNet 滤波器对信号应用带通滤波器;准确地说,我正在使用 MathNet.Filtering.OnlineFiter.CreateBandpass(..) 方法。 问题是,我没
在 C# 中使用 MathNet 查找最大矩阵元素的最佳(可读且快速)方法是什么?这是我的方式: int size = 4; var matrix = Matrix.Build.Dense(size,
我有一个 IEnumerable数据样本。我想计算信号/数据的 90% 置信区间。我有 MathNET library由我支配,但我对如何正确使用图书馆感到困惑。鉴于我的数据,我的想法是返回两个包含原
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
从 MathNet 测试 FFT 时遇到一些问题:这个想法是,如果我将 FFT 应用于高斯变量的特征函数,我应该找到高斯密度函数。 当我绘制 VectorFFT 时,该图看起来确实是一个密度函数,但在
我使用 Math.Net.Numerics 首先用正弦波填充数组,然后使用 Math.Net.Filtering 创建带通来过滤数据,如下所示: void Main() { double[]
为什么我从 GoodnessOfFit.StandardError 得到错误的答案 (err2)?在下面的代码中,我自己进行计算并得到正确的答案 (err3)。我从 GoodnessOfFit.RSq
我使用 MathNet Numerics 的 Evd<> 类来获取矩阵的特征向量,但结果是 Vector 类型我无法将其转换为 Vector ,这就是我的操作所需要的。 这就是我得到特征向量的方法:
我正在使用 MathNet Symbolics 来处理我正在处理的程序的符号代数部分。一般用途是创建一对符号公式,然后将这两个公式相除。这在大多数时候都很好用。然而,有时,它并不想做更复杂的简化。例如
我正在使用 MathNet.Symbolics 库来简化代数公式,例如 string f = Infix.Print(Infix.ParseOrThrow("L+H+L+H")) 我正确地得到了 f=
我正在编写一些使用 MathNet.Numerics.LinearAlgebra 的 C# 代码,并尝试将结果与教科书示例相匹配。代码的一部分对 complex32 数组“Ybus”进行了反转,并将其
我需要计算密集矩阵的奇异值分解,但它似乎不包含在我正在使用的包中:MathNet.Numerics x86 v2.4.0.26 从下载Nuget 包管理器。 我正在引用这个问题Svd recompos
我最近通过 NuGet 将 MathNet.Numerics 添加到我的 C# 解决方案中。解决方案文件夹中的包目录膨胀到大约 50 MB!但我可以简单地下载 MathNet dll 并仅使用它,它仅
我正在尝试使用 MathNet.Filter 将低通滤波器与 F# 一起使用,当我绘制结果时,结果不起作用。我在C#中发现了一些类似的问题,但是当我在F#中重现代码时,结果是错误的。 这是我使用 Ma
我有点卡在这里。 MathNet Numerics 的 Forward Fourier 结果似乎比 MATLAB 的结果少了一半。 WindowsPhone 8 上的 MathNet.Numerics
我是 MathNet 的新手,正在用 C#.Net 实现代码。 有一个向量: var X = new DenseVector(new double[] { 10, 20, 30, 40, 50, 60
我是一名优秀的程序员,十分优秀!