2013-03-18 4 views
0

У меня есть эти известные переменные:Как интерполировать вектор в Matlab?

T=3;    
t=0:0.01:5*T;  
om=2*pi/T;  
N=10;    
f0=100;   

где:

  • T = период,
  • t = переменная времени,
  • om = угловая частота,
  • N = число членов ряда,
  • f0 = начальная сила (сила)

И я создаю вектор ft используя сложный ряд Фурье, как это:

ft=zeros(size(t)); 
for j=1:2*N+1 
    n= j-(N+1);  
    if n==0 
     f(j)=f0/2; 
    else 
     f(j)=f0*((exp(-i*n*2*pi)*(i*2*pi*n+1)-1)/(4*pi^2*n^2)); 
    end 
    ft=ft+f(j)*exp(i*n*om*t); 
end 
plot(t,ft); 

Результат следующий пилообразный:

sawtooth wave

Хорошо, вектор ft сложный вопрос и мой вопрос: Как интерполировать вектор ft?

+0

И я думал, что линейная интерполяция :) – MrPitivier

ответ

2

Вы можете использовать interp1. Если t2 вектор, содержащий раз интерполяции, то:

ft2 = interp1(t, ft, t2); 

возвращает интерполированные точки в ft2.

+0

Глупый вопрос, я не понимаю - время интерполяции вектора t2? Извините :( – MrPitivier

+0

Я понял, извините: D И спасибо;) – MrPitivier