Айфичер Э., Джервис Б. Цифровая обработка сигналов, практический подход (2-е изд., 2004) (1095888), страница 84
Текст из файла (страница 84)
Асошг!сл, 5реес)т 5|Вин! Рпкеи1лВ, 30, 734-738. Мига 5. К. апн Якгтчооб К. 3. (1972) Сапотс геаигатюпв оГ йу|а! Виста няпВ йе солт)пиен Ггасноп ехрапяоп. !ЕЕЕ Тгот. Аийо Е!есгюасоилт!сл, 20, 185 — 194. Ргоак(з 3. О. апд Мапо!ах(» Р. О. (1992) !итют(исг!оп то О!у!а! 5!Вин! Рюселяая. Ыеп уоть Маспниап. Каплет 1.. К. (!971) Тесьпщнев Гог незщп(пя Инке-|)нгаиоп ипрн1зе гезропвс йв(та! Я|ага. 3ЕЕЕ Ттапт. Совиаиатсат!оа Тесбио!оку, 19, 188-! 95.
КаЬ»пег Ь, К. (1973) Арргохипа|е беяу| ге(а|юпзЬ|рв Гог Ыиразв Р1К йу|а) Ятетв. !ЕЕЕ Тгапа Аийо Е!еститасошг!т, 21, 456-460. КаЬтпег 1.. К, (1977) А ятрибт) сотрнииюпа( а(Вопиип Гог 'нпр)етпепбпа НК йу|а( Виет». ГЕЕЕ 7гаил. Асошт!сл, 5реесб 5!Вла! Ргосет|ия, 25, )нпе, 259-261. ВаЬ|пег Ь К. апд ВсЬаГег К. йт. (197!] Кеснгяче апн попгестяче геа1етиопв оГ йу|а( 66егз беяапед Ьу Гтя)пенсу затрИпВ |есЬп|янез. !ЕЕЕ Ттат. Аит(!о Е!есиоасоилпсл, 19, 200-207. КаЫтг Ь К. апд ВсьаГсг К. %.
(1972) Сопесбоп |о "Кесшяче апд потесшиче таптат)опз оГ йв(та! 61|ага бт)укб Ьу Ггелнепсу затприпВ |есЬпннез". !ЕЕЕ Тгапз. Аийо Е!есттоосошпсл (Соттелрй 20, 104, 105. Каплет 1., К., Ка)зег 3. Р. яи1 ВсЬаГег К. 9Г. (1974) Вогпе сопл(бегат(опв |п йе дт)Вп оГ тпиЯЬапб Инке 1трн1»е гезропзе йвпа1 Я|егв. !ЕЕЕ Тгопп Асоия|ся 5реесб 5!Вин! Рюселпак, 22(б), 462-472. Каплет 1.. К., МсС1спап 3. Н. апб Раг)|з Т.
цт, (1975) Р1К бщиа1 66ег дейки |есьп)яне» няпв ие(ВЫЛ СЬеЬузьеч арргохнпааоп. Рпк. 1ЕЕЕ, 63(4), 595-610. . Приложения 7.А; Программы на С для разработки КИХ-фильтров В книге 1!Геас))ог, 200)1 имеются следующие программы на С, облегчающие разработку КИХ-фильтров (подробности см. в приложении): ° Етеватнр. с — программа вычисления коэффициентов фильтра по методу частотной выборки; ° оркйлта1. с — программа вычисления коэффициентов фильтра с помощью оптимального метода; ° и1пс(ои.
с — программа вычисления коэффициентов фильтра по методу вырезания; ° ЕЕКЕ11Ь . с — программа КИХ-фильтрации данных; ° посейте. с — программа оценки числа коэффициентов фильтра для оптимального фильтра нижних частота или полосового фильтра. Для ограничения обьема книги ниже приводится только последняя программа, псо- ег г . с (программа 7АЛ), представляющая собой прямую реализацию уравнений, при- веденных в разделе 7.6.3. Для применения программы используем ее для оценки длины полосового фильтра, удовлетворяющего следующим спецификациям: полоса пропускания 1800-3300 Гц, полосы подавления 0 — 1400, 3700-5000 Гц, частота дискретизации 1О кГц, неравномерность в полосе пропускания 1 дБ, затухание в полосе подавления 40 дБ. Программа 7А.1 програьвза оценки числа коэффициентов оптимального КИХ-фильтра нижних частот нлн полосового фильтра* нмя программы: псоегг.с Манну 1геаслог, 17.10.91 * / 91пс1чт)е ()1пс1чт)е $1пс1чт)е <зго1о.Ъ> <вагЪ.Ъ> <т(оз.Ь> 1п т)очЬ1е с(очЬ1е г1оае 1пг Шгег зрес()т 1ргсоегг()т Ьргсоеуу()т бр, т)з, т)г~ ггурет ва1п() с)очЬ1е Нт ггуре Шгег зрес()т зн1гсЪ(тгуре)( сазе 1: Н 1ргсоегг()т Ьгеакт сазе 2: Н=Ъргсоегг()т Ьгеакт оегач1г: рг1пгг("неверно задан тнп фильтра 1п")т Ъгеакт /* получение спецификаций фильтра */ рГ1ПГГ(вЧИСЛО КсзффицнЕНтОВ 1ГВу1П",Н)т рг1пег("неравномерность в полосе пропускання в дБ 1гат1п",т)р); рг1пгу("затухание в полосе подавления в дБ 1г%11п",т)з)т рг1пгу("1п")т рг1пгг("Для продолжения нажмите <Епгег> 1п")т 482 Глава 7, Разработка фильтров с конечной импульсной характеристикой (КИХ-фильтроа) Приложения 483 сексЬ(); ех1с[0); ) /* Е11Сег врес() 1пс ( 1пк 1куре; рг1псЕ(впрограмма оценки длины оптимального фильтра 1па); рг1пСЕ( "1п" ) 7 рг(псЕ("выберите тип фильтра 1п"); рг1псЕ(в1 оптимальный фильтр нижних частот 1п"); рг1псЕ("2 оптимальный полосовой фильтр 1п"); всапЕ ("Ъс(", 41суре); рг1пСЕ("1па); рг1пСЕ("введите неравномерность в полосе пропускания и подавления в обмчных единицах 1п"); рг1псЕ("неравномерность должна быть от 0 до 11п"); всапЕ("ЪЕ4Е",ас(р,абв)7 вн1СсЬ(1суре) ( саве 1: рг1пКЕ("введите нормированную ширину полосы перехода1п"); всапЕ(ааЕ", абЕ); Ьгеайы саве 2: рг1пСЕ("введите нормированную ширину полосы перехода — меньшую ширину 1п"); асапЕ(58ЕУ, абЕ); Ьгеах; гесчгп(1суре); ) /* 1рЕсоеЕЕ() бочЫе ( Е1оаь ббр, <Ыв, а1, а2, аЗ, а4, а5, аб, Ы, Ь2; босЫе 61пЕ, ЕЕ, С1, С2, СЗ, С4, М1; /*константы */ а1 0.005309р а2 0.07114; аЗ -0.4761; а4=-0.00266; а5 -0.5941; аб -0.4278; Ы=11.012177 Ь2 0.5124401Г сЫр 1ос10(бр)7 ббв 1од10(с)в)ю 11=а1*ббр*ббр; С2 а2*с)бр," СЗ а4*сЫр*бс[р; С4 аб* бр; с)1пе ((с1+Е2+аз)*бба) +[сЗ+14+аб); ЕЕ Ы+Ь2*(ббр-ббв); Н1 ((61пЕ/бЕ)-(ЕЕ*бЕ)+1); с)Р 20*1о010(1+бР); с(в -20*1од10(бв); 484 Глава 7.
Разработка фильтров с конечной импульсной характеристикой (КИХ-фильтров) Таблица 7А.1. Зал сы, ответы и выход программы псоебт. с программа оценки длины оптимального фильтра выберите тип фильтра 1 оптимальный фильтр нижних частот 2 оптимальный полосовой фильтр 2 ведите неравномерность в полосе пропускания н подавления в обычных единицах неравномерность должна быть от 0 до 1 0.122 0.01 введите нормированную ширину полосы перехода — меньшую ширину 0.04 Число коэффициентов 31.261084 неравномерность в полосе пропускания в дБ 0.999857 затухание в полосе подавления в дБ 40.000000 для продолжения нажмите <Елкек> тесчгп(Н1) г Ьргсоебг() с(очЬ1е ( 61оас а1, а2, аЗ, а4, а5, аб, с(ор, Нааг с(очЬ1е С1, С2, ЕЗ, С4, с1пт, Чтит, НЬг а1=0.01201, а2=0.09664, а3=-0.51325г а4 0.00203г а5 -0.57054с аб=-0.44314; сЫР 1од10(с]р) г с(с]э=1од10 (с(в) г Е1=а1*с(с(р*с]с(рс Е2=а2*с(с]рг С 3 =а4*сЬЗР*с]с]рг е4 а5*сЫрг с1лг=с]ов*(е1ее2еаЗ]+ЬЗге4еаб; 91пт=-14.6*1од10(с(р/с(в]-16.9г НЬ=(огпу/с]к) + 01лу*бт+1г с(р=20*1од10 (1чс(р); с(а=-20*1о910 (с(в ) г гесчкп(НЬ]г Из спецификации следует, что нормированная ширина полосы перехода равна 0,04 (450/1О 000), неравномерность в полосе пропускания — 0,122 (2018(1 + 1))„ а неравномерность в полосе подавления равна 0,01 ( †20(40)), Запросы программы, ответы пользователя и выход программы из предыдущего примера приведены в табл.
7А.1. Число коэффициентов фильтра, 31, в данном случае является лишь оценкой. В большинстве практических ситуаций для соответствия спецификациям требуется большее значение длины фильтра (т.е. большее число коэффициентов), чем выдает программа. В приведенном выше примере реальная длина для соответствия спецификации равна 35. Разработчик всегда должен помнить данный момент, используя программу. 485 Приложения 7.Б. Разработка КИХ-фильтра с помощью МАТ1.АВ Прекрасный набор программ и функций разработки и анализа различных типов цифровых КИХ-фильтров содержит средство йяпа( Ргосезз1пя Тоо1Ьох в МАТЬАВ, Доступ к программам и командам производится с помощью команд высокого уровня, что делает Тоо!Ьох ценным инструментом при разработке и изучении КИХ-фильтров без "закапывания'* в пространное программирование.
В данном разделе иллюстрируется использование некоторых функций и программ МАТ).АВ для разработки КИХ-фильтров с линейной фазовой характеристикой. В частности, иллюстрируется вычисление средствами МАТЬАВ коэффициентов КИХ-фильтров с линейной фазовой характеристикой с использованием методов вырезания, оптимального (Паркса-Мак-Клиллаиа) и частотной выборки, что дополняет программу иа С, рассмотренную в предыдущем разделс.
7.Б.1. - Метод взвешивания Этапы вычисления коэффициентов стандартного частотно-избирательного КИХ- фильтра с линейной фазовой характеристикой с помощью метода взвешивания можно упорядочить следующим образом. 1. Задать необходимую частотную характеристику. 2, Выбрать весовую функцию и оценить число коэффициентов фильтра, )г'. 3. Получить идеальную частотную характеристику, Ьп(п) (усеченную до Аг значений). 4. Получить )г' коэффициентов весовой функции, ю(п).
5. Получить коэффициенты КИХ-фильтра, воздействовав иа частотную характеристику весовой функцией, Ь(п) = Ьп(п) х ш(п). Для стандартного частотно-избирательного КИХ-фильтра с линейной фазовой характеристикой (иижиих частот, верхних частот, паласовые и режекториые фильтры), при разработке которого используется метод вырезания, ключевой командой высокого уровня в Тоо1Ьох является комацда й1г1. Синтаксис данной команды (в стандартной форме): Ь = йг1(Н вЂ” 1),рс. Команда в стандартной форме вычисляет и возвращает коэффициенты М-точечной импульсной характеристики КИХ-фильтра с частотой среза Г,. Команда возвращает коэффициенты в вектор 6, упорядоченный по возрастанию отрицательной степени гл Ь(г) 6(0) + 6(1)г-г +Ь(2) -г+ + 6(М 1)г-Р— П Параметр команды гг' — 1 задает порядок фильтра (обычио иа единицу меньше числа коэффициентов КИХ-фильтра).
Частота среза Г, нормирована иа частоту Найквиста (т.е. половину частоты дискретизации). По умолчанию стандартная команда ййг1 действует иа данные весовой функцией Хэммиига и в ией предполагается использование фильтра нижних частот (или полосовой фильтр, если Г, задает более одной частоты среза). Стандартную исмаилу можно 466 Глава 7. Разработка фильтров с конечной импульсной характеристикой (КИХ-фильтров) расширить, задав тип фильтра и/или весовую функцию.