Моделирование цифровой обработки сигналов в Matlab.
Часть 6. Моделирование структур цифровых фильтров с фиксированной точкой программными средствами Matlab: квантование воздействия и вычисление реакции

Тип работы:
Реферат
Предмет:
ТЕХНИЧЕСКИЕ НАУКИ


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Моделирование цифровой обработки сигналов в MATLAB
Часть 6. Моделирование структур цифровых фильтров с фиксированной точкой программными средствами МДТЬДВ: квантование воздействия и вычисление реакции
Алла СОЛОНИНА
Ранее [9] были перечислены источники ошибок квантования в цифровых фильтрах (ЦФ) с фиксированной точкой (ФТ) и составлена нелинейная модель ЦФ с ФТ, предназначенная для компьютерного моделирования. В [9], [10] была приведена методика составления и свойства моделей КИХ-и БИХ-фильтров с ФТ, на основе которых анализируются их основные характеристики.
Следующий этап в исследовании эффектов квантования в ЦФ с ФТ на основе нелинейной модели [9] программными средствами MATLAB связан с созданием модели квантованного воздействия, вычислением реакции и сравнением ее с реакцией в отсутствии квантования на основе объективных критериев. Этим вопросам посвящена настоящая статья.
Моделирование квантования в АЦП
Квантование воздействия в АЦП (далее — квантование) в MATLAB может моделироваться одним из следующих способов:
• на основе объекта quantizer с помощью функции quantize-
• на основе объекта fi.
Моделирование квантования на основе объекта quantizer
При моделировании квантования на основе объекта quantizer (Quantizer Object) сначала создается данный объект одним из следующих основных способов:
q=quantizer ('-name1'-, value1,'-name2'-, value2,…)
или
q=quantizer (struct)
Здесь q — имя объекта quantizer- '-name1'-,'-name2'-,… — свойства объекта quantizer- value1, value2,… — значения свойств объекта quantizer- struct — имя массива записей (struct array), поля которого отображают свойства объекта quantizer.
Выходным параметром является объект q (массив записей — struct array) со списком свойств (полей). Их полный список выводит-
ся с помощью функции get (q), а основной — по имени q.
Доступные пользователю свойства устанавливаются с помощью функции:
set (q,'-name1'-, value1,'-name2'-, value2,…)
В таблице 1 представлены основные доступные пользователю свойства объекта quantizer, а в таблице 2 — четыре важнейших из множества свойств, доступных только для чтения.
Пример 1
Создать двумя способами объект quantizer с именем q и заданными свойствами и сохранить его на диске для дальнейшего использования. 1. Первый способ:
Таблица 1. Доступные пользователю свойства объекта quantizer
Свойство Назначение
Mode Отображает тип квантованных данных с интересующими нас значениями: • '-double'- - данные с ПТ типа double- • '-fixed'- (по умолчанию) — данные с ФТ- • '-ufixed'- - беззнаковые данные с ФТ
RoundMode Отображает метод округления при квантовании данных (представлении в заданном формате) и может принимать значения: • '-round'- - округление до ближайшего (округление с избытком): числу присваивается значение ближайшего уровня квантования, и если оно попадает точно на границу между соседними уровнями — ближайшего верхнего для положительного числа и для модуля отрицательного- • '-convergent'- - округление до ближайшего четного: числу присваивается значение ближайшего уровня квантования, и если оно попадает точно на границу между соседними уровнями — ближайшего, соответствующего четному числу- • '-fix'- - округление в направлении нуля, тождественно усечению- • '-ceil'- - округление в направлении да: отрицательное число усекается, а положительному присваивается значение ближайшего верхнего уровня- • '-floor'- (по умолчанию) — округление в направлении -да: положительное число усекается, а модулю отрицательного присваивается значение ближайшего верхнего уровня
OverflowMode Управляет переполнением при сохранении данных в формате слова и может принимать значения: • '-saturate'- (по умолчанию) — при переполнении реализуется арифметика насыщения: результат автоматически заменяется максимально возможным по модулю для формата словом при ФТ- • '-wrap'- - при переполнении реализуется модульная арифметика: результат автоматически заменяется своим значением по модулю максимального целого числа
Format Отображает формат данных для выбранного значения свойства Mode. Формат данных типа '-fixed'- и '-ufixed'- отображается двухэлементным вектором, по умолчанию [16 15], в котором первый элемент соответствует длине слова, а второй — длине его дробной части
& gt->- q=quantizer ('-Mode'-,'-fixed'-,'-RoundMode'-,'-convergent'-,. '-OverflowMode'-,'-saturate'-,'-Format'-,[16 15])
& gt->- q=
DataMode = fixed RoundMode = convergent
OverflowMode = saturate Format = [16 15]
Таблица 2. Свойства объекта quantizer только для чтения
Свойство Назначение
max Максимальное значение данных до квантования
min Минимальное значение данных до квантования
noverflows Количество переполнений
nunderflows Количество потерь значимости (антипереполнений), возникающих, когда малое значение данных не может быть представлено в заданном формате и потому заменяется нулем
Таблица 3. Функции MATLAB для объектов quantizer
Функция Назначение
qn=copyobj (q) Создает новый независимый объект qn, сохраняющий все свойства объекта q, при этом изменение свойств объекта qn никак не влияет на свойства q. При использовании оператора присваивания qn=q изменение свойств объекта qn приводит к автоматическому изменению свойств объекта q
xnum= bin2num (q, xbin) Преобразует числа xbin в числа xnum (xnum — квантованные согласно свойствам объекта q десятичные числа) — xbin — указанные в апострофах двоичные числа, представляющие собой двоичный эквивалент* чисел xnum): & gt->- load q & gt->- xbin=['-111 110 001 100 110'--'-1 000 110 001 100 110'-]- & gt->- xnum=bin2num (q, xbin) xnum = 0. 9719 -0. 9031
xnum= hex2num (q, xhex) Преобразует числа xhex в числа xnum (xhex — указанные в апострофах шестнадцатеричные числа, представляющие собой шестнадцатеричный эквивалент** чисел xnum): & gt->- load q & gt->- xhex=['-7C66'--'-8C66'-]- & gt->- xnum=hex2num (q, xhex) xnum = 0. 9719 -0. 9031 Числа 7C66 и 8C66 представляют собой соответственно краткую запись шестнадцатеричными цифрами двоичных эквивалентов 111 110 001 100 110 и 1 000 110 001 100 110 (см. функцию bin2num)
xbin= num2bin (q, xnum) Преобразует числа xnum в числа xbin: & gt->- xnum=[0. 9719--0. 9031]- & gt->- xbin=num2bin (q, xnum) xbin = 111 110 001 100 111 1 000 110 001 100 111
xhex= num2hex (q, xnum) Преобразует числа xnum в числа xhex: & gt->- load q & gt->- xnum=[0. 9719--0. 9031]- & gt->- xhex=num2hex (q, xnum) xhex = 7c67 8c67
xint= num2int (q, xnum) Преобразует числа xnum в числа xint (xint- десятичные числа, представляющие собой целочисленный эквивалент*** чисел xnum): & gt->- load q & gt->- xnum=[0. 9719--0. 9031]- & gt->- xint=num2int (q, xnum) xint = 31 847 -29 593 Десятичные числа 31 847 и -29 593 соответствуют целым двоичным числам со знаком 111 110 001 100 110 и 1 000 110 001 100 110 (см. функцию bin2num)
Примечания. * - Двоичным эквивалентом квантованного числа называют его побитовую запись в слове при заданном формате, включая знаковый бит. ** - Шестнадцатеричным эквивалентом квантованного числа называют краткую запись его двоичного эквивалента, когда каждые его четыре бита, включая знаковый, представляются шестнадцатеричной цифрой. *** - Целочисленным эквивалентом квантованного числа называют запись его двоичного эквивалента в виде целого десятичного числа со знаком, получаемую по правилам перевода целого двоичного числа в десятичное.
2. Второй способ (свойства объекта q точно такие же):
Объекты quantizer могут использоваться в качестве входных параметров многих функций MATLAB, основные из которых, связанные с копированием квантователя и преобразованием чисел, приведены в таблице 3 (использован сохраненный в примере 1 квантователь q).
На основе созданного объекта quantizer выполняется непосредственно квантование с помощью функции:
Здесь q — имя объекта quantizer- x — исходные неквантованные данные: вектор или матрица- xq — квантованные данные- размеры x и xq совпадают.
В результате квантования обновляются свойства объекта q, доступные только для чтения, которые рекомендуется проверять.
Для иллюстрации квантования удобно, как это предлагается в MATLAB, квантовать элементы вектора, изменяющиеся линейно в заданном диапазоне, которые можно генерировать с помощью функции:
Здесь x — вектор с линейно меняющимися элементами- xb, xf — значения первого и последнего элементов вектора x- N — число элементов вектора (по умолчанию 100).
Пример 2
На основе объекта quantizer с именем q и заданными свойствами (пример 1) выполнить квантование элементов вектора x при xb = -2 и xf = 2. Повторить процедуру для объекта qq (копии объекта q) со свойством OverflowMode = wrap (модульной арифметикой). Соответствующим векторам с квантованными элементами присвоить имена xq1 и xq2. Построить графики зависимостей x от
xq1 и x от xq2, отображающие характеристики квантователей при разных типах арифметики и иллюстрирующие суть различий между арифметикой насыщения и модульной арифметикой (рисунок):
& gt->- load q
& gt->- xb=-2- xf=2- x=linspace (xb, xf) — xq1=quantize (q, x) —
Warning: 50 overflows.
& gt- In embedded. quantizer. quantize at 68
& gt->- subplot (2,1,1), plot (x, xq1), grid, xlabel ('-x'-), ylabel ('-xq1'-),…
title ('-OverflowMode=saturate'-)
& gt->- qq=copyobj (q) — set (qq,'-OverflowMode'-,'-wrap'-)
& gt->- xq2=quantize (qq, x) —
& gt->- subplot (2,1,2), plot (x, xq2), grid, xlabel ('-x'-), ylabel ('-xq2'-),… title ('-OverflowMode=wrap'-)
Моделирование квантования на основе объекта fi
При моделировании квантования на основе объекта fi (Fixed-point Numeric Object) достаточно создать данный объект:
xin=fi (v, s, w, f)
Здесь xin — имя объекта fi- v, s, w, f — входные параметры объекта fi- v — исходные неквантованные данные: вектор или матрица- w — длина слова для данных с ФТ (по умолчанию 16) — f — длина дробной части слова для данных с ФТ (по умолчанию 15) — s — скаляр, принимающий значения 1 (true) или 0 (false) — при s = 0 (по умолчанию) формируются числа с ФТ без знака (беззнаковые — положительные), а s = 1 — со знаком и появляется возможность управлять длиной f дробной части в слове длиной w.
Пример 3
Создать объект fi с именем xin и входными параметрами w = 16, f = 15, s = 1 и выполнить квантование элементов вектора x:
& gt->- xb=-2- xf=2- x=linspace (xb, xf) — & gt->- xin=fi (x, 1,16,15) —
Выходным параметром является объект xin — массив записей (struct array), поля которого отображают свойства объекта. Ихудоб-но разделить на три группы: • Data Properties (свойства данных) — это группа полей, отображающих различные виды представления данных с ФТ, основными из которых являются:
& gt->- struct. Mode='-fixed'-- & gt->- struct. RoundMode='-convergent'-- & gt->- struct. OverflowMode='-saturate'-- & gt->- struct. Format=[16 15]- & gt->- q=quantizer (struct) — & gt->- save q
xq=quantise (q, x)
x=linspace (xb, xf, N)
OverflowMode=saturate OverflowMode=wrap
Рисунок. Характеристики квантователей при использовании: а) арифметики насыщения- б) модульной арифметики
— xin. data — квантованные согласно входным параметрам объекта fi десятичные числа-
— xin. double — квантованные согласно входным параметрам объекта fi десятичные числа типа double (при выводе не отличаются от xin. data) —
— xin. bin — двоичные эквиваленты чисел xin. data-
— xin. hex — шестнадцатеричные эквиваленты чисел xin. data-
— xin. int — целочисленные эквиваленты чисел xin. data.
• fimath Properties, где fimath — имя поля, в свою очередь, объединяющего группу полей (свойств) объекта xin, связанных с особенностями арифметики при представлении данных с ФТ, а также при работе с двумя объектами fi.
• numerictype Properties, где numerictype — имя поля, в свою очередь, объединяющего группу полей (свойств) объекта xin, связанных с типом данных, форматом, масштабированием и т. п., предназначенных только для чтения.
Пример 4
Создать объект fi с именем xtest и входными параметрами w = 16, f = 15, s = 1 и выполнить квантование элементов вектора a:
Вывести квантованные значения, а также их двоичные, шестнадцатеричные и целочисленные эквиваленты, и сравнить результаты с полученными в таблице 3:
Пример 5
Для созданного в примере 3 объекта xin вывести список основных свойств (полей) группы fimath Properties:
Для данных с ФТ в группе fimath Properties представляют интерес два поля (два свойства) объекта xin:
• xin. RoundMode — отображает метод округления при представлении данных с ФТ (свойство RoundMode в табл. 1) —
• xin. OverflowMode — отображает режим переполнения при сохранении данных в формате слова (свойство OverflowMode в табл. 1). Остальные поля отображают особенности арифметики при работе с двумя объектами fi.
Присвоим свойству RoundMode значение '-convergent'- и сохраним объект xin на диске:
& gt->- xin. RoundMode='-convergent'--
& gt->- save xin
Пример 6
Для сохраненного на диске объекта xin (пример 5) вывести список основных свойств (полей) группы numerictype Properties:
& gt->- load xin
& gt->- xin. numerictype
ans =
DataTypeMode: Fixed-point: binary point scaling Signed: true WordLength: 16 FractionLength: 15
Свойство DataTypeMode отображает режим масштабирования данных с ФТ. Его значение Fixed-point: binary point scaling соответствует отсутствию масштабирования данных с ФТ (о нем см. далее).
Остальные значения полей (свойств) объекта xin согласованы с входными параметрами объекта fi и предназначены только для чтения.
Полные списки свойств (полей) объекта xin (пример 5), относящихся к группам fimath Properties и numerictype Properties, выводятся с помощью функций get (xin. fimath) и get (xin. numerictype), а общий список свойств — с помощью функции get (xin). В целях экономии места эти списки не приводятся.
Среди дополнительных свойств в группе numerictype Properties представляют интерес дополнительные свойства, связанные с масштабированием данных с ФТ. Определяющим является свойство Scaling.
Пример 7
Для сохраненного на диске объекта xin (пример 5) вывести значение свойства Scaling в группе numerictype Properties:
& gt->- Scaling=get (xin. numerictype,'-Scaling'-)
Scaling = BinaryPoint
При значении свойства Scaling: '-BinaryPoint'- (пример 6), когда масштабирование отсутствует, представляют интерес следующие дополнительные свойства:
• FixedExponent — отображает показатель степени при определении веса младшего бита 2FixedExponent в заданном формате данных с ФТ-
• Slope — отображает точность представления дробной части данных с ФТ — вес младшего значащего бита 2FixedExponent (шаг квантования).
Пример 8
Для сохраненного на диске объекта xin (пример 5) определить вес младшего бита и сравнить его с выведенным значением свойства Slope:
& gt->- 2A (xin. FixedExponent)
ans = 3. 0518e-005
& gt->- Slope=get (xin. numerictype,'-Slope'-)
Slope = 3. 0518e-005
Свойства группы numerictype Properties невозможно изменить после создания объекта fi. Для того чтобы появилась возможность управлять ими при создании объекта, следует использовать другие форматы описания объекта fi.
Например, для масштабирования данных с ФТ, когда их значения можно будет изменять согласно формуле:
«data= aintXSlope+bias, (1)
где «data — десятичное число с ФТ (xin. data) — aint — целочисленный эквивалент (xin. int) десятичного числа «data- bias — смещение- slope — коэффициент масштабирования, равный:
slope = 2Mxponent, (2)
следует выбрать формат:
xin=fi (v, s, w, slope, bias)
Здесь slope соответствует свойству Slope и управляет, согласно (1), масштабированием данных, а именно: распределением битов в слове длиной WordLength (свойство объекта fi). При slope = 2FixedExponent длина дробной части в WordLength автоматически становится равной FractionLength = -FixedExponent, а старшие биты, длина которых составляет (WordLength — FractionLength — 1), интерпретируются как целая часть двоичного числа- bias соответствует свойству Bias (выводится по команде get) и управляет, согласно (1), смещением bias.
При выборе данного формата описания объекта fi изменяются свойства создаваемого объекта xin, которые рекомендуется проверять. В частности, свойства DataTypeMode и Scaling принимают значения:
DataTypeMode: '-Fixed-point: slope and bias Scaling: '-SlopeBias'-
Пример 9
Создать объект fi с именем x1 и параметрами w = 8, f = 7, s = 1 и выполнить квантование элементов вектора a:
& gt->- a=[0. 5 555 555 2. 5 555 555]-
& gt->- x1=fi (a, 1,8,7) —
& gt->- x1. data
ans = 0. 5547 0. 9922
& gt->- x1. bin
ans = 1 000 111 1 111 111
& gt->- x1. int
ans = 71 127
& gt->- a=[0. 9719 -0. 9031]- & gt->- xtest=fi (a, 1,16,15) —
& gt->- xtest. data ans = 0. 9719 -0. 9031
& gt->- xtest. bin ans =
111 110 001 100 111 1 000 110 001 100 111
& gt->- xtest. hex ans = 7c67 8c67 & gt->- xtest. int ans = 31 847 -29 593
& gt->- xin. fimath ans =
RoundMode: round OverflowMode: saturate
ProductMode: FullPrecision MaxProductWordLength: 128
SumMode: FullPrecision MaxSumWordLength: 128 CastBeforeSum: true
Как видим, число 2. 5 555 555, большее единицы, в данном формате не может быть представлено, и для него использована арифметика насыщения: присвоено максимальное в данном формате значение 0,9922.
Рассмотрим, что изменится при значении slope = 2Л (-5), когда на дробную часть FractionLength будет отведено не 7, а 5 битов, и, соответственно, на целую часть — 2 бита (значение bias остается равным 0):
& gt->- a=[0. 5 555 555 2. 5 555 555]-
& gt->- slope=2л (-5) —
& gt->- bias=0-
& gt->- x2=fi (a, 1,8,slope, bias) —
& gt->- x2. data
ans = 0. 5625 2. 5625
& gt->- x2. bin
ans = 10 010 1 010 010
& gt->- x2. int
ans = 18 82
Новое значение параметра slope изменило и сами десятичные числа с ФТ, и их двоичный и целочисленный эквиваленты. В двоичных эквивалентах биты, интерпретируемые как целая часть двоичного числа, выделены полужирным шрифтом. Используя правила перевода десятичных чисел (целых и дробных) в двоичные, нетрудно убедиться в соответствии чисел x2. data и их двоичных эквивалентов. Однако целочисленные эквиваленты вычисляются на основании новых двоичных эквивалентов по «старому» правилу, в чем также легко убедиться:
& gt->- 0*2. Л0+1*2. Л1+0*2. Л2+0*2. Л3+1*2. Л4+0*2. Л5+0*2. Л6 ans = 18
& gt->- 0*2. Л0+1*2. Л1+0*2. Л2+0*2. Л3+1*2. Л4+0*2. Л5+1*2. Л6 ans = 82
Покажем, что десятичные числа x2. data совпадают с рассчитанными по формуле (1):
& gt->- 18*slope+bias ans = 0. 5625 & gt->- 82*slope+bias ans = 2. 5625
Добавим параметр bias = 5 при том же значении slope = 2Л (-5):
& gt->- a=[0. 5 555 555 2. 5 555 555]- & gt->- bias=5- & gt->- slope=2Л (-5) — & gt->- x3=fi (a, 1,8,slope, bias) — & gt->- x3. data
ans = 1. 0000 2. 5625
& gt->- x3. bin
ans=10 000 000 10 110 010 & gt->- x3. int
ans = -128 -78
Покажем, что десятичные числа x3. data совпадают с рассчитанными по формуле (1):
& gt->- (-128)*slope+bias ans = 1
& gt->- (-78)*slope+bias ans = 2. 5625
Изменение данных с ФТ с помощью параметров slope и bias называется масштабированием данных с ФТ. Его не следует путать ни с нормированием исходных неквантован-
ных данных, ни масштабированием с целью минимизации переполнений.
Формирование воздействия с ФТ
Сформировать воздействие с квантованными значениями, моделирующее цифровой сигнал с ФТ на выходе АЦП, можно одним из следующих двух способов:
• на основе объекта quantizer с помощью функции quantize-
• на основе объекта fi.
Отметим, что если исходные неквантован-ные значения воздействия по модулю превосходят единицу, то предварительно их следует нормировать, а далее при вычислении реакции учитывать нормирующий множитель.
Пример 10
Сформировать воздействие xq1, моделирующее цифровой сигнал с ФТ на выходе 12-разрядного АЦП, на основе объекта quantizer с помощью функции quantize. В качестве исходного, дискретного, сигнала x_in с некван-тованными значениями (числами типа double) использовать равномерный белый шум, генерируемый с помощью функции rand (100,1), значения которой не превосходят единицу и потому не требуют нормирования. Сохранить векторы x_in и xq1 на диске.
Для формирования воздействия xq1 выполним следующие действия: 1. Создадим и сохраним на диске объект quantizer с именем q1, моделирующий 12-разрядное АЦП, со следующими свойствами (пример 1):
& gt->- q1=quantizer ('-Mode'-,'-fixed'-,'-RoundMode'-,'-convergent'-,… '-OverflowMode'-,'-saturate'-,'-Format'-,[12 11]) q1 =
DataMode = fixed RoundMode = convergent OverflowMode = saturate Format = [12 11]
& gt->- save q1
2. Создадим вектор х_т неквантованных значений — дискретный сигнал, который в данном случае представляет собой равномерный белый шум, и сохраним его на диске:
& gt->- x_in=rand (100,1) — & gt->- save x_in
3. С помощью функции quantize создадим вектор xq1 квантованных значений с ФТ — цифровой сигнал на выходе 12-разрядного АЦП — и сохраним его на диске:
& gt->- xq1=quantize (q1,x_in) — & gt->- save xq1
честве исходного дискретного сигнала с не-квантованными значениями использовать сохраненный на диске равномерный белый шум х_т (пример 10).
Для формирования воздействия хд2 выполним следующие действия: 1. Создадим вектор х_т неквантованных значений — дискретный сигнал, в данном случае представляющий собой равномерный белый шум х_т:
2. Создадим объект й с именем хд2 и входными параметрами w = 12, { = 11, 8 = 1 и выполним квантование в векторе х_т:
& gt->- хд2=й (х_ш, 1,12,11) —
Квантованные значения объекта xq2 хранятся в поле data, поэтому далее используется вектор xq2. data.
3. Установим требуемые свойства объекта xq2. Вывести полный список свойств объекта xq2 по команде get (xq2) и установить их требуемые значения.
Из соображений экономии места список свойств не приводится. В данном случае изменим только значение свойства RoundMode, а остальные установим по умолчанию (они аналогичны свойствам объекта в примере 10):
& gt->- xq2. RoundMode='-convergent'--
4. Сохраним объект xq2 с новыми свойствами на диске:
& gt->- save xq2
Критерии сравнения квантованного сигнала с неквантованным
Для сравнения векторов с квантованными и неквантованными элементами (квантованных и дискретных1 сигналов) в качестве объективных критериев обычно используют нормы:
1=1
||e-6|L = maxla -b-
IMIl2=tEh-4
(3)
(4)
(5)
Пример 11
Сформировать воздействие хд2, моделирующее цифровой сигнал с ФТ на выходе 12-разрядного АЦП на основе объекта А. В ка-
где a, b — сравниваемые векторы (квантованный и дискретный сигналы) — i — номер элемента- m — количество элементов.
1 Условно это последовательность чисел с ПТ типа double.
& gt->- load x m
тимальных (по Чебышеву) КИХ-фильтров программными средствами МЛТЬЛБ // Компоненты и технологии. 2008. № 11.
7. Солонина А. Моделирование цифровой обработки сигналов в МЛТЬЛБ. Часть 2. Синтез оптимальных БИХ-фильтров программными средствами МЛТЬЛБ // Компоненты и технологии. 2008. № 12.
8. Солонина А. Моделирование цифровой обработки сигналов в МЛТЬЛБ. Часть 3. Описание структур КИХ- и БИХ-фильтров в МЛТЬЛБ // Компоненты и технологии. 2009. № 1.
9. Солонина А. Моделирование цифровой обработки сигналов в МЛТЬЛБ. Часть 4. Моделирование структур цифровых фильтров с фиксированной точкой программными средствами
МЛТЬЛБ: анализ характеристик КИХ-фильт-ров // Компоненты и технологии. 2009. № 2.
10. Солонина А. Моделирование цифровой обработки сигналов в МЛТЬЛБ. Часть 5. Моделирование структур цифровых фильтров с фиксированной точкой программными средствами МЛТЬЛБ: анализ характеристик БИХ-фильт-ров // Компоненты и технологии. 2009. № 3.

ПоказатьСвернуть
Заполнить форму текущей работой