更好的是:上采样还是下采样?


13

我想比较两个信号或曲线。 以30 Hz采样的曲线 2000 Hz处的曲线采样

不幸的是,它们具有不同的采样率。第一个以30 Hz采样,第二个以2000 Hz采样。Matlab具有“重新采样”功能,我认为,这将使比较容易得多。

我的问题是:对第二条曲线进行降采样还是对第一条曲线进行采样更明智?

编辑: 我按照我的指示做。左图中是原始曲线。右边的曲线被重新采样。右上角被上采样,右下角被下采样。

我知道重新采样时曲线的长度不同。但是,第二个信号将被裁剪为第一个信号的长度。 比较


1
我支持你的问题。您认为哪个更明智。

如果非常高的精度无关紧要(在这种情况下,我认为这没有关系),则可以进行降采样,特别是如果它使处理过程更快并且您珍惜工作时间
user1306322

@Stanley Pawlukiewicz,很明显,我通过下采样丢失了所有小的峰。因此,提高采样率可能是必经之路。再说一次,我不需要那些小的山峰。我什至考虑过平滑第二个信号。因此,就我而言,采样或采样可能并不重要。
NelsonOrange

需要反馈和答案了吗?
Laurent Duval

Answers:


18

简而言之:

  • 升频:不会/不应该散布信息(如果明智的话),那么更安全
  • 下采样:可能会失去信息(如果做了不明智的),但更多的计算 效率

所以,如果你在不同速率的数据进行比较,并在评估阶段,当一个人试图定义如何比较应该做(这功能进行比较,用什么指标,用它的外部,如精密,高效,稳健性等),一最基本的第一种方法是通过整数因子对两个信号进行上采样以协调其采样。在这里,这是完全可以的,两者都可以工作6000 Hz。

对于DSP实践,原因可能是:

  • 使用整数上采样,您不必使用棘手的滤波技术,并且简单的线性插值很容易。请记住,虽然上采样会添加一些信息。
  • 如果信号的比例尺相同,则可以提取特征并进行比较:噪声,可变性,斜率,导数等。您可以应用正确的比例尺/偏移校正(幅度不相同),使用线性或非线性变换(Fourier等),以检查相似特征是否存在于不同域中
  • 在这一阶段,您应该能够对构建算法所需的功能/指标进行质量和量化。您可以估算出可以从这两个数据中删除的内容。例如,您可以创建自己的算法,并查看信号下采样的鲁棒性以及可以走多远。在这里,您的算法开始变得更加高效。

一旦花费了一些时间,您就可以再次从头开始,并决定是否应该降低采样率,采用哪种方法等以达到安全和高效的目的

作为替代方案,如果您决定在傅立叶域上比较数据,则可以轻松地将具有不同长度和采样率的两个信号转换为相同数量的傅立叶系数,以帮助在频域中进行比较。


14
即使不是以不明智的方式进行缩减采样,信息几乎总是会丢失。但是,丢失信息实际上可能是明智的选择,所以……
左右

@leftaroundabout在什么情况下缩减采样不会丢失信息?
威廉

2
@leftaroundabout我不同意。信息丢失总是比保留信息更糟糕。唯一明智的做法是知道要丢掉哪些信息以更好地表示信号,而不是信息丢失本身。
AlexTP

5
@Willem:在一个非常明显的情况下,可以将DC信号下采样为单个样本。通常,任何没有超过(新)奈奎斯特极限的分量的信号都可以安全地进行下采样。
MSalters

1
可以说,从DC信号到1个采样信号不会丢失任何信息,因为您可以从1个采样转换回与原始信号相同的信号。可以说信息丢失是因为,如果您将1个采样信号提供给没有更多信息的人,然后问“这代表直流信号吗?”。答案将是“不知道,一个样本没有足够的信息”。
匿名Co夫

7

如果您使用诸如plot(x,y)之类的函数,则将它们显示在同一图形上的最简单方法是根本不对它们中的任何一个进行重采样,而只需为每个x向量填充每个信号的适当值,因此两者都出现在您想要在显示器上显示。

如果需要,还可以将绘图设置为具有两个不同的x轴(每个曲线一个),并带有不同的标签和图例。

现在,关于重采样。我将使用Fs作为采样频率。

采样信号不能包含高于Fs / 2的频率分量。有带宽限制。

而且,仅包含频率高达F的频率分量的信号可以以2F的采样率准确表示。

注意,这种“准确”的表示是数学的,而不是视觉的。为了获得良好的视觉效果,每个周期有5-10个样本(因此没有明显的频率成分高于Fs / 10左右)确实有助于大脑连接各个点。参见该图:相同的信号,较低的曲线具有较低的采样率,没有信息丢失,因为频率低于Fs / 2,但仍然看起来像废话。

在此处输入图片说明

这是完全相同的信号。如果您使用Sinc过滤器在底部对一个进行过采样(重构),则会在顶部获得一个。

抽取(下采样)会将高于新Fs / 2的所有频率分量折返信号。这就是为什么我们通常在抽取器之前放置一个陡峭的低通滤波器。例如,要从Fs = 2000 Hz下采样到Fs = 30 Hz,首先,我们将应用截止频率低于15 hz的高阶低通,然后才进行衰减。

但是,此滤波器会引入瞬态响应问题,在某些频率上会有相位滞后,并且可能会改变信号的视觉外观,如果您想在视觉上进行比较,则不希望这样做。上面的规则适用,不要下采样太多,如果您希望信号形状有意义,请始终将Fs保持为感兴趣的最高频率的5-10倍。这就是为什么200MHz示波器需要以1-2 Gsps采样的原因。

我的问题是:对第二条曲线进行降采样还是对第一条曲线进行采样更明智?

如上所述,最明智的做法是完全不干扰数据,而只将它们各自的x轴呈现在同一张图表上。

在某些情况下,需要采样率转换。例如,减少点数,减少内存使用,使其更快...或使两个信号使用相同的“ x”坐标对它们执行计算。

在这种情况下,您还可以使用中间Fs,对具有高Fs的信号进行下采样,并对具有低Fs的信号进行上采样。或者只是对高Fs的像素进行降采样。

记住奈奎斯特准则,不要选择太低的采样率,否则将在高Fs信号上失去波形形状的保真度,由于低通滤波器等原因,您将获得相移。或者,如果您知道高频成分可以忽略不计,您可以做出明智的选择。一世

如果使用线性插值来使“ x”坐标匹配,请记住它也需要很高的Fs。插值将对上图中的顶部信号起作用,而对底部的信号将不起作用。如果您对最小,最大等感兴趣,则相同。

并且...请注意,过采样/过采样也至少在视觉上会干扰瞬态响应。例如,如果您对一个步骤进行过采样,则由于Sinc滤波器的脉冲响应,您会得到很多振铃。这是因为您得到了一个带限信号,而带有方形角的好台阶实际上具有无限的带宽。

我将以方波为例。考虑原始的采样信号:0 0 0 1 1 1 0 0 0 0 1 1 1 ...您的大脑看到一个方波。

但现实情况是,您应该将每个样本都描绘成一个点,而点之间没有任何东西。这就是采样的重点。样本之间没有任何东西。因此,当使用Sinc插值对该方波进行过采样时,它看起来很有趣。

在此处输入图片说明

这只是带限方波的视觉表示。摆动有点存在...也许不存在。无法知道它们是否存在于原始信号中。在这种情况下,解决方案将是以更高的采样率获取原始方波,以在边缘上获得更好的分辨率,理想情况下,您希望在边缘上获得多个采样,这样它看起来就不再需要无限带宽了。然后,在对此类信号进行过采样时,结果将不会出现视觉伪影。

无论如何。如您所见...只是将x轴弄乱了。这要简单得多。


4

下采样会丢失信息。当因子是整数时,上采样是无损的(您还记得因子),但是当因子不是整数时,一些信息会丢失。对于非常特定的重采样因素,理论上,上采样可能比下采样丢失更多的信息。

您应该使用哪一个?这取决于您所需的确定性水平。

如果您不需要数学上的确定性而只想进行启发式搜索,则下采样会更快,而上采样会更准确

如果您需要限制计算的准确性:可以,但我不能帮您。


+1,因为您设法在一个非常简洁的答案中压缩了一些重要的信息。
dsp_user

3

这取决于您所说的“比较”和“更明智”。明智的做法(在Matlab中并不难)是双向进行并自己决定。

实际上,如果您用两种方法的结果来修正您的问题,我都会赞成您的问题,更多的人会发现它很有趣,并且很可能会帮助您找出“比较”


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.