gpt4 book ai didi

c# - C# 中的低通滤波器泛化

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:47:37 24 4
gpt4 key购买 nike

假设我有一个包含三个随机数 x ->200...300, y->100...150 的 c# 列表> 和 z->100..300 作为元素作为条目,类似于 rows=200 和 cols=3

x   y   z 
210 106 220
200 120 134
220 150 230
280 120 136
204 110 270
260 120 184
209 110 209
210 110 134
...

我读到低通滤波器只是对结果进行平滑以去除高频。最简单的低通滤波器是盒式滤波器,它通过对 n 个样本进行平均来完成。要将 2 个样本平均在一起,这很简单:

sample[n] (sample[n] + sample[n + 1]) / 2;

那么,我将如何对这些数据应用低通滤波器?

我需要为矩阵上的每个单元格应用 sample[n] (sample[n] + sample[n + 1])/2; 还是要做什么?

我读到低通和高通滤波器“取消”或将高于/低于阈值的频率归零,但在这种情况下,获得阈值的最佳方法是什么,我不明白......

能否解释一下如何对数据集应用低通滤波器?

最佳答案

A moving average M 个数据点是简单但相当粗糙的低通滤波器,平滑 数据。对于每个输出数据点,您取 N 个输入点的平均值,例如对于 N = 3:

for (i = 1; i < N - 1; ++i)
{
output[i] = (input[i - 1] + input[i] + input[i + 1]) / 3;
}

随着 M 的增加,您会获得更多的平滑度(因为您对更多的点进行平均)- 另一种看待这个问题的方式是,更多的数据高频分量(通常是噪声)被移除。

请注意,这种移动平均滤波器的频率响应相当差 - 它适用于一些相当简单的任务,例如过滤股票价格等时间序列数据中的噪声,但对于要求更高的应用,我们通常使用更复杂的过滤器设计。

A high pass filter是低通滤波器的补充,因为它滤除低频分量。这包括“稳态”(0 Hz) 分量,因此输出通常表示输入的短期变化。

一个非常粗糙的高通滤波器:

for (i = 1; i < N ; ++i)
{
output[i] = input[i] - input[i - 1];
}

关于c# - C# 中的低通滤波器泛化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18910052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com