我有一个长度一定的信号,例如1000个样本。我想将此信号扩展到5000个采样,并以与原始采样率相同的速率采样(即,我想预测如果继续采样较长时间,信号将是什么)。信号由加在一起的几个正弦波分量组成。
我首先想到的方法是获取整个FFT,然后对其进行扩展,但这会在帧1001处留下非常强的不连续性。我还考虑过仅使用峰值附近的频谱部分,尽管这似乎可以在某种程度上改善信号,在我看来似乎并不能保证相位是正确的。扩展此信号的最佳方法是什么?
这是一些MATLAB代码,展示了我想要的理想方法。当然,我不会事先知道确切有3个正弦波分量,也没有确切的相位和频率。我要确保函数是连续的,在移至501点时没有跳跃,
vals = 1:50;
signal = 100+5*sin(vals/3.7+.3)+3*sin(vals/1.3+.1)+2*sin(vals/34.7+.7); % This is the measured signal
% Note, the real signal will have noise and not be known exactly.
output_vals = 1:200;
output_signal = 100+5*sin(output_vals/3.7+.3)+3*sin(output_vals/1.3+.1)+2*sin(output_vals/34.7+.7); % This is the output signal
figure;
plot(output_signal);
hold all;
plot(signal);
基本上,给定绿线,我想找到蓝线。