ฉันมีสัญญาณที่มีความยาวประมาณ 1,000 ตัวอย่าง ฉันต้องการขยายสัญญาณนี้เป็น 5,000 ตัวอย่างซึ่งเก็บตัวอย่างในอัตราเดียวกับต้นฉบับ (เช่นฉันต้องการทำนายว่าสัญญาณจะเป็นอย่างไรถ้าฉันยังคงทดลองต่อไปเป็นระยะเวลานานขึ้น) สัญญาณประกอบด้วยส่วนประกอบหลายรูปแบบที่เพิ่มเข้าด้วยกัน
วิธีที่ฉันเข้ามาครั้งแรกคือการใช้ FFT ทั้งหมดและขยายออก แต่นี่ทำให้ความไม่ต่อเนื่องที่แข็งแกร่งมากที่เฟรม 1001 ฉันยังพิจารณาเฉพาะการใช้คลื่นความถี่ใกล้กับยอดเขาและในขณะนี้ ปรับปรุงสัญญาณค่อนข้างดีสำหรับฉันดูเหมือนว่าเฟสจะรับประกันว่าถูกต้อง วิธีที่ดีที่สุดในการขยายสัญญาณนี้คืออะไร?
นี่คือรหัส MATLAB บางส่วนที่แสดงวิธีการในอุดมคติของสิ่งที่ฉันต้องการ แน่นอนว่าฉันจะไม่ทราบล่วงหน้าว่ามีองค์ประกอบของซายน์ 3 อย่างแน่นอนไม่ว่าจะเป็นเฟสและความถี่ที่แน่นอน ฉันต้องการตรวจสอบให้แน่ใจว่าฟังก์ชั่นนั้นต่อเนื่องไม่มีการกระโดดเมื่อเราเลื่อนไปที่จุด 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);
โดยพื้นฐานแล้วที่เส้นสีเขียวฉันต้องการหาเส้นสีฟ้า