Bir uzunlukta sinyal var, 1000 örnek. Bu sinyali, orjinali ile aynı hızda örneklenen 5000 örneğe uzatmak istiyorum (yani, daha uzun süre örneklemeye devam edersem sinyalin ne olacağını tahmin etmek istiyorum). Sinyal, birlikte eklenen birkaç sinüzoidal bileşenden oluşur.
İlk önce bana gelen yöntem FFT'nin tamamını almak ve genişletmek oldu, ancak bu 1001 çerçevesinde çok güçlü bir süreksizlik bırakıyor. Ayrıca, sadece spektrumun tepeler yakınındaki kısmını kullanarak da düşündüm. sinyali biraz iyileştirmek, bana fazın doğru olacağının garanti edilmediği anlaşılıyor. Bu sinyali uzatmanın en iyi yöntemi nedir?
İşte istediğim şeyin ideal bir yöntemini gösteren bazı MATLAB kodları. Tabii ki, tam olarak 3 sinüzoidal bileşen olduğunu, ne de onların tam faz ve sıklığını bilmiyorum. İşlevin sürekli olduğundan emin olmak istiyorum, nokta 501'e geçerken bir sıçrama olmadığından,
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);
Temel olarak, yeşil çizgiyi göz önüne alındığında, mavi çizgiyi bulmak istiyorum.