Цос отчёт поп практике. ЦОС вторая лаба. Дискретные фильтры
Скачать 363.64 Kb.
|
4. Получение аналитической формулы для импульсной характеристики фильтраСредства MATLAB позволяют получить разложение функции передачи фильтра на простые дроби с помощью функции residuez в виде вычетов, полюсов и целой части:
От полученного разложения возьмём обратное z-преобразование: Выводы: в ходе выполнения лабораторной работы был исследован дискретный фильтр с заданными параметрами и различные его реализации. Было установлено, что: Поскольку фильтр является рекурсивным, после окончания прохождения сигнала на выходе фильтра наблюдается затухающий переходный процесс; При канонической форме реализации фильтра в элементах памяти сохраняются наибольшие по модулю значения по сравнению с прямой и транспонированной реализациями. Таким образом, каноническая форма, содержащая минимальное количество схемных элементов, требует возможности хранения намного больших значений, чем две другие реализации фильтра; Исследованный фильтр является фильтром нижних частот. Все его полюсы лежат внутри единичной окружности, следовательно, фильтр устойчив Код программы U1=5; U2=-4; U3=-4; U4=6; qw=10^(-3); T1=2*qw; T2=5*qw; Fd=7000; Td=1/Fd; t1=0:Td:T1; a1=-4500; b1=5; y1=a1*t1+b1; % plot(t1,y1); t2=T1+Td:Td:T2; a2=3333; b2=-10.6; y2=a2*t2+b2; % plot(t2,y2); y3=[y1 y2]; t=0:Td:T2; % plot(t,y3); figure(1) stem(y3); title ('дискретный сигнал') %2 пункт b0=0.0004; b1=0.0017; b2=0.0025; b3=0.0017; b4=0.0004; a0=1; a1=-3.1806; a2=3.8612; a3=-2.1122; a4=0.4383; %добавление нулевых отсчетов (36 отсчетов исходных) y3_dob_null=[y3,zeros(1,length(y3))] ; %получение выходного сигнала фильтра b=[b0,b1,b2,b3,b4]; a=[a0,a1,a2,a3,a4]; priam_vihod=filter(b,a,y3_dob_null); figure(2) stem(priam_vihod); title('сигнал на выходе фильтра') % 3 пункт %Определение максимального по модулю числа max_vhod=max(abs(y3)); max_priam_vihod=max(abs(priam_vihod)); %4 пункт Kanon_vihod=filter(1,a,y3_dob_null); figure(3) stem(Kanon_vihod); title('сигнал на выходе каноничного фильтра') max_Kanon_vihod=max(abs(Kanon_vihod)); %5 пункт states=[]; s=[]; Recours_vihod=filter(1,a,y3_dob_null); for k=1:length (y3_dob_null) [Recours_vihod(k),s]=filter(b,a,y3_dob_null(k),s); states=[states s]; end figure(4) plot(states'); title('сигналы, прошедшие через элементы памяти') %max max_Recours_vihod=max(abs(states(:))); %6 пункт fvtool(b,a) %7 пункт [r,p,k]=residuez(b,a); abs(r) angle(r) abs(p) angle(p) k |