【问题标题】:Resampling signal to get N amount of points from signal重新采样信号以从信号中获取 N 个点
【发布时间】:2020-04-13 22:07:50
【问题描述】:

我有一个信号,我想从中获得 n 个等距点。

我正在考虑使用 resample 作为一种方法来执行此操作,但我不确定要使用的正确值。

示例:我有一个以 8000 Hz 采样的正弦波信号,但我只想从信号中获得 4 个等距点。

fs=8000
len_of_sig=1.0; %length of signal in seconds
t=linspace(0,len_of_sig,fs*len_of_sig);
y=1*sin(1*(2*pi)*t);

spaced_points=resample(y,)

我不确定如何计算正确的值来获得 n 个等距点(如 4,5,6...点)

有什么想法吗?我真的不需要使用resample,我只是认为那会是最快的。

我在 Ubuntu 64 位上使用 Octave 4.2.2。

【问题讨论】:

    标签: signal-processing octave resampling


    【解决方案1】:

    resample 函数的文档除了重采样因子本身不需要任何东西:

    y = resample (x, p, q, h)

    将 x 的采样率更改为 p/q 倍。这是使用多相算法执行的。抗混叠滤波器的脉冲响应 h 要么指定,要么使用 Kaiser 窗正弦卡设计。

    假设你有变量ndesired_samples,它指定了你最终想要多少个样本。让nsamp = fs*len_of_sig.

    重采样因子由ndesired_samples/nsamp 给出,因此p 是所需样本数,q 是总样本数。注意resample divides p and q by their GCD internally

    注意由多相结构和 Kaiser 插值窗口引起的问题。 IIRC 如果 pq 在 GCD 之后最终变大(即将 10000 个样本重新采样到 8000 个样本是可以的,将 10000 个点重新采样到 8001 值得进一步谨慎),那么 IIRC 尤其糟糕。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      • 1970-01-01
      • 1970-01-01
      • 2018-05-27
      • 1970-01-01
      • 2019-04-20
      • 2011-11-10
      相关资源
      最近更新 更多