Обработка сигналов в 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).