Калачиков математические основы mu_dsp_2811
.pdf1 |
2 |
|
3 |
4 |
5 |
6 |
7 |
22 |
фнч |
70 |
|
2800 |
|
2100 |
9600 |
23 |
фнч |
75 |
|
1800 |
|
1690 |
7200 |
24 |
фвч |
80 |
|
2500 |
|
2475 |
9600 |
25 |
фнч |
80 |
|
3000 |
|
2500 |
9600 |
26 |
фнч |
75 |
|
1100 |
|
900 |
4500 |
27 |
фнч |
80 |
|
3100 |
|
1700 |
9600 |
Синтез нерекурсивных ЦФ методом весовых окон в системе MATLAB осуществляется функциями fir1, fir2, находящимися в пакете Signal Processing. Различия между ними состоит в типе аппроксимируемой АЧХ: функция fir1 предназначена для синтеза многополосных фильтров, аппроксимируемая АЧХ которых скачкообразно изменяется в заданных частотных точках, принимая значения 0 или 1, а функция fir2 допускает задание произвольной кусочнолинейной аппроксимируемой АЧХ.
Функция fir1 позволяет синтезировать нерекурсивные цифровые фильтры с линейной ФЧХ методом обратного преобразования Фурье с использованием окон.
Синтаксис вызова функции fir1 следующий: h = fir1 (n, Wn, ‘ftype’, window, ‘normalization’).
Здесь n – порядок синтезируемого фильтра (его импульсная характеристика будет содержать n+1 ненулевых отсчётов).
Параметры Wn и ‘ftype’ (который может отсутствовать) совместно определяют тип синтезируемого фильтра и его частоту (частоты) среза. Частоты среза нормируются к частоте Найквиста FN = f д /2. Значения этих параметров зависят от типа фильтра:
ФНЧ: скаляр Wn – частота среза, параметр ‘ftype’ отсутствует;
ФВЧ: скаляр Wn – частота среза, параметр ‘ftype’ = ‘high’;
полосовой фильтр: двухэлементный вектор Wn = [w1 w2], где w1 и w2 – границы полосы пропускания, параметр ‘ftype’ отсутствует;
режекторный фильтр: двухэлементный вектор Wn = [w1 w2], где w1 и w2 – границы полосы задерживания, параметр ‘ftype’ = ‘stop’;
многополосный фильтр, пропускающий нижние частоты: многоэлементный вектор Wn = [w1 w2 … wn], где wi – границы полос пропускания, упорядоченные по возрастанию, параметр ‘ftype’ = ‘DC-1’. Такой фильтр будет иметь полосы пропускания (0, w1), (w2, w3), (w4, w5) и т. д.;
многополосный фильтр, задерживающий нижние частоты: многоэлементный вектор Wn = [w1 w2 … wn], где wi – границы полос пропускания, упорядоченные по возрастанию, параметр ‘ftype’ = ‘DC-0’. Такой фильтр будет иметь полосы пропускания (w1, w2), (w3, w4), (w5, w6) и т. д.
61
Для ФВЧ и режекторных фильтров, а также многополосных фильтров с ненулевым коэффициентом передачи на частоте Найквиста возможен только чётный порядок. Если задать нечётное n, то будет рассчитан ЦФ, порядок которого на единицу больше заданного.
Параметр window задаёт используемое при синтезе окно. Это должен быть вектор-столбец, содержащий n+1 элементов. По умолчанию используется окно Хэмминга, рассчитываемое путём вызова функции hamming (n+1).
Другие виды окон, задаваемых параметром window:
boxcar – прямоугольное окно,
triang – треугольное окно,
barlett – окно Барлетта,
hann – окно Ханна,
blackman – окно Блэкмана,
kaiser – окно Кайзера,
chebwin – окно Чебышева.
Результатом работы функции fir1 является вектор коэффициентов передаточной функции h нерекурсивного фильтра. Синтезированный фильтр имеет линейную ФЧХ и вносит групповую задержку, независимо от частоты равную n/2 отсчётов.
Синтез фильтра выполняется следующим образом – обратное преобразование Фурье от заданной идеальной АЧХ даёт бесконечный набор отсчётов импульсной характеристики, который симметрично усекается до n+1отсчётов и для ослабления эффектов усечения умножается на используемую оконную функцию.
Функция fir2, так же как и fir1, предназначена для синтеза нерекурсивных ЦФ с линейной ФЧХ методом обратного преобразования Фурье с использованием окон. Отличие заключается в том, что при синтезе можно задать пропорциональную кусочно-линейную АЧХ. Синтаксис вызова функции fir2 следующий:
h = fir2 (n, f, a, Npt, lap, window).
Здесь n – порядок синтезируемого фильтра (его импульсная характеристика будет содержать n+1 ненулевых отсчётов).
Параметры f и a совместно определяют желаемую АЧХ (аппроксимируемую функцию) проектируемого ЦФ. Вектор f содержит значения частот, нормированных к частоте FN = f д /2 (частота Найквиста), а вектор a – соответствующие этим частотам значения АЧХ. В промежутках между заданными точками АЧХ интерполируется по линейному закону. Частоты в векторе f должны образовывать неубывающую последовательность, кроме того, должны выполняться равенства f(1)=0 и f(end)=1. Частоты могут дублироваться, что даёт возможность задавать скачкообразное изменение АЧХ. Вывести график синтезируемой АЧХ (аппроксимируемой функции) можно командой plot (f, h)=1.
62
Для фильтров, коэффициент передачи которых на частоте Найквиста не равен нулю, возможен только чётный порядок. Если задать нечётное n, то будет рассчитан ЦФ, порядок которого на единицу больше заданного.
Остальные входные параметры функции fir2 являются необязательными. Параметр Npt задаёт число точек, используемое при интерполяции заданной АЧХ (по умолчанию его значение равно 512). Параметр lap задаёт ширину переходных полос вокруг скачков аппрокимируемой АЧХ. При интерполяции в этих полосах вместо скачка будет сформирован линейный переход. Ширина переходов измеряется в точках интерполяции и по умолчанию равна 25.
Параметр window задаёт используемое при синтезе окно. Это должен быть вектор-столбец, содержащий n+1 элементов. По умолчанию используется окно Хэмминга, рассчитываемое путём вызова функции hamming (n+1).
Результатом работы функции fir2 является вектор a коэффициентов передаточной функции нерекурсивного фильтра. Синтезированный фильтр имеет линейную ФЧХ и вносит групповую задержку, независимо от частоты равную n/2 отсчётов.
Синтез фильтра выполняется следующим образом: заданная АЧХ (аппроксимируемая функция) интерполируется кусочно-линейно на равномерную сетку из Npt точек, обратное дискретное преобразование Фурье даёт импульсную характеристику, она симметрично усекается до n+1 отсчётов и для ослабления эффектов усечения умножается на используемую оконную функцию.
Построение графиков АЧХ и ФЧХ осуществляется командой freqz(h,1) или freqz(h,1,N) % N – число отсчетов АЧХ и ФЧХ.
Графики АЧХ и ФЧХ строятся в диапазоне 0 – 1 нормированных (по частоте Найквиста Fd/2) значений частоты частот.
Вычисление сигнала на выходе цифрового фильтра выполняется с помощью функции свертки: y=conv(x,h) с помощью функции дискретной фильтра-
ции: y=filter(h, 1, x).
ЗАДАЧА 4
Выполнить операцию преобразования частоты дискретизации для входного сигнала. Входной сигнал состоит из суммы двух гармонических составляющих с частотами F1 и F2. Получить реализацию сигнала на длительности 1 сек.
Определить параметры цифрового ФНЧ фильтра-интерполятора и филь- тра-дециматора для предотвращения наложения спектральных составляющих при интерполяции и децимации (определить порядок фильтра и границы полос). Выбрать фильтр, отвечающий требованиям, как интерполяции, так и децимации. Метод расчета – весовых окон или частотной выборки. Подавление в полосе задерживания – 50 дБ. Порядок интерполяции l и децимации m.
Расчет, построение временных и спектральных диаграмм в точках преобразований можно выполнять при помощи пакетов Matlab fdatool и sptool.
63
Интерполяция и децимация с соответствующей фильтрацией выполняется при помощи команды y = upfirdn(x,h,l,m), где y – выходной сигнал, х – входной сигнал, h – вектор отсчетов импульсной реакции фильтра, l – коэффициент интерполяции, m – коэффициент децимации. При интерполяции коэффициент децимации m выбирается равным 1, аналогично при децимации коэффициент интерполяции l выбирается равным 1.
Привести результаты проектирования:
Структурная схема преобразования частоты дискретизации.
Параметры цифровых фильтров интерполяции и децимации, общего фильтра.
Отрезок входного сигнала. Спектр входного сигнала.
Спектр сигнала после интерполяции. АЧХ, ФЧХ и ИР рассчитанного фильтра.
Отрезок выходного сигнала после децимации. Спектр сигнала после децимации.
Номер |
F1, |
F2, |
Коэффициент |
Коэффициент |
Частота дис- |
|
интерполяции |
децимации |
кретизации |
||||
варианта |
Гц |
Гц |
||||
L |
M |
Fs, Гц |
||||
|
|
|
||||
|
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
|
1 |
400 |
800 |
3 |
5 |
2000 |
|
|
|
|
|
|
|
|
2 |
1200 |
2400 |
3 |
4 |
9600 |
|
3 |
600 |
1200 |
2 |
7 |
4800 |
|
4 |
250 |
1300 |
2 |
3 |
5000 |
|
5 |
2400 |
5200 |
5 |
3 |
19200 |
|
6 |
400 |
3800 |
2 |
5 |
13000 |
|
7 |
240 |
2400 |
3 |
8 |
6400 |
|
8 |
200 |
1000 |
3 |
7 |
2400 |
|
9 |
1400 |
2500 |
2 |
5 |
5500 |
|
10 |
800 |
2600 |
4 |
7 |
7700 |
|
11 |
2200 |
4500 |
3 |
5 |
9600 |
|
12 |
600 |
1100 |
2 |
5 |
2400 |
|
13 |
800 |
2000 |
6 |
4 |
4500 |
|
14 |
200 |
1200 |
7 |
2 |
3200 |
|
15 |
300 |
800 |
4 |
7 |
2700 |
|
16 |
2800 |
4400 |
3 |
8 |
14200 |
|
17 |
2000 |
3800 |
4 |
5 |
8400 |
|
18 |
300 |
2500 |
3 |
7 |
7500 |
|
19 |
250 |
2100 |
7 |
9 |
4800 |
|
20 |
2500 |
6400 |
3 |
5 |
15000 |
|
21 |
120 |
400 |
5 |
8 |
1200 |
|
|
|
|
64 |
|
|
1 |
2 |
3 |
4 |
5 |
6 |
22 |
430 |
960 |
3 |
7 |
2300 |
23 |
200 |
1800 |
2 |
5 |
4800 |
24 |
2000 |
5400 |
5 |
3 |
12000 |
25 |
280 |
1600 |
2 |
7 |
4200 |
26 |
450 |
1200 |
4 |
5 |
3600 |
65
Литература
1.Рабинер Л, Гоулд Б. Теория и применение цифровой обработки сигналов: Пер. с англ./ под ред. Ю. И. Александрова.- М.: Мир, 1978.
2.Оппенгейм А. В., Шафер Р. В. Цифровая обработка сигналов: Пер. с англ. / под ред. С. Я. Шаца.- М.: Связь, 1979.
3.Сергиенко А.Б. Цифровая обработка сигналов: Учеб. пособие.- 3-е изд.- СПб. БХВ-Петербург, 2011.- 768 с.
4.Солонина А. И., Арбузов С. М. Цифровая обработка сигналов. Моделирование в MATLAB: БХВ-Петербург, 2008 г.- 814 с.
5.Дьяконов В. П. MATLAB 7.*/R2006/2007: Самоучитель.- «ДМК-Пресс», Москва, 2008.- С. 768.
66
Калачиков Александр Александрович
Математические основы цифровой обработки сигналов
Методические указания к практическим занятиям
Редактор: С.В. Воробьева Корректор: В.В. Сиделина
Подписано в печать 03.02.2014г.
формат бумаги 60x84/16, отпечатано на ризографе, шрифт №10 изд.л. 4,2; заказ № 07, тираж 50, СибГУТИ.
630102, Новосибирск, ул.Кирова 86