Page 50 - 363_
P. 50
51
6 Векторна фільтрація і спектральний аналіз
У системі MatLAB є кілька функцій для проведення цифрового аналізу даних
спостережень.
Так, функція y=filter(b, a, x) забезпечує формування вектору за заданими
векторами b, a, x згідно з співвідношенням:
y(k) = b(l)*x(k) + b(2)*x(k-l) + ... + b(nb+l)*x(k-nb) -a(2)*y(k-l) - a(3)*y(k-3) -... -
-…- a(na+l)*y(k-na), (6.1)
де вектор b має вигляд:
b = [b(l), b(2), ..., b(nb+l)],
а вектор а:
a = [1, a(2), a(3), ..., a(na+l)].
Співвідношення (1) можна розглядати як кінцево-різнице рівняння фільтра
з функцією передачі вигляду раціонального дробу, коефіцієнти чисельника якого
утворюють вектор b, а знаменника – вектор а, на вхід якого подається сигнал x(t),
а на виході формується сигнал y(t).
Тоді вектор у являтиме собою значення вихідного сигналу цього фільтра у
дискретні моменти часу, що відповідають заданим значенням вхідного сигналу
x(t) (вектор x).
Нижче наведений приклад застосування функції filter:
>> x = 0 : 0.1 : 1;
>> b = [12];
>> a = [ 1 0.1 4);
>> у = filter(b, a, x)
y =
Columns 1 through 6
0 1.0000e-001 3.9000e-001 2.6100e-001 -5.8610e-001 3.1461e-001
Columns7 through 11
3.9129e+000 2.5027e-001 -1.3477e+001 2.8466e+000 5.6422e+001
Функції fft (Fast Fourier Transformation) та ifft (Invers Fast Fourier
Transformation) здійснюють перетворення заданого вектора, які відповідають
дискретному прямому та зворотному перетворенням Фур’є.
Звернення до цих функцій вигляду:
y=fft(x, n); x=ifft(y, n)
приводить до формування векторів в у першому випадку і x - у другому за
формулами:
n 1 n
(y ) k ( x m ) e 2 j ( m 1 )( k n / ) 1 ; ) k ( x ( y m ) e 2 j ( m 1 )( k n / ) 1 , (6.2)
m 1 n m 1
де j – значення уявної одиниці; n - кількість елементів заданого вектора x (вона, є