последовательность имеет вид j/[n] = cos(nf). Это вытекает из элементарной формулы cos((n + 1)<) = 2cos(<) cos(?)i) —cos((n —l)t)). Тут надо отметить недостаток подобных фильтров — чувствительность к ошибкам округления, в результате чего вычисления могут привести к неожиданным результатам. Упражнение. Найдите начальные значения для фильтра (1.40), которые приводят к вычислению значений sin от кратных углов. 1.10. Реализация фильтров Большинство функций, реализующих процедуры фильтрации, находится в модулях scipy.signal или numpy. В данном параграфе будет показано, как нужно пользоваться этими функциями. На практике мы имеем дело с сигналами конечной длины. Как следует из определения FIR-фильтра, результат фильтрации есть свертка исходной последовательности у = (у[0],. . . , т/[А^—1]) и последовательности В = (Ь[0],Ь[1], . . . , b [M —1]), составленной из коэффициентов фильтра. Результат фильтрации получают вызовом функции w = convolvefy, В, Par am). Параметр Рагат принимает одно из трех значений: 'same' / valid' или 'full'. Наибольший практический интерес представляет первое значение параметра, поскольку оно обеспечивает возвращение сигнала той же длины, что и исходный сигнал. Как обычно, возникает вопрос, каким образом функция сохраняет длину. Проще всего это представить так. Строится новый сигнал вида (О,.., 0 ,з/[0], у[1],. . . ) . в который добавлен М — 1 0 в начало, и вычисляется свертка с сигналом В. Два других значения параметра реализуют процедуры, порождающие сигналы длин N —M + 1 и N 4- М —1 соответственно (в первом случае нули не добавляются, а во втором - нули добавляются в начало и в конец исходного файла).
RkJQdWJsaXNoZXIy MTExODQxMg==