“重新采样”以具有相同大小的信号

时间:2018-08-17 13:42:13

标签: matlab size signals interpolation resampling

我有4个(2个速率和2次)信号,我需要均衡它们的大小。我首先切断它们,因为我也需要它。第一次和速率信号的大小是3901,另一个是830。但我不仅要删除元素,还希望保持曲线。我以为我需要插值并尝试“重采样”,但这并不完美。看起来像照片。我应该如何改善我的密码?有想法吗?

InitializeComponent();

enter image description here

1 个答案:

答案 0 :(得分:0)

我想您的曲线有些不匹配是由于这样的事实,即原始序列在向量结尾处不(接近)0。从Matlab resample documentation

  

在过滤时,重采样假定输入序列x在给出采样之前和之后为零。在x的端点处与零的较大偏差会导致y出现意外值。

最佳选择是什么,取决于您下一步要做什么。如果您想要一个新的上采样版本(即两个长度均为3901的信号),则可以查看interp1,它支持几种不同的方法。如果选择执行此操作,请记住,y(t)中的值将根据您提供的t的值进行插值。由于您的时间数组似乎没有对齐(一个在9.6到13秒之间,另一个在26到30秒之间),因此最好按照以下方式进行操作:

y_new = interp1( linspace(1,100,830), rate_p, linspace(1,100,3901), 'linear');

与时间数组相同。