Ich habe ein Signal von einiger Länge, sagen wir 1000 Samples. Ich möchte dieses Signal auf 5000 Samples erweitern, die mit der gleichen Rate wie das Original abgetastet wurden (dh ich möchte vorhersagen, wie das Signal aussehen würde, wenn ich es für einen längeren Zeitraum weiter abtasten würde). Das Signal setzt sich aus mehreren Sinuskomponenten zusammen.
Die Methode, die mir zuerst einfiel, war, die gesamte FFT zu nehmen und zu erweitern, aber dies hinterlässt eine sehr starke Diskontinuität bei Frame 1001. Ich habe auch in Betracht gezogen, nur den Teil des Spektrums in der Nähe der Peaks zu verwenden, und dies scheint zu sein verbessern Sie das Signal ein wenig, es scheint mir nicht, dass die Phase garantiert korrekt ist. Was ist die beste Methode, um dieses Signal zu verlängern?
Hier ist ein MATLAB-Code, der eine idealisierte Methode für das zeigt, was ich will. Natürlich werde ich vorher nicht wissen, dass es genau 3 sinusförmige Komponenten gibt, noch deren genaue Phase und Frequenz. Ich möchte sicherstellen, dass die Funktion kontinuierlich ist, dass es keinen Sprung gibt, wenn wir zu Punkt 501 gehen.
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);
Grundsätzlich möchte ich bei der grünen Linie die blaue Linie finden.