ある程度の長さの信号、たとえば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);
基本的に、緑の線が与えられたら、青の線を見つけたいです。