Tengo una señal de cierta longitud, digamos 1000 muestras. Me gustaría extender esta señal a 5000 muestras, muestreadas a la misma velocidad que la original (es decir, quiero predecir cuál sería la señal si continuara muestreando durante un período de tiempo más largo). La señal se compone de varios componentes sinusoidales sumados.
El método que se me ocurrió por primera vez fue tomar la FFT completa y extenderla, pero esto deja una discontinuidad muy fuerte en el cuadro 1001. También he considerado usar solo la parte del espectro cerca de los picos, y aunque esto parece mejorar la señal un poco, no me parece que la fase esté garantizada para ser correcta. ¿Cuál es el mejor método para extender esta señal?
Aquí hay un código MATLAB que muestra un método idealizado de lo que quiero. Por supuesto, no sabré de antemano que hay exactamente 3 componentes sinusoidales, ni su fase y frecuencia exactas. Quiero asegurarme de que la función es continua, que no hay un salto a medida que avanzamos al punto 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);
Básicamente, dada la línea verde, quiero encontrar la línea azul.