【问题标题】:How to implement Matlab's "rate transition" (in C#)如何实现 Matlab 的“速率转换”(在 C# 中)
【发布时间】:2013-03-30 11:02:11
【问题描述】:

我有一个以 10 000 Hz 的速率采样的信号,我需要将其重新采样到 4 000 Hz。在 MATLAB 中,我使用具有三个简单块的 simulink 模型:“From Workspace”,具有指定的采样时间(0.0001 s)->“Rate Transition”,指定的输出采样时间为 0.00025 s ->“To Workspace”来保存输出数据。 (一个速率转换块,我看到“No Op”)。

我认为可以使用诸如“interp1”之类的 Matlab 函数来插入数据,但没有运气。我已经尝试了所有方法,但我仍然不知道如何实现“速率转换”具有的相同功能。

我需要用 C# 编写这个数据重采样,我的问题是:这个 simulink 的底层算法是什么,将数据从一个采样频率移植到另一个采样频率?或者怎样才能得到我需要的效果?

谢谢, 关卡

【问题讨论】:

  • 这取决于你是否需要插值。如果没有,您可以从 10kHz 矩阵中取出等距样本并将它们放入 4kHz 矩阵中。
  • 假设我不需要插值。那么我该怎么做呢?

标签: c# matlab simulink resampling


【解决方案1】:

Rate Transition 块似乎没有进行任何插值。当输入中的采样频率高于输出中的采样频率时,它的行为类似于零阶保持。因此,你可以试试这个:

% Sampling frequency
Fs1 = 10e3;
Fs2 = 4e3;

% Load your data
y = load('yourdata'); %y=sin(0:1/Fs1:1);
Ttime = (length(y)-1)*(1/Fs1);

% X-Axis
x  = 0:1/Fs1:Ttime;
xi = 0:1/Fs2:Ttime;

% Zero-order hold
yi = zeros(length(xi),1);
jj = 1;
xi(1) = x(1);
for ii=2:length(y)
    % Update value
    if (x(ii)>=xi(jj)),
        yi(jj) = y(ii-1);
        jj = jj+1;
    end
end

% Plot
figure
hold on
scatter(x,y,'b');
scatter(xi,yi,'r');
hold off
legend('Fs=10k','Fs=4k')

对前面代码的唯一修改是从零阶保持估计 yi(y 轴插值)。

【讨论】:

  • 就是这样。非常感谢!!
【解决方案2】:

你可以这样插值:

% Sampling frequency
Fs1 = 10e3;
Fs2 = 4e3;

% Load your data
y = load('yourdata'); %y=sin(0:1/Fs1:1);
Ttime = (length(y)-1)*(1/Fs1);

% X-Axis
x  = 0:1/Fs1:Ttime;
xi = 0:1/Fs2:Ttime;

% Interpolate
method = 'cubic';
yi = interp1(x,y,xi,method);

% Plot
figure
hold on
scatter(x,y,'b');
scatter(xi,yi,'r');
hold off
legend('Fs=10k','Fs=4k')

主要步骤是执行一维插值的“interp1”。

【讨论】:

  • 不。这是我尝试的第一件事,但输出向量不同。我可以提供一个 simulink 模型和我的数据。
  • 在不知道“速率转换”实际上做了什么的情况下,这可能是你能做的最好的事情,应该是完全足够的。 Mathworks 网站 (mathworks.com/help/simulink/slref/ratetransition.html) 上的文档并不是特别有启发性。
  • 嗯,我知道...但是我有一个算法可以对重采样数据进行操作,当我从“速率转换”重采样方法切换到 interp1 时,它的准确性会下降。
  • 您使用哪种插值方法(例如,最近、线性、样条)?
猜你喜欢
  • 2010-11-16
  • 1970-01-01
  • 2022-08-22
  • 2020-10-04
  • 2018-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-23
相关资源
最近更新 更多