Распродажа

Электронные компоненты со склада по низким ценам, подробнее >>>

Содержание ChipNews

2003: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
2002: 
1, 5, 6, 7, 8, 9
2001: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
2000: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
1999: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Новости электроники

Мне нравится

Комментарии

дима пишет в теме Параметры биполярных транзисторов серии КТ827:

люди куплю транзистар кт 827А 0688759652

тамара плохова пишет в теме Журнал Радио 9 номер 1971 год. :

как молоды мы были и как быстро пробежали годы кулотино самое счастливое мое время

Ивашка пишет в теме Параметры отечественных излучающих диодов ИК диапазона:

Светодиод - это диод который излучает свет. А если диод имеет ИК излучение, то это ИК диод, а не "ИК светодиод" и "Светодиод инфракрасный", как указано на сайте.

Владимир пишет в теме 2Т963А-2 (RUS) со склада в Москве. Транзистор биполярный отечественный:

Подскажите 2т963а-2 гарантийный срок

Владимир II пишет... пишет в теме Параметры биполярных транзисторов серии КТ372:

Спасибо!

MatLab для DSP. Расчет цифровых фильтров с учетом эффектов квантования

В. Анохин, А. Ланнэ

MatLab для DSP. Расчет цифровых фильтров с учетом эффектов квантования

Разработчики цифровых фильтров, использующие в своей работе пакет MATLAB, несомненно, смогли оценить многочисленные достоинства интерактивной графической программы (GUI) sptool [1]. Тем не менее, результаты, получаемые с помощью sptool, не всегда достаточны для специалистов, занимающихся проектированием и реализацией цифровых фильтров на базе специализированных, в частности, сигнальных, процессоров (DSP).

Характеристики фильтра, рассчитанно го на PC и реализованного на DSP, могут существенно отличаться. Это связано с тем, что разные цифровые системы (в том числе и персональный компьютер, на котором выполнялся расч╦т фильтра) используют различные типы арифметики (с плавающей или фиксированной точкой), имеют различные форматы и, как следствие, различный динамический диапазон и различную точность представления чисел. В итоге параметры фильтров, отсч╦ты входных и выходных сигналов представляются лишь значениями из конечного набора чисел, то есть являются квантованными по уровню. Эффекты квантования отражаются также и на результатах математических операций, выполняемых сумматорами и умножителями. Из сказанного следует, что процесс проектирования должен включать процедуры коррекции полученных результатов с уч╦том эффектов квантования применительно к тем процессорам, на которых предполагается реализовывать синтезируемые фильтры. Эти процессоры, а также вычислительные системы, построенные на их основе, будем называть целевыми (в англоязычной литературе - Target Processors, Target Computers).

В последней версии MATLAB 6 (Release 12) появилась новая библиотека (toolbox) Filter Design, предназначенная для решения такого рода задач. Функции этой библиотеки дают возможность работать с тремя типами объектов - квантователями сигналов, квантованными фильтрами и квантованным преобразованием Фурье, используя разные форматы представления чисел. На-ряду с функциями, позволяющими разрабатывать собственные программы, библиотека имеет интерактивную графическую программу (GUI) fdatool, с помощью которой можно рассчитывать цифровые фильтры с уч╦том эффектов квантования, а также выбирать стандартные и определяемые пользователем форматы представления чисел. Помимо этого, fdatool предоставляет многочисленные варианты реализационных схем, что да╦т возможность оптимизировать решения по совокупности таких параметров, как динамический диапазон, шумы арифметики, объ╦м вычислений на отсч╦т, предельные циклы. И хотя методы такой оптимизации в данном GUI не рассмотрены, представленные многочисленные структуры фильтра позволяют содержательно обсуждать подобные задачи.

Материал настоящей статьи излагается в следующей последовательности. Во втором разделе да╦тся описание основных областей и органов управления главного окна программы fdatool. В третьем - формулируется задача проектирования цифрового филь-тра, в процессе решения которой излагается дальнейший материал. Четв╦ртый и пятый разделы содержат информацию о форматах представления чисел и особенностях выполнения операций при использовании арифметики с фиксированной и плавающей точкой. В шестом разделе показаны некоторые при╦мы работы и возможности программы fdatool по расч╦ту цифровых фильтров с уч╦том эффектов квантования.

Описание главного окна программы

Главное окно программы показано на рис. 1, оно появляется на экране после загрузки программы, для чего надо набрать е╦ имя:

>> fdatool.

Рисунок 1. Главное окно программы fdatool

Главное окно программы fdatool.

Как видно из рисунка, главное окно включает несколько областей, или разделов для ввода и вывода необходимой информации. В левом верхнем углу находится раздел Current Filter Information (информация о фильтре), где отображается информация о фильтре, с которым в текущий момент выполняется работа, а именно:

  • форма реализации;
  • источник (получен ли фильтр с помощью fdatool или импортирован из другого приложения);
  • устойчивость;
  • количество звеньев.

В дополнение к перечисленному, в этом разделе находится кнопка Convert Structure (преобразовать структуру), с помощью которой можно выбирать форму (схему) реализации фильтра.

Правее раздела Current Filter Infor-mation находится область, предназначенная для графического и численного отображений следующих характеристик и параметров фильтров:

  • Filter Specifications (спецификация);
  • Magnitude Response (амплитудно-частотная характеристика, или АЧХ);
  • Phase Response (фазо-частотная характеристика, или ФЧХ);
  • Magnitude and Phase Response (АЧХ и ФЧХ);
  • Group Delay (групповое время задержки);
  • Impulse Response (импульсная характеристика);
  • Step Response (переходная характеристика);
  • Pole/Zero Plot (полюсы и нули);
  • Filter Coefficients (коэффициенты фильтра).

Сразу после загрузки программы в этой области, как показано на рис. 1, отображается окно спецификации фильтра. Для отображения того или иного окна нужно нажать на одну из кнопок, расположенных вверху главного окна под строкой меню. Эти кнопки, а также их назначения показаны на рис. 2 в виде увеличенного фрагмента главного окна. Кроме отмеченных кнопок, те же действия можно выполнить, выбирая соответствующие пункты меню Analysis.

Рисунок 2. Управляющие кнопки для отображения характеристик и параметров фильтров

Управляющие кнопки для отображения характеристик и параметров фильтров.

Нижняя половина главного окна содержит две страницы: Design Filter (проектирование фильтра) и Set Quantization Parameters (установка параметров дискретизации), прич╦м сразу после загрузки программы активна страница Design Filter (рис. 1), заполнение которой позволяет рассчитывать фильтры без уч╦та эффектов квантования, то есть с машинной точностью. В левой части этой страницы располагаются разделы Filter Type (выбор типа фильтра) и Design Method (метод проектирования). Выбрав соответствующую строку раздела Filter Type, пользователь тем самым выбирает фильтр, который собирается проектировать. Выбор включает следующие типы фильтров:

  • Lowpass (нижних частот);
  • Highpass (верхних частот);
  • Bandpass (полоснопропускающий);
  • Bandstop (полоснозаграждающий);

а также следующие типы специализированных цифровых цепей:

  • Differentiator (дифференциатор);
  • Hilbert Transformer (преобразователь Гильберта);
  • Multiband (многополосный фильтр);
  • Arbitrary Magnitude (фильтр с произвольной АЧХ, форма которой определяется пользователем);
  • Arbitrary Group Delay (фильтр с произвольным групповым временем задержки).

Раздел Design Method позволяет сделать выбор между фильтрами с бесконечными и конечными импульсными характеристиками (IIR - Infinite Impulse Response и FIR - Finite Impulse Response, соответственно). В случае выбора IIR-фильтров, необходимо конкретизировать вид проектируемого фильтра: Баттерворта, Чебышева 1-го рода, Чебышева 2-го рода и эллиптический (рис. 3а). Если же выбраны FIR-фильтры, выбор включает расч╦т равноволновых фильтров, а также расч╦т методом наименьших квадратов и оконным методом (рис. 3б). Если проектирование выполняется оконным методом, активизируется область Window Specifications (спецификация окна), расположенная рядом с областью Design Method, в которой имеется раскрывающееся меню Window с набором спектральных окон.

Рисунок 3. Выбор метода расч╦та при проектировании фильтров с бесконечными (а) и конечными (б) импульсными характеристиками

Выбор метода расч╦та при проектировании фильтров с бесконечными (а) и конечными (б) импульсными характеристиками.

Правую часть страницы Filter Design занимают разделы Frequency Speci-fications и Magnitude Specifications (частотные и амплитудные спецификации, соответственно). Первый из них содержит редактируемые окна для ввода значений частоты дискретизации Fs и граничных частот полос пропускания Fpass и задерживания Fstop, а также единиц измерения АЧХ - Units, прич╦м количество граничных частот зависит от типа фильтра, задаваемого в разделе Filter Type. Второй раздел - Magnitude Specifications - позволяет задать ограничения амплитудной характеристики проектируемого фильтра для областей пропускания (Apass или Wpass) и задерживания (Astop или Wstop). Оба обсуждаемых раздела имеют раскрывающиеся меню Units для выбора единиц измерения частоты и амплитуды. На странице Filter Design имеется ещ╦ одна область, а именно Filter Order (порядок фильтра), в которой можно указать явно порядок проектируемого фильтра, либо потребовать, чтобы программа автоматически выбрала наименьший порядок, в соответствии с введ╦нной спецификацией.

Теперь, когда известны назначения разделов страницы Design Filter, можно было бы приступить к описанию второй страницы - Set Quantization Parameters, однако анализировать эффекты квантования удобнее и нагляднее, если уже имеется спроектированный цифровой фильтр, коэффициенты которого рассчитаны с машинной точностью. Придерживаясь терминологии, используемой в справочной системе MATLAB, цифровой фильтр, коэффициенты которого рассчитаны с машинной точностью, будем называть цифровым фильтром-прототипом (в оригинале - Referenced Filter).

Проектирование цифрового фильтра: постановка задачи и квантование параметров

Рисунок 4. Страница Design Filter, содержащая данные табл. 1

Страница Design Filter, содержащая данные табл. 1.

Таблица 1

Частота дискретизации 48 кГц
Полоса задерживания 1 от 0 до 7,2 кГц
Полоса пропускания от 8 до 12 кГц
Полоса задерживания 2 от 12,8 до 24 кГц
Минимально допустимое ослабление в полосе задерживания 1 80 дБ
Максимально допустимое ослабление в полосе пропускания 1 дБ
Минимально допустимое подавление в полосе задерживания 2 80 дБ
Порядок фильтра минимальный для заданных требований

Для иллюстрации и обсуждения эффектов квантования решим следующую задачу: спроектировать цифровой эллиптический полосовой фильтр, требования к которому заданы в табл. 1. Для этого нам необходимо выделить и заполнить соответствующие позиции на странице Filter Design главного окна fdatool, как показано на рис. 4, после чего нажать на клавишу Design Filter, расположенную внизу окна. После завершения расч╦та в верхней части окна будут представлены результаты (рис. 5). Как видно из рисунка, в области отображения характеристик и параметров выводится АЧХ полученного фильтра, однако пользователь может, по мере необходимости, для вывода переключать е╦ содержимое, например, импульсной характеристики, полюсов и нулей и так далее.

Рисунок 5. Амплитудно-частотная характеристика фильтра-прототипа

Амплитудно-частотная характеристика фильтра-прототипа.

До настоящего момента все операции над данными выполнялись с машинной точностью, когда для представления чисел использовался формат double (в соответствии с этим форматом для записи и хранения числа отводится 8 байт). Теперь проанализируем, что произойд╦т при изменении формата представления чисел. Такая потребность возникает, когда необходимо выполнить эмуляцию работы построенного фильтра на базе целевого процессора, использующего отличные от PC форматы данных. В главном окне, ниже раздела Current Filter Information, находится раздел Quanti-zation, содержащий единственное поле Turn Quantization On. Для запуска процедуры расч╦та установим в этом поле флажок, запустив тем самым процедуру расч╦та квантованного фильтра с параметрами квантования, заданными по умолчанию. (Также по умолчанию расч╦т выполняется для прямой реализации фильтра.)

По окончании процедуры расч╦та, АЧХ нового (квантованного) фильтра наложится на АЧХ фильтра-прототипа, рассчитанного ранее. Область отображения характеристик будет выглядеть так, как показано на рис. 6, где АЧХ фильтра-прототипа обозначена как Reference, а квантованного - как Quantized. Из графиков видно, что АЧХ фильтра, с уч╦том эффектов квантования (Quantized), существенно отличается от соответствующей характеристики фильтра-прототипа (Reference). Сохраним полученные результаты на диске, для чего откроем меню File и выберем раздел Save Session As┘

Рисунок 6. Амплитудно-частотные характеристики фильтра-прототипа и квантованного фильтра

Амплитудно-частотные характеристики фильтра-прототипа и квантованного фильтра.

Чтобы разобраться в причинах, приведших к таким сильным изменениям, перейд╦м на страницу Set Quantization Parameters, показанную на рис. 7, и проанализируем е╦ содержимое. Как следует из рисунка, имеется пять видов объектов, которые подвергаются квантованию:

  • Coefficient (коэффициенты фильтра);
  • Input (входные сигналы);
  • Output (выходные сигналы);
  • Multiplicand (множимые);
  • Product (произведения);
  • Sum (суммы).

Рисунок 7. Общий вид страницы Set Quantization Parameters

Общий вид страницы Set Quantization Parameters.

Для выполнения операции квантования используются квантователи перечисленных объектов. Таким образом, квантованный фильтр представляет собой нелинейную цифровую систему, включающую:

  • квантователь входного сигнала;
  • собственно фильтр с квантованными значениями коэффициентов, квантователями множимых (сигналов навходах умножителей), произведений (сигналов на выходах умножителей) и сумм (сигналов на выходах сумматоров);
  • квантователь выходного сигнала.

Пример квантованного филь-тра 2-го порядка показан на рис. 8, где введены следующие обозначения:

  • q1 - квантователь коэффициентов;
  • q2 - квантователь входного сигнала;
  • q3 - квантователь выходного сигнала;
  • q4 - квантователь множимого;
  • q5 - квантователь произведения;
  • q6 - квантователь суммы.

Рисунок 8. Структурные схемы фильтра-прототипа и кантованного фильтра 2-го порядка

Структурные схемы фильтра-прототипа и кантованного фильтра 2-го порядка.

Свойства квантованного фильтра в целом зависят от параметров каждого из перечисленных квантователей. Эти параметры определяются содержимым пяти колонок, или полей, расположенных правее им╦н объектов квантования (рис. 7). Параметры определяют, каким образом формируется сигнал или вычисляется коэффициент на выходе соответствующего квантователя.

Свойства квантованного фильтра зависят также от структуры, или формы реализации фильтра. В левом ниж-нем углу страницы Set Quantization Parameters имеется клавиша Show filter structures┘, нажав на которую пользователь получит возможность просмотреть различные формы реализации фильтров. Подчеркн╦м, что появляющие-ся схемы никак не связаны с тем фильтром, который проектируется в момент просмотра. Их можно интерпретировать как своего рода справочник или альбом, помогающий пользователю сделать свой выбор. Для выбора структуры фильтра необходимо в главном окне нажать кнопку Convert Structure, в появившемся окне выделить желаемую структуру и нажать OK.

Говоря о квантователях, прежде всего подчеркн╦м тот очевидный факт, что реализация любого цифрового фильтра основывается на использовании арифметики с фиксированной или плавающей точкой (Fixed-Point или Floating-Point Arithmetic, соответственно). В связи с этим, остановимся кратко на форматах представления чисел и особенностях выполнения арифметических операций в программе fdatool.

Арифметика с фиксированной точкой: форматы данных и реализация операций

Выбор работы каждого из квантователей в режиме с фиксированной или плавающей точкой зада╦тся значениями параметров колонки Mode, расположенной на странице Set Quan-tization Parameters. Для реализации арифметики с фиксированной точкой необходимо выбрать значение fixed.

Двоичные числа с фиксированной точкой определяются в битах длиной слова w и длиной дробной части числа f. При этом длина дробной части может быть задана в диапазоне от 0 до w - 1 бит. Общее представление числа в формате с фиксированной точкой показано на рис. 9. Пользователь может задавать длину слова до 64-х бит включительно, однако побитовое соответствие результатов моделирования с помощью fdatool и реальной работы целевого компьютера обеспечивается, если длина слова определена в пределах 53 бит. Если же выбранная длина слова находится в диапазоне 54 w 64, то происходит потеря значимости, то есть в младшие биты записываются нули. В пакете MATLAB и, в частности, в функциях библиотеки Filter Design, формат для чисел с фиксированной точкой зада╦тся в виде [w, f] в колонке format.

Рисунок 9. Общее представление числа в формате с фиксированной точкой

Общее представление числа в формате с фиксированной точкой.

Числа с фиксированной точкой могут быть беззнаковыми или со знаком. В первом случае старший бит, как и остальные, используется для представления величины числа, тогда как во втором - для его знака (0 соответствует знаку "плюс", 1 - знаку "минус"). Динамический диапазон для беззнаковых чисел равен [0, 2w√f√2-f ], а для чисел со знаком - [√2w√f-1, 2w√f-1√2-f]. В обоих случаях точность, то есть разность двух ближайших чисел в данном формате, равна = 2-f.

В связи с тем, что результатом квантования является замена квантуемой величины числом из конечного, предопредел╦нного набора чисел, называемых уровнями квантования, необходимо ввести информацию о том, каким образом эту замену выполнять (значения и число уровней квантования определяются используемым форматом). Для этого в программе fdatool имеется поле Round mode, где для каждого квантователя можно выбрать способ округления. Пользователь имеет возможность выбрать один из следующих режимов:

  • ceil - результат равен значению ближайшего уровня квантования в сторону плюс бесконечности;
  • fix - результат равен значению ближайшего уровня квантования в сторону нуля;
  • floor - результат равен значению ближайшего уровня квантования в сторону минус бесконечности;
  • round - результат равен значению ближайшего уровня квантования; если квантуемая отрицательная величина лежит ровно посередине между уровнями квантования, результатом является значение ближайшего уровня в сторону минус бесконечности;

    если квантуемая положительная величина лежит ровно посередине между уровнями квантования, результатом является значение ближайшего уровня квантования в сторону плюс бесконечности;

  • convergent - способ округления такой же, как и round, однако, если квантуемая величина лежит ровно посередине между уровнями квантования, то округление по правилам round выполняется лишь в том случае, когда в младший бит после округления записывается единица.

Когда квантованию подвергается величина, значение которой находится за пределами динамического диапазона квантователя, возникает явление переполнения. Способ обработки таких величин зада╦тся в поле Overflow Mode (режим переполнения) для каждого квантователя. Пользователь может выбрать режим saturate или wrap.

Режим saturate означает разрешение работы с насыщением: квантуемая величина, лежащая вне динамического диапазона, полагается равной ближайшему предельно допустимому числу. В случае выбора режима wrap, старшие биты квантуемой величины, лежащей вне динамического диапазона, будут отброшены, и результат квантования будет представлен младшими w-битами, при этом для чисел со знаком старший бит b>w√1рис. 9).

Рассмотрим следующий пример. Пусть имеются два квантователя - q1 и q2, для которых задан формат fixed [3 2], и пусть первый из них работает в режиме saturate, а второй ≈ в режиме wrap. В этом случае шаг квантования для обоих квантователей = 0,25, динамический диапазон - [-1, 0,75]. Если входная квантуемая величина равна 1,25, то на выходах этих квантователей будем иметь:

0,75 для квантователя q1;
-0,75 для квантователя q2.

Аналогично, если квантуемая величина равна -1,25, результатами квантования будут следующие значения:

-1 для квантователя q1;
0,75 для квантователя q2.

На рис. рис. 10 а-г показано, как формируются значения на выходе каждого из квантователей для рассмотренных четыр╦х случаев.

Рисунок 10. Варианты квантования в режиме переполнения: положительного числа квантователем q1 (а), положительного числа квантователем q2 (б), отрицательного числа квантователем q1 (в) и отрицательного числа квантователем q2 (г)

Варианты квантования в режиме переполнения: положительного числа квантователем q1 (а), положительного числа квантователем q2 (б), отрицательного числа квантователем q1 (в) и отрицательного числа квантователем q2 (г).

Функции библиотеки Filter Designer позволяют использовать два типа квантователей: quantizer и unitquantizer. Они работают практически одинаково, за исключением того, что на выходе квантователя unitquantizer будет единица, если на его вход поступает величина из диапазона [1√, 1+]. Например, пусть тип первого из рассмотренных нами выше квантователей (q1) quantizer, а второго (q2) - unitquantizer. Если на вход q1 подать единицу, то возникнет переполнение, так как используется формат fixed [3, 2], и на выходе будет значение 0,75 (максимальная величина динамического диапазона квантователя q1). Если же единицу подать на вход квантователя q2, переполнения не возникнет, а на его выходе будет единица. В fdatool выбор типа квантователя осуществляется на странице Set Quantization Parameters в колонке Quantizer Type.

Арифметика с плавающей точкой: форматы данных и реализация операций

Недостатком описания чисел в формате с фиксированной точкой является неудобство представления очень больших и очень маленьких чисел при использовании разумной длины слова w. Это ограничение снимается, если используется формат описания с плавающей точкой. Любое двоичное число с плавающей точкой можно представить в виде ±F·2E, где F обозначает мантиссу, или дробную часть, 2 - основание системы исчисления, а E - порядок. Длина слова при представлении числа в формате с плавающей точкой - w = f+e+1, где f - количество бит, отводимых для хранения мантиссы (длина мантиссы), а e - количество бит, отводимых для хранения порядка (длина порядка). Ещ╦ один бит используется для записи знака числа, он обозначается символом s (sign). Знаковый бит положительного числа содержит нуль (s = 0), отрицательного - единицу (s = 1). Общее представление числа в формате с плавающей точкой показано на рис. 11 а.

Рисунок 11. Представление числа в формате с плавающей точкой: общее представление (а), а также форматы single (б) и double (в)

Представление числа в формате с плавающей точкой: общее представление (а), а также форматы single (б) и double (в).

Работая с библиотекой Filter Design и, в частности, с программой fdatool, пользователь может применять один из тр╦х форматов с плавающей точкой: single, double (с обычной и двойной точностью, соответственно), определяемые стандартом IEEE 754 для двоичной арифметики с плавающей точкой, а также формат float. Выбор того или иного формата осуществляется, как ранее было отмечено, в окнах колонки Mode страницы Set Quantization Parameters. В колонке Format устанавливается спецификация формата, имеющая ту же форму, что и для арифметики с фиксированной точкой: [w, f], где w - длина слова, f - длина мантиссы.

В соответствии со стандартом IEEE 754, показатель записывается со смещением B. Это значит, что для получения истинного значения порядка надо из содержимого поля порядка, то есть из величины E, вычесть величину B, определяемую по формуле

B = 2e-1 √ 1.

Например, если длина порядка равна 8 (e = 8), то E может принимать значения в интервале [0, 255]. Значит, значение порядка лежит в пределах интервала

[0, 255] √ (28-1 √ 1) = [0, 255] √ 127 = [-127, 128].

В системе MATLAB граничные значения порядка зарезервированы для особых случаев, например, для отображения результатов деления конечной величины на нуль (inf), деления нуля на нуль (NaN) и др. Поэтому в привед╦нном примере диапазон порядка лежит в интервале [-126, 127].

Мантиссу числа с плавающей точкой можно записать по-разному. Сдвигая позицию двоичной точки влево или вправо, надо лишь соответствующим образом увеличивать или уменьшать порядок. Для достижения наибольшей точности мантиссу логично было бы расположить так, чтобы е╦ старший бит (ближайший справа от точки) содержал единицу. Однако, раз при таком расположении содержимое старшего бита мантиссы всегда единица, е╦ нет нужды запоминать. Этот бит является скрытым. Следовательно, если под мантиссу отведено e бит, запоминается на самом деле e+1 бит (e бит, следующие за старшим, скрытым битом мантиссы, плюс скрытый бит). Таким образом, взаимосвязь между величиной, записанной в формате, показанном на рис. 11 а, и истинным значением v зада╦тся в виде

v = (-1)s(2E-B)(1.F).

Числа, представленные таким способом, называются нормализованными.

В некоторых случаях может возникнуть ситуация, когда результатом какой-либо арифметической операции является число, имеющее такое маленькое абсолютное значение, что для него величина

E = порядок + B < 0.

Это явление называется исчезновением разрядов порядка, или антипереполнением порядка. Для того, чтобы увеличить порядок и тем самым избежать явления переполнения, используются денормализованные числа. Они получаются из нормализованного представления сдвигом мантиссы вправо и соответствующим увеличением порядка (то есть уменьшением модуля порядка). Для денормализованных чисел взаимосвязь записи в формате, показанном на рис. 11 а, и истинного значения определяется соотношением

v = (-1)s(2-B+1)(0.F).

Читатель может заметить, что для задания знака числа с плавающей точкой отвед╦н один бит, в то время как знак имеет и мантисса, и порядок. В описываемых форматах знаковый бит содержит знак мантиссы, знак же порядка определяется по результату вычитания смещения B из содержимого поля порядка E.

Представления чисел при использовании форматов single и double показаны на рис. 11 б и в, соответственно. При выборе одного из этих форматов автоматически устанавливаются параметры в колонках Round mode, Overflow mode и Format. Параметрами Round mode в этом случае являются значения round, а Overflow mode - saturate. В табл. 2 указаны допустимые значения порядков и численных значений при использовании форматов single и double.

Таблица 2. Допустимые значения порядков и численных значений при использовании форматов single и double

Формат Single double
Порядок Значение Порядок Значение
Нормали- зованные 0 < E < 255 v = (-1)s(2E-127)(1.F) 0 < E < 2047 v = (-1)s(2E-1023)(1.F )
Денормали- зованные E = 0 v = (-1)s(2-126)(0.F) E = 0 v = (-1)s(2-1022)(0.F )

Ещ╦ один формат, с которым работает fdatool - это float. Представление чисел в этом формате также соответствует привед╦нным выше формулам и обозначениям, показанным на рис. 11 а, но в этом случае пользователь может произвольно задавать длину мантиссы и порядка, а также устанавливать значения в полях Format и Round mode. При этом длина порядка должна находиться в интервале 1 e 11, а длина слова - в интервале e+1 w 64. Независимо от выбранного формата (single, double или float), в случае возникновения переполнения на выходе соответствующего квантователя устанавливается значение inf или -inf, поэтому окна колонки Overflow mode неактивны.

Рисунок 12. Параметры фильтра-прототипа и квантованного фильтра

Quantized Direct form II transposed filter
Numerator
  QuantizedCoefficients{1} ReferenceCoefficients{1}
( 1) 0.000335693359375 0.000330315544487904
( 2) -0.001007080078125 -0.001020081231375195
( 3) 0.002593994140625 0.002580261271031570
( 4) -0.004577636718750 -0.004580740133027181
( 5) 0.007354736328125 0.007347725797754056
( 6) -0.009704589843750 -0.009715041792670265
( 7) 0.011993408203125 0.011986955602516003
( 8) -0.013122558593750 -0.013120022874790487
( 9) 0.013793945312500 0.013803049933740345
(10) -0.013122558593750 -0.013120022874790454
(11) 0.011993408203125 0.011986955602515940
(12) -0.009704589843750 -0.009715041792670199
(13) 0.007354736328125 0.007347725797753998
(14) -0.004577636718750 -0.004580740133027142
(15) 0.002593994140625 0.002580261271031547
(16) -0.001007080078125 -0.001020081231375187
(17) 0.000335693359375 0.000330315544487902
Denominator
  QuantizedCoefficients{2} ReferenceCoefficients{2}
+( 1) 0.999969482421875 1
-( 2) -1.000000000000000 -4.0016106715603197
+( 3) 0.999969482421875 13.979587570568736
-( 4) -1.000000000000000 -31.703958726815337
+( 5) 0.999969482421875 63.654203987427906
-( 6) -1.000000000000000 -100.21434456606917
+( 7) 0.999969482421875 141.70189019442469
-( 8) -1.000000000000000 -166.01889747992664
+( 9) 0.999969482421875 175.86734947768485
-(10) -1.000000000000000 -156.48177861802839
+(11) 0.999969482421875 125.88638778866985
-(12) -1.000000000000000 -83.883343560153804
+(13) 0.999969482421875 50.201260500070624
-(14) -1.000000000000000 -23.538510095548396
+(15) 0.999969482421875 9.7742984716347578
-(16) -1.000000000000000 -2.6300444174959825
  (17) 0.619323730468750 0.61932234850652279
FilterStructure = df2t
ScaleValues = [1]
NumberOfSections = 1
StatesPerSection = [16]
CoefficientFormat = quantizer(⌠fixed■, ⌠round■, ⌠saturate■, [16 15])
InputFormat = quantizer(⌠fixed■, ⌠floor■, ⌠saturate■, [16 15])
OutputFormat = quantizer(⌠fixed■, ⌠floor■, ⌠saturate■, [16 15])
MultiplicandFormat = quantizer(⌠fixed■, ⌠floor■, ⌠saturate■, [16 15])
ProductFormat = quantizer(⌠fixed■, ⌠floor■, ⌠saturate■, [32 30])
SumFormat = quantizer(⌠fixed■, ⌠floor■, ⌠saturate■, [32 30])
Warning: 16 overflows in coefficients.

Проектирование цифрового фильтра: квантование параметров и анализ результатов

Теперь, после знакомства с основными причинами, порождающими эффекты квантования, вновь обратимся к нашей задаче проектирования цифрового фильтра. Ясно, что различие между АЧХ фильтра-прототипа и АЧХ квантованного фильтра (рис. 6) при выбранной структуре связано с установками параметров квантования. Как видно из рис. 7, в данном случае использовались форматы с фиксированной точкой [16, 15] и [32, 30], что соответствует значению fixed в поле Mode и значениям [16, 15] для квантователей Coefficient, Input, Output и Multiplicand в поле Format. Для квантователей Product и Sum используемый формат - [32, 30].

Для того, чтобы сравнить коэффициенты фильтров, нажм╦м кнопку "Коэффициенты фильтра" (рис. 2 б). В области отображения параметров распечатается следующая информация, показанная на рис. 12. Как видно из распечатки, все коэффициенты знаменателя передаточной функции фильтра-прототипа, за исключением последнего, превышают по модулю единицу, в то время как установленный формат для квантователя Coefficient равен [16, 15]. Это означает, что единственный бит, не предназначенный для хранения дробной части числа, является знаковым, то есть квантование любого числа, модуль которого больше или равен единице, привед╦т к переполнению. Из-за эффекта переполнения коэффициенты знаменателя квантованного фильтра существенно отличаются от соответствующих коэффициентов фильтра-прототипа, что отмечено в начале каждой строки, за исключением последней, знаком "+" (переполнение в сторону плюс бесконечности) или "√" (переполнение в сторону минус бесконечности).

Попробуем промасштабировать коэффициенты так, чтобы они по модулю не превышали единицу. Это необходимо для повышения точности расч╦тов при реализации фильтров на DSP и осуществляется нажатием кнопки Scale transfer-fcn coeffs <= 1, расположенной в левой верхней части страницы Set Quantization Parameters. Для масштабирования используются коэффициенты, равные степени 2. После выполнения расч╦тов в поле Input/output scaling, расположенном под указанной кнопкой, появятся значения масштабных множителей, на которые умножаются входной и выходной сигналы фильтра с измен╦нными коэффициентами. АЧХ фильтров будут выглядеть так, как показано на рис. 13.

Рисунок 13. Амплитудно-частотные характеристики фильтров после масштабирования коэффициентов

 Амплитудно-частотные характеристики фильтров после масштабирования коэффициентов.

Помимо искажений АЧХ, в результате квантования появляются шумы, фильтр может стать неустойчивым, и возникнут разные виды генерации (например, генерация периодических колебаний, предельные циклы высокого и низкого уровней) [2], что в принципе затрудняет определение АЧХ. fdatool не позволяет решать задачи расч╦та шумов арифметики, расч╦та предельных циклов, оптимизации динамического диапазона и ряд других. Для некоторых из этих целей в MATLAB имеются специальные функции (например, nlm, limitcycle и другие). Однако, исключительно важное значение fdatool состоит в том, что он позволяет создавать нелинейные модели цифровых фильтров, весьма точно отражающих динамику реальных систем. Эти модели и являются объектами для упомянутых выше функций.

Возвращаясь к нашему примеру, щ╦лкнем мышью, поместив предварительно курсор в редактируемое окно Input/output scaling, нажм╦м на клавиатуре Enter, и затем нажм╦м клавишу Apply, находящуюся внизу главного окна fdatool. В области Current Filter Information появится сообщение "Stable: No". В том, что фильтр неустойчив, можно также убедиться, нажав на кнопку Pole/Zero Plot (на рис. 2 она обозначена как "Полюсы и нули"). В результате появится карта нулей и полюсов, показанная на рис. 14, на которой видно, что передаточная функция построенного квантованного фильтра имеет полюсы, лежащие вне единичного круга.

Рисунок 14. Карта нулей и полюсов

Карта нулей и полюсов.

Теперь попробуем решить поставленную задачу иначе, но прежде восстановим наши результаты, записанные на диск. Для этого выберем раздел Open Session меню File и откроем файл. В области Current Filter Information нажм╦м клавишу Convert Structure┘ и в открывшемся окне установим флажок Use second order sections (рис. 15), указав тем самым, что проектируемый квантованный фильтр должен быть реализован звеньями второго порядка. Нажатие кнопки Apply или OK инициализирует расч╦т фильтра в указанной реализации. После вычислений можно убедиться, что АЧХ фильтра-прототипа и квантованного фильтра практически совпадают. Полученный результат показан на рис. 16. Важно обратить внимание на содержимое окна Input/output scaling: в н╦м распечатаны масштабирующие множители для сигналов на входе каждого из звеньев второго порядка, а также для выходного сигнала последнего звена.

Рисунок 15. Установка флажка Use second order sections в окне Convert Structure

Установка флажка Use second order sections в окне Convert Structure.

Рисунок 16. Амплитудно-частотные характеристики фильтра-прототипа и квантованного фильтра, реализованного звеньями второго порядка

Амплитудно-частотные характеристики фильтра-прототипа и квантованного фильтра, реализованного звеньями второго порядка.

Итак, на первый взгляд задача, поставленная в разделе 3 (табл. 1), решена - цифровой фильтр с требуемыми характеристиками построен. Однако следует заметить, что частотная характеристика фильтра, и, в частности, АЧХ, показанная на рис. 16, построена по рассчитанным квантованным коэффициентам в предположении, что фильтр является идеальной линейной системой. Другими словами, при расч╦те частотной характеристики учитывались лишь эффекты квантования коэффициентов фильтра. Для получения реальной частотной характеристики необходимо учесть нелинейные эффекты квантования, связанные с формой реализации (структурой) фильтра и квантованием других параметров, устанавливаемых на странице Set Quantization Parameters.

Чтобы получить частотную характеристику фильтра, построенную с уч╦том указанных факторов, следует выполнить комплексную проверку его работы на основе имитационного моделирования. Рассмотрим, как можно определить АЧХ, вообще говоря, нелинейной системы, используя одну из функций MATLAB - nlm (noise loading method), которая вычисляет оценку частотной характеристики квантованного фильтра с уч╦том всех эффектов квантования. Функция, на основе метода Монте-Карло, выполняет L испытаний, в каждом из которых моделируется прохождение входного сигнала, представляющего собой белый шум, через исследуемый фильтр. По результатам каждого испытания находится оценка частотной характеристики фильтра по спектрам входного и выходного сигналов. Итоговая оценка частотной характеристики вычисляется усреднением оценок частотных характеристик по всем испытаниям.

Перед тем, как воспользоваться функцией nlm, экспортируем наш фильтр в рабочее пространство MATLAB (Work-space). Это выполняется следующим образом. В меню File выбрать раздел Export, в появившемся окне указать, куда экспортировать (Workspace) и имя фильтра (например, Hq1), после чего нажать кнопку OK. После выполнения команды надо перейти в командное окно MATLAB и набрать команду

>> nlm(Hq1,[],50),

по которой будет выполнено моделирование, включающее 50 испытаний. В результате появится окно с графиками АЧХ и ФЧХ, показанное на рис. 17, из которых видно, что построенная нами нелинейная цифровая система, каковым является квантованный фильтр, не удовлетворяет заданным требованиям, изложенным в табл. 1 и показанным на рис. 4. Отметим, что функцию nlm можно вызвать, указав лишь имя фильтра:

>> nlm(Hq1).

Рисунок 17. Результаты моделирования с помощью функции nlm

Результаты моделирования с помощью функции nlm.

В этом случае число испытаний L будет выбрано по умолчанию (L = 10), и получаемые графики будут менее сглаженными.

Очевидно, что для получения желаемого результата нам надо изменить параметры квантования, задаваемые на странице Set Quantization Parameters. Попробуем для всех квантователей, кроме квантователей коэффициентов, переустановить способ округления с floor в convergent и рассчитать новый квантованный фильтр, нажав кнопку Apply. Если затем импортировать полученный фильтр в Workspace и повторить вызов функции nlm к этому фильтру, получим частотную характеристику, показанную на рис. 18. Сравнивая графики, показанные на рис. 17 и 18, видно, что АЧХ последнего фильтра является лучшим приближением к требуемому результату, однако она тоже не удовлетворяет заданным требованиям.

Рисунок 18. Результаты моделирования с помощью функции nlm после замены способа округления с floor на convergent

Результаты моделирования с помощью функции nlm после замены способа округления с floor на convergent.

Обратимся снова к странице Set Quantization Parameters и установим форматы квантователей в соответствии с рис. 19. Повторив процедуру расч╦та, импорта и испытания фильтра с помощью nlm, получим результат, показанный на рис. 20. Как видно из рисунка, АЧХ фильтра-прототипа и квантованного фильтра практически совпадают, то есть полученный фильтр удовлетворяет требованиям, изложенным в табл. 1.

Рисунок 19. Изменение форматов квантователей

Изменение форматов квантователей.

Рисунок 20. Результаты моделирования с помощью функции nlm после замены форматов квантователей

Результаты моделирования с помощью функции nlm после замены форматов квантователей.

Заключение

Материал, изложенный в настоящей статье, следует рассматривать как введение в GUI-fdatool, позволяющее решать ряд практически важных и теоретически интересных задач, связанных с проектированием цифровых фильтров. Главное - это возможность весьма точно моделировать разнообразные структуры цифровых фильтров в режиме нелинейных преобразований, связанных с эффектами квантования, и возможность оценивать интегральные параметры фильтров.

Вместе с тем, многие вопросы синтеза цифровых фильтров с оптимальными либо близкими к таковым характеристиками и учитывающие нелинейные эффекты квантования остались за пределами этой публикации, равно как и за пределами системы MATLAB. Наиболее полную информацию о работе с программой читатель может найти в справочной системе MATLAB [3]. Для этого надо в окне справки MATLAB (окно help) открыть раздел Filter Design Toolbox Using Filter Design Toolbox Quantization Tool Overview.

Литература

  1. Андреев И.И., Ланнэ А.А. MATLAB для DSP: SPTool - инструмент для расч╦та цифровых фильтров и спектрального анализа сигналов // Цифровая обработка сигналов. 2000. ╧ 2. С. 6√13.
  2. Рабинер Л., Гоулд Б. Теория и применение цифровой обработки сигналов. М.: МИР, 1978. 848 с.
  3. Справочная система MATLAB 6. Filter Design Toolbox.





Craigorafe пишет...

Приобрести можно на веб-сайте http://m.1bestone.pw/

Хотим предложить вам чудодейственное средство для снижения веса Mangoosteen. При помощи него возможно сжечь около 10 кг за 2 недели.

Дерево гарциния растет в Малайзии. Плоды данного дерева имеют удивительные свойства. В баночке содержится более 25 плодов этого замечательного дерева. Плоды дерева гарциния помогают сжечь лишнюю жировую ткань. И также положительно воздействуют на организм в целом. Специфика изготовления средства, а также специальная упаковка помогают сберечь все полезные свойства мангустина.

Главным компонентом сиропа Мангустина являются фрукты с растения мангустин, в которых имеется огромное количество полезных микроэлементов. Благодаря веществу ксантону, которое в огромных количествах имеется в плодах, значительно тормозятся окислительные процессы в теле. Ксантон является одним из наиболее сильных антиоксидантов. В плодах растения мангкут также есть разнообразные группы витаминов и микроэлементы. Купить сироп Mangoosteen можно на веб-сайте http://tedsjkpb.bestseller-super.ru.

02/02/2018 14:21:27

Craigorafe пишет...

Приобрести можно на веб-сайте http://otp.bestsky.info

Рады предложить вам потрясающее средство для снижения веса Mangoosteen. При помощи него можно избавиться от 15 kg за 14 суток.

Дерево мангостин произрастает на Шри-Ланке. Плоды данного дерева обладают потрясающими свойствами, которые были взяты за основу препарата Мангустина. В банке имеется около 20 плодов этого замечательного дерева. Плоды с растения мангустин помогают растопить излишнею жировую ткань. И замечательно воздействуют на человека в целом. Специфика изготовления средства, и специализированная упаковка помогают сберечь все полезные свойства гарцинии.

Основным веществом сиропа Мангустина являются плоды с растения мангостин, в них содержится большое число питательных веществ. Благодаря компоненту ксантону, которое в громадных количествах содержатся во фрукте, сильно тормозятся окислительные процессы в организме. Ксантон является одним из самых сильных антиоксидантов. В плодах дерева мангостан к тому же содержатся различные группы витаминов и элементы. Приобрести сироп Мансустина можно на сайте http://tedsjkpb.bestseller-super.ru.

02/02/2018 14:32:18

Craigorafe пишет...

Приобрести можно на веб-сайте http://m.1bestone.pw/

Хотим предложить вам потрясающее средство для снижения веса Mangoosteen. С ним реально сбросить около 15 кг за 14 дней.

Растение мангостан произрастает в Таиланде. Плоды этого дерева имеют замечательные свойства. Во флакончике содержится около 25 плодов данного удивительного растения. Плоды растения мангустин помогают убрать излишнею жировую ткань. Также замечательно влияют на организм в комплексе. Специфика изготовления средства, и уникальная упаковка помогают сохранить все удивительные свойства плодов.

Главным компонентом сиропа Mangoosteen являются фрукты с растения гарциния, в которых содержится огромное количество питательных веществ. Благодаря компоненту ксантону, которое в больших количествах содержатся в плоде, сильно притормаживаются окислительные процессы в организме. Окись дифениленкетона признана одним из наиболее сильных антиоксидантов. В плодах дерева гарциния также есть разные группы витаминов и элементы. Купить сироп Mangoosteen можно на веб-сайте http://tedsjkpb.bestseller-super.ru.

02/02/2018 20:05:46

Craigorafe пишет...

Приобрести можно на веб-сайте http://mangg.bestsky.info

Хотим предложить нашим покупателям инновационное средство для похудения сироп Мангустина. При помощи него можно избавиться от 10 килограмм за 14 дней.

Растение мангостан произрастает на Филиппинах. Плоды дерева обладают потрясающими особенностями, которые были взяты за основу средства Мангустина. В банке имеется более 25 плодов данного удивительного растения. Плоды с дерева мангостин помогают растопить лишнюю жировую ткань. А также положительно влияют на организм в целом. Специфика производства средства, и специальная упаковка позволяют сохранить все полезные свойства мангостина.

Основным действующим веществом сиропа Мангустина являются плоды с растения мангостин, в которых содержится большое количество питательных микроэлементов. Благодаря веществу окиси дифениленкетона, которое в огромных количествах имеется в плодах, значительно тормозятся окислительные процессы в организме. Окись дифениленкетона является одним из самых мощных антиоксидантов. В плоде дерева мангостан также есть разные витамины и микроэлементы. Купить сироп Мансустина можно на сайте http://tedsjkpb.bestseller-super.ru.

02/02/2018 23:34:56

Craigorafe пишет...

Приобрести можно на веб-сайте http://otp.bestsky.info

Рады предложить вам удивительное средство для снижения веса сироп Мангустина. С его помощью можно сжечь около 10 килограмм за 2 недели.

Растение мангостан растет в Малайзии. Плоды данного растения обладают замечательными свойствами, которые были положены в основу средства Мангустина. Во флаконе содержится более 20 плодов данного замечательного дерева. Плоды с растения мангостин помогают растопить лишнюю жировую ткань. Также отлично влияют на человека в комплексе. Технология производства средства, и специализированная упаковка позволяют сберечь все полезные свойства дерева.

Главным действующим компонентом сиропа Мангустина являются фрукты с дерева мангостин, в них содержится большое число полезных микроэлементов. Благодаря веществу ксантону, которое в огромных дозах содержатся в плоде, сильно замедляются процессы окисления в теле. Ксантон является одним из наиболее сильных антиокислителей. В плоде дерева гарциния вдобавок имеются разнообразные группы витаминов и микроэлементы. Приобрести сироп Mangoosteen можно на веб-сайте http://tedsjkpb.bestseller-super.ru.

03/02/2018 02:39:03

Craigorafe пишет...

Приобрести можно на веб-сайте http://mangg.bestsky.info

Предлагаем вам чудодейственное средство для снижения веса Mangoosteen. При помощи него возможно избавиться от 15 килограмм за 14 дней.

Дерево мангостин произрастает в Таиланде. Плоды данного растения имеют удивительные особенности. В банке содержится около 25 плодов данного удивительного растения. Плоды с растения гарциния помогают сжечь чрезмерную липидную ткань. И также замечательно влияют на человека в целом. Специфика изготовления препарата, а также уникальная упаковка позволяют сохранить все удивительные свойства мангостана.

Главным действующим веществом сиропа Mangoosteen являются фрукты с дерева мангостан, в них содержится огромное количество питательных микроэлементов. Благодаря веществу окиси дифениленкетона, которое в больших дозах имеется в плоде, значительно тормозятся процессы окисления в организме. Окись дифениленкетона признается одним из наиболее сильных антиоксидантов. В плодах растения мангустин вдобавок содержатся различные витамины и микроэлементы. Купить сироп Мансустина можно на сайте http://tedsjkpb.bestseller-super.ru.

03/02/2018 09:52:13

Craigorafe пишет...

Приобрести можно на веб-сайте http://otp.bestsky.info

Предлагаем нашим покупателям удивительное средство для похудения сироп Мангустина. С его помощью можно избавиться от 10 kg за 2 недели.

Дерево мангостин произрастает в Малайзии. Плоды данного растения обладают потрясающими свойствами, которые были положены в основу препарата Мангустина. В баночке имеется более 25 плодов этого замечательного растения. Плоды растения мангостин помогают сжечь чрезмерную жировую ткань. И также отлично влияют на организм в комплексе. Технология изготовления средства, и специальная упаковка позволяют сохранить все удивительные свойства дерева.

Главным компонентом сиропа Mangoosteen являются фрукты с дерева мангостан, в которых содержится большое число питательных веществ. Благодаря веществу ксантону, которое в громадных дозах имеется в плодах, сильно тормозятся окислительные процессы в организме. Окись дифениленкетона является одним из самых сильных антиоксидантов. В плодах растения мангустин вдобавок содержатся различные витамины и микроэлементы. Приобрести сироп Мансустина возможно на интернет-сайте http://tedsjkpb.bestseller-super.ru.

04/02/2018 00:01:13



Ваш комментарий к статье
MatLab для DSP. Расчет цифровых фильтров с учетом эффектов квантования :
Ваше имя:
Отзыв: Разрешено использование тэгов:
<b>жирный текст</b>
<i>курсив</i>
<a href="http://site.ru"> ссылка</a>