Дьяконов В.П. Matlab 6.5 SP1 7 0 Simulink 5 6 Обработка сигналов и проектирование фильтров 2005 (1245705), страница 28
Текст из файла (страница 28)
Чи- татель может легко построить график этого ою(а по подобию примеров, приведенных выше. 2.5.7. Задание окна Хэннинга — Ьэпп1пя Функция и = иаппапс3 (п1, ' вг1ад ' ] > возврашает вектор (я коэффициентов л-точечного окна Хэннинга. Эти коэффициенты вычисляются по формуле: ю(>>) =О 1-сов]2к — 11..А.=1.2, ...,и-1. л -1Я Параметр айац имеет тот же смысл, что и у функции задания окна Блзкмана, График этого окна также несложно построить. Глава 2. Создание и обработка сигналов 2.8.8.
Задание окна Кайзера — (са(кег Функция се=)сазаег (н, О) задает вектор-столбец п-точечного окна Кайзера. Параметр Р задает затухание боковых лепестков окна. Для получения из окна Кайзера фильтра типа КИХ (с конечной импульсной характеристикой) параметр () следует выбирать из формулы: 0.1102(а — 8.7)...а > 50 1) = 0.5842(а -21)си+0.07886(а — 2!)...50 > а > 21 0...0< а < 21 Следующий пример строит график окна Кайзера — рис. 2.24: » н=хасеее(32,1);р1ое(н) / Рис. 2.24. Окно Кайзера 2.8.9. Создание треугольного окна — тпапя Функция )с=ес1ансз(н) возвращает вектор-столбец коэффициентов и-точечного треугольного окна.
При четных и это окно совпадает с окном Барлетга, за исключением того, что при /с= 0 и /с= 1 его значение равно О. При нечетных и коэффициенты треугольного окна вычисляются по формулам: 2А)/(п — !)...! < /с < (и+1)/2 2 (т - /с + ! )/(п — 1)... (и + 1)/2 < /с < и 2.5. Функв(ии задания окон 2.6. Новые функции задания окон 133 Следующие несколько новых функций служат для задания окон, минимизирующих проявление эффекта Гиббса, обусловленного резким ограничением спектра сигналов при использовании окон: и = Ьагепаппи1п(п) — окно Барлетта — Хэнна (Ваг(!е((-Напп); и = Ь1ас)овапьаггаа(п) — окно Блэкмана — Харриса (В!ас[егпап-Нагг(з); и = Ьопмапиап[п) — окно Бохмана (Во)звпап); и = цаиааиьп (и) — окно гауссиана (Савко(ап); и = данави1п (и, а) — окно гауссиана ((завбз(ап) с дополнительным параметром а; и = пнгеа11и1п (и) — окно Нуталла — Блэкмана — Харриса ([т(п((а!!з В)ас)(п)ап-Нагг!в); и = еи)ееуиьп (и, а) — окно Тьюкея (То[(еу, (ареге() свж!пе).
В следующем примере выводятся графики двух окон (ЫасЬпап)загг[з и пнца!)тв1п) и строится график их разницы (рис. 2.25): Н бов и = Ььасхаапьагг(а (Н); у = пигеа11иьп (Н); ЯвЬр1ов(1,2, 1); р1ов(1:Н, и, 1:Н, у, 'г — ');акз в ( [1 Н 0 1) ); с1С1е('Совраг1аоп ое 64-ро иьпсоиа'); 1едепе)('В1ас)овап-Ьагг1в', 'Нпееа11')г ввЬр1ое(1,2,2); р1от(у-и); Свк1е('Рьетегепсе Ьееиееп В1асйоап-Ьаггьа апс' Нптва11 иьпооив') :.вмьвок ваил аип .тоих.
олаии ива .. 7,:;;:,.;;;,„,, рйФ::ц ф!(ь:д'.;~'.~:! )в,')оэ..); :у--"'''" — Вьсйпаемпв в.'т ;;;-.)().,"~:.,- в(В Рис. 2,25. ГраФики лвух о ь ьи вье) и и аьааиьвваев ,"-'--',' "*:: Овиапсе о.ов о.оов о.оот влив а ха :аг и:в..-гюе -. их разность (справа) о)оог кон (слева) и Глава 2. Создание и обработка сигналов 2.6Л.
Обобщенная функция задания окон — и)[пе)отт Новая обобщенная функция задания окон и иьлеои (ЙЬапо1е, п) возвращает и-точечное окно любого типа, которое задается параметром б]ап([[е (дескриптором), содержащим символ Ф и имя окна: 6Ьакжиалви1л бьапхл1пб бьакс1еее 6Ьавп 6Ь1ас>опал бка1зек бвьас>спаплаеххз бплееа11ийв 6Ьонвапиьл беески[п бсьеЬиьп бетвапд бчаиязиьп бслхеуи1п В приведенном ниже примере строятся графики для трех окон, построенные функцией и()пбо]н (рис. 2.2б): Н = 65> и = иьпсои (6Ь1аскеаплаке1з,н] > и1 = и1лг>ои(биапвп1пч,н) г и2 = и1поои(бяалззи1п,н,2.5)> зоьр1ок(1,1,1) р1ое(1:Н,[и,и1,и2)]: ах1з([1 Н 0 1))) 1ебево('В1ас~лап-Накк1з','Наептлб'.'оаляз1ав')) Рне.
2.2е. Графики трех окон, построенные функцией едпдои 2.6.2. Построение графиков амплитудного спектра окон Для построения графика амплитудного спектра можно использовать функцию ггее[, что иллюстрирует (для окна Хэммин>а) следующий пример (рис. 2.27): и = Ьалхе1по(20] ' и игяит(и)г [Ь, Г] бдеее>е (и, 1, [), 20] > р1ос (Г, 20*1о010 (аья (Ь» ] аква оп 2, 7, Изменение частоты дискретизации сигяалоо Рне. 2.27. ! рафик амплнтулного спектра ллн окна Хэммннга Полезно обратить внимание, что относительные амплитуды нормированы и спектр построен в логарифмических единицах (децибелах). Заменив функцию задания окна в первой строке приведенного фрагмента кода, можно построить графики амплитудного спектра и для других видов окон. 2.6.3.
Применение вьювера окон У)()!Топ[ В реализации пакета Яйпа[ Ргосеайпй Тоо[Ьох 6.0/6.1 появилась новая функция нчеоо1(н1 [, н2,н3,...нп)), позволяющая в окне вьювера окон просматривать графики окон ъ1, и2, ... )чп и их амплитудных спектров. Так, команда » нчкоо1(ьапп(32),Ьаммзпд(32),капотов(32)) выводит графики трех окон (Хэнна, Хамминга и Ханнинга) и их амплитудных спектров, представленные на рис. 2.28.
В справке по пакету все функции окон имеют графическое представление, полученное с помощью вьювера окон. 2.7. Изменение частоты дискретизации сигнапоа 2.'7.1. Децимация — е!ес!сиате Децимацией сигналов называется уменьшение частоты их дискретизации в заданное целое число раз г (иногда децимацию обозначают 1г). В пакете Яапа! Ргосеззшй Тоо[Ьох для этого дискретный сигнал превращается в непрерывный с помощью фильтра того или иного типа (как правило достаточно высокого порядка) и с сигнала на выходе фильтра берутся новые выборки с заданной часто- 13б Глава 2.
Создание и обработка еиеналов зе«ла м«м «вмп' тих«. ъйва«л'; низ *ф9 й((() '-А,'Л '«! Ф Ф )З, Х ),)ми~ )(): ".-. Рис. 2.28. Окно вьювера окон той. Децимация сигнала заданного дискретными отсчетами в векторе х реализуется функцией: у = с(есьцасе (х,г(,п, ' Еьг ) ) В варианте у = с)есылаее (х, г) используется фильтр Чебышева ! порядка 8 с мерами по уменьшению фазовых искажений. Параметр н позволяет залать явно порядок фильтра. Порядок более 13 применять не рекомендуется из-за возможной численной неустойчивости.
При использовании параметра 'Вг' применяется 30-точечный фйльтр с конечной импульсной характеристикой (КИХ-фильтр). В этом случае л залает длину КИХ-фильтра. Для иллюстрации децимации зададим вектор сигнала и с помощью функции з(еш (это функция базовой системы МАТЮКАВ) построим график части исходного сигналю — 0:.00025«0.3« $ Задание вектора времени х = а«п(2*рь 30*с) « ег $ задание вектора сигнала веем (х (1: 120) ), ахьа ((О 120 -2 21 ) а График исходного сигнала Е«С1е('Ог«д1па1 в10па1')г Рис. 2.29 показывает график исходно~о сигнала. Он представлен как временной зависимостью сигнала, так и его отсчетами в виде вертикальных линий с кружками сверху. Теперь выполним децимацию и построим график сигнала после децимации: у = «)ес1ваее (х, 4) г Ъ децимация акен(у(1«30)) Ъ График сигнала после децимации Е1С1е!'Б10па1 аееег е)ес1л«ае1оп') Этот график представлен на рис.
2.30. и%ей'лни~Мйап-тиааг алима: Нее ф;:, ~:.й «Ь'~:::,цг„,,А",~ г 1, ~ а Рис. 2.29. График исходггого сигнала с его отсчетами '.Не'. таа'".чаи' имп' тччи ' тлчеч ниа :.;-" э'в".в 1:,~::-'ц::Р'~ $м~:"'~в'6" Ф,,„"; ".;;„.!а В~=- ф' График сигнала после ленимании Рис. 2.30 2.7. Изменение частоты дискретизации сигналов Глава 2. Создание и обработка сигналов Хорошо видно, что децимация ведет к прореживанию отсчетов сигнала по частоте. Она может использоваться для уменьшения ширины спектра сигнала и его сжатия с некоторой потерей точности восстановления. 2.7.2.
Интерполяция сигналов — !птегр Интерполяция в обшем случае заключается в вычислении значений сигнала в промежутках между его отсчетами. Это может использоваться для решения задачи обратной децимации — увеличения числа отсчетов сигнала. Нередко такая операция необходима для уменьшения шумов квантования сигнала. В пакете В!япа! Ргосезв[пя реализуется не совсем обычная одномерная интерполяция. В ней функцией у = ьпаегр(х,с[,1,а1риа)) число отсчетов исходного вектора х увеличивается в целое число раз г (применяется обозначение Тг). При этом вначале в исходную последовательность вносятся нулевые элементы и она расширяется, а затем она обрабатывается НЧ-фильтром.
Необязательные параметры 1 и а!рйа задают порядок фильтра и частоту отсечки. Выходной параметр Ь вЂ” вектор с коэффициентами фильтра. Для демонстрации интерполяции зададим вектор некоторого двухчасготиого сигнала и построим график его отсчетов — рис. 2.31: с 0: О. 001: 1( х сов (2'р1*30*С) + вьп <2*р1*60*Ш г Всеаг(х(1:30)) г С111е('Осве1па1 вьдпа1') г Теперь выполним интерполяцию и построим график отсчетов сигнала— рис. 2.32: у = 1паеср (х, 5] г вееп(у(1:120!)Г 1111е('1пьесро1аььоп'в в10па1')Г Рис. 2З1.