Eu tenho um sinal de algum comprimento, digamos 1000 amostras. Gostaria de estender esse sinal para 5000 amostras, amostradas na mesma taxa que o original (ou seja, quero prever qual seria o sinal se continuasse a amostrá-lo por um longo período de tempo). O sinal é composto por vários componentes sinusoidais somados.
O método que me veio pela primeira vez foi pegar a FFT inteira e estendê-la, mas isso deixa uma descontinuidade muito forte no quadro 1001. Também considerei usar apenas a parte do espectro perto dos picos, e enquanto isso parece melhorar um pouco o sinal, não me parece que a fase esteja correta. Qual é o melhor método para estender esse sinal?
Aqui está um código MATLAB mostrando um método idealizado do que eu quero. Obviamente, não saberei de antemão que existem exatamente três componentes sinusoidais, nem sua fase e frequência exatas. Quero garantir que a função seja contínua, que não haja um salto à medida que avançamos para o ponto 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);
Basicamente, dada a linha verde, quero encontrar a linha azul.