Wejścia do interp1
nie zawsze są tak trywialne, jak się wydaje - jeśli starają się zwiększyć częstotliwość próbkowania do określonej kwoty bez przesunięcie fazowe, a nie tylko zwiększenie liczby elementów podczas przypinania punktów końcowych. Żądasz tego ostatniego warunku, więc rozwiązanie zostało już zaksięgowane, ale myślę, że warto pokazać, jak kontrolować częstotliwość próbkowania.
Take doskonale poprawną odpowiedź Shai za zwiększenie liczby elementów bez względu na zmiany częstotliwości próbkowania, w tym przypadku:
v = [1 2 3 4 10]; % 1x5
newNum = 10; % double the number
X = linspace(0,1,numel(v));
Xi = linspace(0,1,newNum);
iv = interp1(X, v, Xi, 'linear')
To mówi chcemy zwiększyć liczbę elementów od 5 do 10 - - podwoić liczbę elementów - podczas przypinania punktów końcowych. Zdefiniowanie początkowej częstotliwości próbkowania dla v
na 1, a następnie jaka jest częstotliwość próbkowania iv
?
>> iv = interp1(linspace(0,1,numel(v)), v, linspace(0,1,newNum))
iv =
Columns 1 through 8
1.0000 1.4444 1.8889 2.3333 2.7778 3.2222 3.6667 4.6667
Columns 9 through 10
7.3333 10.0000
>> fs_v = X(2) - X(1) % even spacing
fs_v =
0.2500
>> fs_vi = Xi(2) - Xi(1)
fs_vi =
0.1111
>> fs_v/fs_vi
ans =
2.2500
Ponad dwa razy więcej. Tak, to oczywiste, kiedy o tym myślisz, ale zastanów się, czy tego właśnie chcesz. Końce przypięte są na iv(1)=1
i iv(end)=10
, ale nie określasz zmiany częstotliwości próbkowania.
Teraz powiedz, że chcesz dokładnie zwiększyć dwukrotnie częstotliwość próbkowania. Nie można dostać że i mieć końce przypięte na 1 i 10. Aby określić Xi
że dostaje odpowiednią zmianę częstotliwości próbkowania:
scale = numel(v)/newNum; % i.e. 0.5
X = 1:numel(v);
Xi = (1:newNum)*scale + 0.5 * (1 - scale); % centered
Końce nie zostanie przypięty, ale tempo próbce podwoiła się:
>> iv = interp1(X, v, Xi, 'linear', 'extrap')
iv =
Columns 1 through 8
0.7500 1.2500 1.7500 2.2500 2.7500 3.2500 3.7500 5.5000
Columns 9 through 10
8.5000 11.5000
>> (X(2) - X(1))/(Xi(2) - Xi(1))
ans =
2
Przynajmniej w przetwarzaniu sygnału, zwykle po zmianie częstotliwości próbkowania, a nie liczby próbek.