Дьяконов В.П. Matlab 6.5 SP1 7 0 Simulink 5 6 Обработка сигналов и проектирование фильтров 2005 (1245705), страница 43
Текст из файла (страница 43)
3.8.2. Инвариантное импульсное преобразование — [гар]пиаг Инвариантное импульсное преобразование позволяет преобразовать аналоговый фильтр в цифровой, имеющий ту же импульсную характеристику, что и у аналогового фильтра с точностью до множителя ]/Гя. Для этого используется функция [Ьг, аг] = 1ыр1пчаг(Ь, а [, те, го1] ) По умолчанию значение параметра а = ! Гц, а параметра (о], задающего погрещность вычислений 0.00! (нлн О.[ %). В приведенном ниже примере аналоговый НЧ-фильтр Баттерворта 5-го порядка с частотой среза 0.5 преобразуется в цифровой фильтр с В= ]00 Гц я (о! = 0.0]: [Ь,а)=ьпььег(5,0.5, 'а') ) [Ьа,аг]=1лргпчаг(Ь,а, 100, .01) ) геа1(Ьа) апа = 1.0е-О11 * -О.ОООО О.О)30 геа1 (аг) 0.1423 0.1418 0.0129 0 апе 1.0000 -4.9838 9.9354 -9.9033 4.9357 -0.9839 8.9.
Средства проектирования фильтров с конечной импульсной характеристикой 3.8.1. Вычисление матрицы свертки — соптп)тх Выц)е мы расслютрели средства проектирования фильтров с БИХ. В пакете Б]апа! Ргосеямщ имеется ряд функций н для проектирования фильтров с конечной импульсной характеристикой (КИХ или Г[В). Однако прежде, чем мы пряступим к их описанию, отметим важную функцию создания матрицы свертки. В форме А = сопчоьх(с,п), А = сопнегх(г,п) где г — вектор-строка размера пь также создается матрица А размера и х (и) + и — !). умножение этой матрицы на вектор-строку х размера и дает свертку векторов г и х.
7[римечание. Эта простая функция слуясит, скорее, для лвнутреннего употрвб- ленияа, чем для решения ирактичвских задач. Дело в таи, что для осуществления свертки проще применять функцию свертки сопи. где с вектор-столбец с длиной п), функция возвращает матрицу А с размером (и) + и — !) х и. Произведение данной матрицы на произвольный вектор-столбец х длины и является сверткой векторов с н х. В чуть иной форме 3.9. Средства лровктировиния фильтров 3.9.2. Метод Ремеза для фильтров с равными пульсациями — сгеп)ев Для проектирования цифровых фильтров с КИХ, имеющих равные пульсации как в полосе пропускания, так и в полосе задержания, по л<етоду Ремеза служит функция степ)е2 с рядол< форм записи: Ь = сгевев(п,Г,'ггевр') Ъ сгееег (и, Г, ' Ггевр',е) Ь = сгееег(п,Г,['ггевр',р1,р2,...1,е) Ь = сгеаег<п,Г,а,е) Ь = сгееег(...,'вуе') Ъ = сгееег<...,'вк1р вгасе2') Ь = сгепеп(...,'Оеьсо') Ь =.
сгееег( ., (1Чгла)) [ь,ое1га,орг) = сгеееп( .) В форме Ь сгееег <и, 1, ' Ггевр ' [, и) ) эта функция вычисляет вектор ь, содержащий (и+1) коэффициентов фильтра с КИХ, АЧХ которого наилучшим образом представляет некоторую функцию Ггевр (см. ниже). В варианте функции Ь сгееег(п,Г,('Ггевр',р1,р2,...),е! можно задавать дополнительные параметры к функции Ггевр. Вектор Г должен содержать пары частот — граничных лля областей пропускания и задержания.
Частоты должны быть в диапазоне от -! до+1, причем +1 соответствует частоте Найквиста (половине частоты дискретизации). Частоты должны идти в строго нарастающем порядке. как уже отмечалось, у фильтров с ких передаточная характеристика н(2) .ие содержит знаменателя, поэтому выходной параметр не содержит вектора а и представлен только вектором ь. Вектор е позволяет задать веса, используемые при аппроксимации АЧХ. Длина вектора лу составляет половину от длины вектора частот Г. Параметр ггевр может принимать различные значения: ° 1онравв, ьвсьравв, ьапсравв, ьап<)егор — указывает на тип фильтра (ФНЧ, ФВЧ, полосовой, задерживающий).
Задается как строка, например '!отправь'. Функции Ь = сгеаег(п, й, '1оиравв',...) и Ь = сгеп<ег(п, Г, ( '1оиравв',<)),... ) конструируют фильтр с линейной АЧХ и с задержкой (и/2+<[ с(е1ау) Вйег; ° п<с111ьап<[ — задает конструирование многополосного фильтра с линейной ФЧХ. Функции Ь = сге<пег(п, г, ('<пс1г1Ьапг[',а1,... ) и Ь = сгепег(п, Е, ('<пп1г1ьап<)',а,<)),...) имеют входной парал(етр — вектор а. Он должен задавать значения АЧХ лля тех частот, которые содержатся в векторе Г. Желаемая АЧХ в полосе частот от (()<) до Г([< +! ) для нечетных )< определяется как отрезок прялюй между точками (Г()<),а(к)) и (Г(1< + 1),а()(+ 1)); ° г)1ггегепг1аьог — конструирует лифференцирующее устройство с линейной ФЧХ.
При использовании функций Ь = сге<пег (и, Е, [ 'г)1ГГегепг1аГсг', Йв),...) и Ь =- сгеп<ег(п, Г, ( '<)1ггегепг1агог', Йв,<)),...) не- ОбХОдИМО ЗадатЬ ЧаСтОту дИСКрЕтИЗацИИ Гв (ПО уМОЛЧаНИЮ 1); гг2 1лааа 3. Филыпрация сигиалоа ° Ь11Ьт11с — конструирует фильтр Гильберта с линейной ФЧХ с помощью функций Ь = стевет (и, 1, 'Ь11ЬЙ11Т',... ) и Ь = стевет (И, Р, [ 'Ь11Ь111ь', с)),... ). Задержка, вносимая фильтром определяется как и/2+с).
Функция ь = стевет(п,г,п,в) аналогична ь = стевет(в,г,('все1Ь1ьат1с)',а),и). Возможно задание параметра зув — Ь = стевет(...,'аув'). Если задается функция гтезр, то при с) = 0 и положительных г аув=ечеь (значение по умолчанию), иначе зуве оспе. Параметр с) определяет групповое время задержки и/2+с), по умолчанию он равен 0. В общем случае параметр 'еугп' позволяет задать тип симметрии с помощью строкового ар(умента 'зув': ° ' попе ' — отсутствие ограничений на симметрию (по умолчанию) при отрицательных частотах; ° ' есеп ' — используется, если АЧХ должна быть вещественной с четным типом симметрии (используется по умолчанию при конструировании следующих типов фильтрош ЫаЬразз, )отграза, Ьапс)раап, Ьапс[а(ор и п)ц[([Ьапс[); ° 'ос)с) ' — задает конструирование фильтров с вещественной АЧХ и с нечетным типом симметрии (используется по умолчению при конструировании фильтров типа НВЬег( и с[[((егеп([а(ог); ° ' кеа1' — задает конструирование фильтров с сопряженным типом симметрии.
Для любого 'еув', за исключением 'попе', желаемая АЧХ должна быть определена для положительных частот. Область отрицательных частот достраивается по правилам симметрии. Функция Ь = стевет(...,'п)стр етаде2') опускает проведение второго этапа оптимизации (расчет коэффициентов фильтра в случаях неприменимости алгоритма Ремеза). Это ускоряет вычисления. но может привести к заметному возрастанию погрешностей. Опция 'с)еЬоо' при использовании функции в виде Ь = стсвет(..., 'с)еьс()') задает вывод промежуточных результатов вычислений. Зта опция может принимать значения 'стасе', 'р1ога', 'ьось' или 'сгг' (по умолчанию). Функция Ь = стевет (..., (1стта) ) позволяет задать плотность сетки частот, которая приближенно равна 2"пехсрои2 (1сзт~*о) . По умолчанию [ягЫ= 25.
Возможно задание всех комбинаций параметров 'аув', 'е)сьр епаее2'. с)еЬосз и [1сзт1с)). Функция (Ь, с)е1та) = стевет (... ) в выходном параметре с[е!(а возвращает амплитуду пульсация АЧХ. Функция [Ь,с(е1па,оре) стевет(...) в структуре ор( возвращает набор дополнительных параметров. Зта структура имеет поля: ° ор'-. 19т1с( — вектор отсчетов частот, используемых при синтезе фильтра; 3.9. Средства проектирования фильтров Здесь и — порядок фильтра, à — вектор граничных частот для полос фильтра в диапазоне от — 1 апг[ ! (! — частота Найквиста), яР— вектор сетки узловых частот для линейной интерполяции, ьу — вектор весовых коэффициентов (по умолчанию [! и р[, р2, ..., — дополнительные параметры.
Как видно из описанного, функция сгегаеа дает обширные возможности в задании параметров конструирования фильтра. К сожалению, обьем книги не позволяет рассмотреть их все. Поэтому ограничимся одним примером. Рассчитаем фильтр 20-го порядка с линейной АЧХ по алгоритму Ремеза: Ь скевоа!20,[-1 -0.4 -0.3 0.6 О.з 1),'1онрааа')г Гсеяг.[Ь,1,512,"ньо1о')) Убрав знак «;» после первой команды можно наблюдать вывод коэффициентов сконструированного фильтра в форме комплексных чисел. Это и есть главная цель конструирования.
Вторая кол)аида строит в одном графическом окне графики ПЧХ и ФЧХ, показанные на рис. 3.29. ям-..наг.увп:~ таам и ивп '~0 0В Я 49!Гя) 'А' 2».ж )В а ,0 Рис. 3.29. АЧ 1 0.2. 0$,' 0,6 "ОЯ ) ' )2 ' 14 1.6 46 2 Нива)вап Ггв)пв'.»у [ а в«ма»ам) 60 0.6 0,6 ) ) 2 ).4 На»паапа гв«вппу [ и в»Вани») Х н ФЧХ фильтра 20-го порядка с заданной АЧХ, рсализоаанного по алгоритму Ремеза ° орс. 4)ев — значения желаемой АчХ для каждого отсчета в оре. !96!с); ° оре. не — веса каждого отсчета в оре. гдгЫ; ° оре. ь — значения АчХ для каждого отсчета из орс. гдг1с); ° орс. еггос — вектор ошибок, для каждого отсчета частоты в ор[.[ягЫ; ° оре.ренье — вектор указателей на оре. гдг14) для экстремальных частот; ° оре.