Обработка сигналов в SciLab (перевод)

advertisement
Обработка сигналов в SciLab (перевод)
Численное интегрирование
Функция intg(a,b,f) вычисляет интеграл от a до b от функции f(t). Если функция содержит
параметр, то интеграл от f(t,y) вычисляется по формуле
intg(a,b,list(f,y))
Другой способ передачи параметра в функцию можно осуществить с помощью модификатора
global x. Это способ обмена значением разных функций. В этом случае это описание должно
присутствовать в каждой функции.
Многочлены
Многочлен определяется как q=poly([a,b,,,,,c],’x’) (через корни или q=poly([a,b,...,c],’x’,’c’) -–
через коэффициенты. Если первый аргумент матрица A, то poly(A,'x') - характеристический
многочлен матрицы.
Функция roots(q) вычисляет корень. Дробь q3=q1/q2- рациональная функция. Для оценки
значений в точке v применяется функция freq(q1,q2,v). Здесь первый аргумент числитель,
второй –- знаменатель, третий – набор аргументов (число или одномерный массив). Для
обычного многочлена используем freq(q1,1,v). Если в результате вычислений получается
рациональная функция q3, то числитель это q3(2), а знаменатель — q3(3).
Всегда имеется готовая переменная %s=poly(0,’s’).
Наибольший общий делитель системы многочленов вычисляется по формуле
[d,u]=gcd([p1,p2,..,pk]). Здесь d — НОД, а u унимодулярная матрица, обладающая свойством
[p1,p2,...,pk]*u=[0,d]. Другими словами, последний столбец этой матрицы состоит из
многочленов m1,...,mk таких, что m1*p1+...+mk*pk=d, а остальные столбцы -- для
модификации коэффициентов m1,...,mk. (такой столбец можно прибавить к столбцу m1,,,mk и
останется верной формула для представления НОД.
Функция [r1,q1]=pdiv(p,q) подсчитывает многочлены, для которых выполнено равенство
p=q*q1+r1
При вычислениях могут появиться малые числа. Очистка (замена их нулями) производится
функцией clean(u).
Если нужно подставить в многочлен или в рациональную функцию другой многочлен,
используют функцию horner(p,многочлен)
Генерирование случайных чисел
Простейший генератор — функция rand(). Общий формат A=rand(m1,m2,'key') — создает
случайную матрицу размера m1 X m2, а key принимает одно из двух значений uniform —
равномерное распределение на интервале [0,1] или normal — N(0,1) нормальное
распределение. Для установки в нужное значение начальное состояние генератора используют
функцию rand('seed',число). Для генерации других распределений применяется функция grand()
Фильтрация
Пусть имеется сигнал u и фильтр, заданный с помощью передаточной функции h. С помощью
функции
flts(u,h) на выходе получим результат фильтрации.
Функция filter(num,den,signal) . Функция используется, когда фильтр задан набором
коэффициентов. Коэффициенты располагаются в порядке убывания степеней. Если
num=<a0,a1,a2>, den=1, то y(n)=a0*x(n)+a1*x(n-1)+a2*x(n-2).
Отображение функции перехода
Если задана передаточная функция в виде отношения двух многочленов, то отобразить ее
можно стандартным образом с помощью функции freq(num,den,z), взяв z равным набору точек
на единичной полуокружности. То же самое можно получить в виде [a,b]=frmag(hx,N), где N —
число точек на полуокружности, а увидеть результат с помощью plot(b,a).
Download