Saya memiliki sinyal yang panjang, katakanlah 1000 sampel. Saya ingin memperluas sinyal ini ke 5000 sampel, sampel pada tingkat yang sama dengan aslinya (yaitu, saya ingin memprediksi apa sinyal jika saya terus sampel itu untuk periode waktu yang lebih lama). Sinyal terdiri dari beberapa komponen sinusoidal yang ditambahkan bersama-sama.
Metode yang pertama kali datang kepada saya adalah untuk mengambil seluruh FFT, dan memperpanjangnya, tetapi ini meninggalkan diskontinuitas yang sangat kuat pada frame 1001. Saya juga dianggap hanya menggunakan bagian spektrum dekat puncak, dan sementara ini tampaknya agak meningkatkan sinyal, bagi saya sepertinya fase dijamin tidak benar. Apa metode terbaik untuk memperluas sinyal ini?
Berikut adalah beberapa kode MATLAB yang menunjukkan metode ideal dari apa yang saya inginkan. Tentu saja, saya tidak akan tahu sebelumnya bahwa ada 3 komponen sinusoidal, atau fase dan frekuensi yang tepat. Saya ingin memastikan bahwa fungsinya kontinu, bahwa tidak ada lompatan saat kita bergerak ke titik 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);
Pada dasarnya, diberi garis hijau, saya ingin menemukan garis biru.