Моделирование цифровой обработки сигналов в Matlab. Часть 8. Моделирование цифровой фильтрации средствами программ GUI Matlab: GUI SPTool

Алла СОЛОНИНА

Моделирование цифровой обработки сигналов в MATLAB.

Часть 8. Моделирование цифровой фильтрации средствами программ GUI MATLAB: GUI SPTool

В предлагаемом цикле «Моделирование цифровой обработки сигналов в МДТЬДБ» предыдущие статьи [6—11] были посвящены моделированию цифровых фильтров (ЦФ), КИХ и БИХ, в том числе с фиксированной точкой (ФТ), программными средствами МДТЬДБ.

На основе программных средств в MATLAB разработаны программы GUI (Graphic User Interface — графический интерфейс пользователя), представляющие собой средства, предназначенные для моделирования путем интерактивного общения без прямого доступа к программным средствам с графическим выводом результатов. В частности, для моделирования ЦФ разработаны две программы GUI — FDATool и SPTool. Проектирование ЦФ средствами FDATool было рассмотрено в [12].

Настоящая статья посвящена моделированию цифровой фильтрации средствами GUI SPTool.

Моделирование цифровой фильтрации средствами GUI SPTool

Программа GUI SPTool (Signal Processing Toolbox — средства обработки сигнала) разработана на основе пакета расширения Signal Processing Toolbox и предназначена для решения следующих задач, связанных с моделированием цифровой фильтрации:

• синтез ЦФ;

• анализ ЦФ;

• импорт входного сигнала;

• моделирование цифровой фильтрации;

• анализ сигналов во временной области;

• анализ сигналов в частотной области;

• экспорт данных из GUI SPTool.

Следует, однако, иметь в виду, что возможности синтеза ЦФ в GUI SPTool существенно ограничены по сравнению с GUI FDATool, в том числе отсутствует возможность моделирования структур ЦФ с ФТ. В [12] описан экспорт в GUI SPTool фильтра, синтезированного в GUI FDATool и сохраненного в виде объекта dfilt. Экспортируемый фильтр,

имя которого появляется в списке Filters, можно далее использовать для моделирования процесса цифровой фильтрации.

Тем не менее, в ряде случаев удобно оперативно синтезировать ЦФ непосредственно в GUI SPTool. Основные этапы синтеза ЦФ описаны в [12], а технология синтеза легко осваивается самостоятельно по аналогии с GUI FDATool. Подробно она описана в [5]. В примере 1 представлен оперативный синтез КИХ-фильтра в GUI SPTool для его последующего использования при моделировании цифровой фильтрации.

Обращение к GUI SPTool происходит по команде sptool, после чего открывается окно SPTool: startup.spt (рис. 1) с тремя списками:

• Signals («Сигналы»);

• Filters («Фильтры»);

• Spectra («Спектры»).

Синтез

цифровых фильтров

Операции, связанные с цифровой фильтрацией, выполняются с использованием кнопок, расположенных под списком Filters:

• View («Вид») — анализ ЦФ, имя которого выделено в списке Filters.

• New («Новый фильтр») — синтез нового ЦФ.

• Edit («Редактирование») — изменение требований к ЦФ, имя которого выделено в списке Filters, и его повторный синтез без изменения имени.

• Apply («Применить») — моделирование процесса фильтрации сигнала, имя которого выделено в списке Signals, фильтром, имя которого выделено в списке Filters.

В списке Filters содержатся имена синтезированных ранее и сохраненных ЦФ; если они отсутствуют, активна только кнопка New.

У SPTool; startup.sp . - m - OS

I Fit E<* wrtfow №p І

Signals filters Spectra

ntfc (vector) /4 chrp (vector] ISp (design] л PZ*> Imported] і ¿ті і.' •: мі л ch»pie [auto]

train (vector] trartse (auto]

.У. *5

Рис. 1. Окно SPTool: startup.spt

Для синтеза нового ЦФ необходимо нажать кнопку New, после чего открывается окно Filter Designer («Синтез фильтра») (рис. 2).

Пример 1

В примере 2 [6] был синтезирован программными средствами MATLAB оптимальный КИХ-фильтр ФНЧ по заданным требованиям к АЧХ (табл. 3 [6]) методом чебышев-ской аппроксимации. Требуется синтезировать тот же фильтр средствами GUI SPTool. Основные этапы синтеза включают в себя:

1. Выбор типа и метода синтеза ЦФ. В раскрывающемся списке Algorithm («Алгоритм») выбрать значение Equiripple FIR («Метод наилучшей равномерной (чебы-шевской) аппроксимации»).

2. Задание входных параметров. Флаг Minimum Order («Минимальный порядок») установлен, входные параметры отсутствуют [12].

3. Задание требований к АЧХ (табл. 3 [6]):

• Тип избирательности задается в группе Specifications («Требования») в раскрывающемся списке Type («Тип») — lowpass.

Рис. 2. Окно Filter Designer

Рис. 3. Окно Figure...: Filter Visualization Tool

• Частота дискретизации и граничные частоты ПП и ПЗ в герцах указываются соответственно в поле ввода Sampling Frequency («Частота дискретизации») — 8000 — и в группе Specifications в подгруппах:

- Passband («Полоса пропускания») в поле ввода Fp — 1000;

- Stopband («Полоса задерживания») в поле ввода Fs — 1500.

• Максимально допустимые отклонения АЧХ (дБ) указываются в группе Specifications в подгруппах (значения Rp (дБ) и Rs (дБ) были вычислены в примере 1 в [6]):

• Passband в поле ввода Rp — 0.4455;

• Stopband в поле ввода Rs — 40.

4. Синтез фильтра производится после нажатия кнопки Apply (при сброшенном флаге Auto Design), и по его завершении автоматически выдаются:

• в поле Frequency Response («Частотная характеристика») — график АЧХ (дБ) (характеристика ослабления (6) в [6]);

• в группе Measurements («Значения»):

- Order — 26;

- в подгруппе Passband действительное отклонение АЧХ (дБ) Actual Rp — 0.5697 и вес в ПП Weight — 1;

- в подгруппе Stopband действительное отклонение АЧХ (дБ) Actual Rs — 37.82 и вес в ПЗ Weight — 2.564;

• в раскрывающемся списке Filter — имя синтезированного фильтра filt2. Сравнивая действительные значения АЧХ

Actual Rp и Actual Rs в группе Measurements с заданными пользователем значениями Rp и Rs в группе Specifications, убеждаемся, что требования к АЧХ (дБ) в ПП не выполняются.

Для изменения порядка КИХ-фильтра сбросим флаг Minimum Order, в поле ввода Order («Порядок») установим порядок 27 и зададим входные параметры по умолчанию:

• в подгруппе Passband в поле ввода Weight — 1;

• в подгруппе Stopband в поле ввода Weight — 5.

Веса определены по методике, изложенной в [6], а именно: вес, равный единице, присвоен ПП с наибольшим максимально допустимым отклонением 0,05, а вес в ПЗ рассчитан как отношение 0,05/0,01 = 5.

При повторном синтезе после нажатия кнопки Apply (она активизируется после щелчка левой кнопки мыши на поле графика) в группе Measurements автоматически выводятся выходные параметры в подгруппах Passband и Stopband. Сравнивая значения АЧХ (дБ) Actual Rp и Actual Rs с заданными пользователем в группе Specifications, убеждаемся, что требования к АЧХ (дБ) вновь не выполняются.

Увеличивая порядок фильтра, не меняя входные параметры, несложно убедиться, что требования к АЧХ (дБ) будут выполняться при порядке фильтра R = 31.

Таким образом, синтезирован оптимальный ФНЧ с ЛФЧХ порядка Ropt = 31 на базе КИХ-фильтра 2-го типа. (Отметим, что порядок КИХ-фильтра ФНЧ, синтезированного средствами GUI FDATool в примере 1 [12], равен Rmin = 25).

Анализ цифровых фильтров

Для анализа характеристик ЦФ, синтезированного или импортированного в GUI SPTool, необходимо в списке Filters окна SPTool: startup.spt выделить имя ЦФ и нажать кнопку View. После этого происходит автоматическое обращение к GUI FVTool и открывается окно Figure...: Filter Visualization Tool (рис. 3). Список команд пункта меню Analysis данного окна ничем не отличается от пункта меню Analysis окна Filter Design & Analysis Tool GUI FDATool [12].

Импорт входного сигнала

Источником сигнала для GUI SPTool может являться:

• рабочее пространство памяти Workspace, если сигнал создается непосредственно в командном окне MATLAB;

• диск, если сигнал сохранен как mat-файл данных в папке work или папке пользователя.

Пример 2

Создать входной сигнал — 1024-точечную последовательность, представляющую собой смесь двух дискретных гармоник:

x

со следующими значениями частот:

• частота дискретизации f = 8000 Гц;

• f1 = 500 Гц;

• f2 = 2000 Гц;

с нормальным белым шумом и сохранить его на диске.

Сформируем входной сигнал — вектор x — подставив в (1) значения частот:

x

Результирующий сигнал обозначим как вектор s и сохраним на диске:

>> N=1024;

>> n=0:(N-1);

>> x=sin(0.125*pi.*n)+0.5*sin(0.5*pi.*n);

>> noise=randn(1,length(x));

>> s=x+noise;

>> save s

Для импорта входного сигнала в GUI SPTool необходимо в окне SPTool: startup.spt в пункте меню File выбрать команду Import («Импорт»), после чего открывается окно Import to SPTool («Импорт в SPTool»), в котором в группе Source («Источник») следует выбрать переключатель From Workspace (Из рабочего пространства памяти Workspace) или From Disk («С диска»).

Если сигнал импортируется From Workspace, то необходимо выполнить следующие действия (рис. 4):

1. В группе Workspace Contents («Содержимое Workspace») курсором выделить имя переменной s (пример 2).

2. Нажать кнопку « >», после чего имя переменной s будет отображено в поле ввода Data («Данные») — это указание рассматривать переменную s как числовой массив.

3. В раскрывающемся списке Import As («Импортировать как») выбрать значение Signal («Сигнал»).

4. В поле ввода Sampling Frequency («Частота дискретизации») указать частоту дискретизации в герцах — 8000.

5. В поле ввода Name («Имя») указать имя входного сигнала — предлагаемое по умолчанию sigl.

6. Нажать кнопку OK и убедиться, что сигнал sigl отобразился в группе Signals окна SPTool: startup.spt.

Если сигнал импортируется с диска (From Disk), то необходимо в группе Source нажать активизированную кнопку Browse («Просмотреть»), после чего открывается окно Select File to Open («Выбрать файл для открытия»), в котором курсором выделить имя mat-файла (у нас — s) и нажать кнопку Открыть, после чего происходит автоматический возврат в окно Import to SPTool. Дальнейшие действия аналогичны описанным выше при импорте From Workspace.

Для удаления импортированных сигналов следует в окне SPTool: startup.spt в группе

Signals курсором выделить имя удаляемого сигнала и в пункте меню Edit выбрать команду Clear.

Моделирование цифровой фильтрации

После синтеза ЦФ и импорта входного сигнала можно приступать к моделированию цифровой фильтрации. Для этого в окне SPTool: startup.spt необходимо выполнить следующие действия:

1. В группе Signals выделить имя сигнала, например, sigl (вектор s в примере 2).

2. В группе Filters выделить имя фильтра, например, КИХ-фильтра ФНЧ filt2 (пример 1).

Mgottttn Fom, TrafwpwwJ (iief) CUWS4n*'aj3

Рис. 5. Окно Apply Filter

3. Нажать кнопку Apply, после чего открывается окно Apply Filter («Применить к фильтру») (рис. 5) с именами входного сигнала sigl, фильтра filt2 и выходного сигнала sig3.

4. Нажать кнопку OK и убедиться, что сигнал sig3 отобразился в группе Signals.

Анализ сигналов во временной области

Для анализа сигналов во временной области следует в окне SPTool: startup.spt в группе Signals выделить имя сигнала (одно или несколько) и нажать кнопку View, после чего открывается окно Signal Browser («Просмотр сигнала»). На рис. 6, 7 представлены графики входного и выходного сигналов — sigl и sig3 соответственно.

В окне Signal Browser (рис. 6, 7) автоматически выводятся два графика дискретного сигнала (или нескольких сигналов), изображенные непрерывными линиями:

• нижний Panner («Панорама») — общий вид (панорама) сигнала на заданном интервале;

• верхний — общий вид сигнала на заданном интервале с активизированным набором средств для анализа сигнала, которые легко осваиваются самостоятельно.

На верхнем графике входной дискретный сигнал sigl представлен на интервале времени [0;NT] = [0;N/Fs] с, где N — длина сигнала, а Fs — частота дискретизации fR. В нашем случае при N = 1024 и Fs = 8000 Гц (пример 2) имеем интервал [0;0,128] с.

Анализ сигналов в частотной области

Для анализа сигналов в частотной области необходимо:

1. В окне SPTool: startup.spt в группе Signals выделить имя сигнала.

2. В группе Spectra нажать кнопку Create («Создать»), после чего открывается окно Spectrum Viewer («Просмотр спектра»).

Рис. 6. Окно Signal Browser — входной сигнал sigl

Рис. 7. Окно Signal Browser — выходной сигнал sig3

Рис. 8. Окно Spectrum Viewer — PSD spectl входного сигнала sigl

Рис. 9. Окно Spectrum Viewer — PSD spect2 выходного сигнала sig3

В этом окне в группе Signal отображается имя анализируемого сигнала, его длина и частота дискретизации в герцах. В группе Parameters в раскрывающемся списке Method содержатся методы спектрального анализа сигнала [5].

3. Нажать кнопку Apply, после чего в окне Spectrum Viewer будет выведен график спектральной плотности мощности (PSD) в основной полосе частот [0; f„/2].

В группе Signals последовательно выделим имена входного и выходного сигналов — sigl и sig3 соответственно. Для каждого из них выберем метод спектрального анализа FFT (БПФ), входным параметром которого является задаваемое число точек сигнала— 1024. Графики PSD, соответственно, входного и выходного сигналов sigl и sig3 представлены на рис. 8, 9, где маркеры Marker 1 и Marker 2 подведены к частотам сигнала 500 и 2000 Гц (пример 2), а переменные yl и у2 фиксируют соответствующие значения PSD (дБ/Гц). Вычисленным PSD автоматически присваиваются имена spectl, spect2 и т. д., у нас PSD входного сигнала имеет имя spectl, а выходного — spect2.

В GUI SPTool при использовании метода FFT спектральная плотность мощности PSD (дБ/Гц) рассчитывается по формуле:

С помощью ДПФ рассчитаем спектральную плотность мощности Р(к) (дБ/Гц) (3) (вектор РББ) сигнала s:

—№)| NF. 1

P(k) = 101g

при k = 0, 1, ...,

где Fs — частота дискретизации _/д N — размерность ДПФ; X(k) — N-точечное ДПФ N-точечной последовательности x(n) (см. вычисление ДПФ в MATLAB [5]); к — дискретная нормированная частота; P(k) — PSD (дБ/Гц).

Пример 3

Рассчитать в MATLAB значения спектральной плотности мощности P(k) (дБ/Гц) (3) входного сигнала s (пример 2) на частотах 500 и 2000 Гц и сравнить их с выведенным в окне Signal Browser (рис. 9).

>> load s;

>> Fs=8000;

>> N=1024;

>> S=fft(s);

>> MODS=(abs(S));

>> PKlAN^Fs^^MODS^); >> PDB=10,*log10(F);

Определим значения спектральной плотности мощности (вектора РББ) на частотах 500 и 2000 Гц. Для этого найдем соответствующие дискретные нормированные частоты к1 и к2 с помощью внешней функции £Й_е1 (см. вычисление ДПФ в МАТЕАБ [5]):

>> [max(P) min(P)]

ans = 0.0277 2.0З02є-007

>> є1=0,0З;

>> [MODm,m]=fft_e1(N,P,e1) MODm = 0,0277 0,0090 0,0090

m = 65 257 769 961

С учетом того, что нижняя граница индексов в MATLAB равна единице, в основной полосе дискретных нормированных частот 0<k<511 имеем k1 = 64 и к2 = 256, а в MATLAB — k1= 65 и k2 = 257.

Выведем значения спектральной плотности мощности P(k1) и P(k2) (дБ/Гц):

>> [PDB(65) PDB(257)] ans = -15.5827 -20.4808

Полученные значения практически совпадают с выведенными в окне Spectrum Viewer (рис, 8),

На рис, 9 представлена спектральная плотность spect2 выходного сигнала sig3 КИХ-фильтра ФНЧ filt2, В данном случае одна из спектральных составляющих входного сигнала sigl с частотой З00 Гц оказалась в полосе пропускания ФНЧ, а другая, с частотой 2000 Гц — в полосе задерживания (пример 1), Для удаления рассчитанных PSD следует в окне SPTool: startup.spt в группе Spectra курсором выделить имя удаляемого PSD и в пункте меню Edit выбрать команду Clear,

Экспорт данных из GUI SPTool

Если результаты моделирования в GUI SPTool предполагается в дальнейшем использовать в MATLAB, необходимо осуществить их экспорт. Для этого в окне SPTool: startup.spt в пункте меню File следует выбрать команду Export («Экспорт»), после чего открывается окно Export from SPTool («Экспорт из SPTool») (рис. 10), в котором необходимо:

1. В группе Export List («Список имен экспортируемых данных») выделить имя (или имена) экспортируемых данных, например, выделим имена: выходного сигнала sig3, синтезированного КИХ-фильтра ФНЧ filt2 и спектральной плотности мощности PSD выходного сигнала spect2.

2. С помощью соответствующих кнопок указать, куда экспортируются данные (Export to Disk или Export to Workspace). При экспорте данных в Workspace они автоматически сохраняются с теми же именами, как в GUI SPTool. Экспорт данных на диск осуществляется последовательно, при этом каждый раз в автоматически открывающемся окне Export to Disk («Экспорт на диск») следует указать имя mat-файла (без расширения), которое может совпадать или не совпадать с именами в GUI SPTool, после чего нажать кнопку Save («Сохранить»), и дан-

Рис. 10. Окно Export from SPTool

ные сохранятся в папке work или в предварительно открытой папке пользователя. Загрузка mat-файлов с диска в Workspace производится, как обычно, по команде load. Для использования в приведенных далее примерах экспортируем сигнал sig3, фильтр filt2 и PSD spect2 в Workspace с теми же именами.

Сохраняемые данные представляются в виде массивов записей struct array [5].

Пример 4

Определить содержимое файла sig3, экспортируемого из GUI SPTool в Workspace:

Поле data хранит значения выходного сигнала и может быть использовано, например, для построения его графика (рис. 11а):

Поле label хранит имя сигнала в GUI SPTool, а поля lineinfo и SPTIdentifier — вспомогательную информацию.

Пример 5

Определить содержимое файла filt2, экспортируемого из GUI SPTool на диск:

Поле tf хранит коэффициенты передаточной функции КИХ-фильтра ФНЧ и, в свою очередь, содержит поля num и den, хранящие коэффициенты числителя и знаменателя передаточной функции КИХ-фильтра — рациональной функции:

>> filt2.tf

ans =

num: [1x32 double] den: 1

В массиве записей filt2 зарезервирован ряд пустых полей [] с фиксированными именами для хранения других представлений передаточной функции, а также импульсной характеристики, переходной характеристики и др. После необходимых расчетов этим полям могут быть присвоены соответствующие значения. Например, по коэффициентам передаточной функции вычислим импульсную характеристику КИХ-фильтра с помощью функции imp и сохраним ее значения в поле impz:

>> N=32;

>> füt2.imp=impz(filt2.tf.num,filt2.tf.den,N);

Поле label хранит имя фильтра в GUI SPTool, а поля lineinfo и SPTIdentifier — вспомогательную информацию.

Пример 6

Определить содержимое файла spect2, экспортируемого из GUI SPTool в Workspace:

>> spect2

spect2 =

P [1536x1 double]

f [1536x1 double]

confid [1x1 struct]

specs [1x1 struct]

signal [1024 1 0]

signalLabel 'sig3'

Fs 8000

type 'auto'

lineinfo [1x1 struct]

SPTIdentifier [1x1 struct]

label 'spect2'

Поле і хранит массив значений частот, соответствующих PSD в виде:

при к = 0, 1, ...,

а массив Р — сами значения Р(к) (4).

Сравнивая соотношения (3) и (4), получаем взаимосвязь между Р(к) (4) и Р(к) (3):

Р

Как видим, поле f содержит 1536, а не 1024 точки, как ожидалось. Определим частотный диапазон, в котором выведена PSD (4), для чего выведем первую и последнюю частоты поля f (обозначим fbeg и £йп), а также интервал между соседними значениями частот поля f (обозначим delta_f):

>> fbeg=spect2.f

fbeg = -4000

>> ffin=spect2.f

ffin = 7.9922е+003

>> delta_f=spect2.f

delta_f = 7.8125

Интервал между соседними значениями частот (delta_f) равен: Д/ = /д/Ы = 8000/1024 = = 7,8125 Гц, а диапазон частот: /Д/2; /-Д/ = = [-4000; 7992,2] Гц.

Построим график (4) в шкале дискретных нормированных частот к, используя 1024 значения, соответствующих частотному диапазону: [0; f-Д/ = [0; 7992,2] Гц, где частоте 0 Гц соответствует дискретная нормированная частота K = ((/д/2)/Д/)+1 (рис. 11б):

>> K=4000/delta_f+1 K = 513

>> spect2.f(513) ans = 0

>> k=K:(K+1023);

>> kk=0:1023;

>> subplot

Выведем значение P (K+64):

>> spect2.P(K+64) ans = 0.0281

Это значение совпадает с P(k) (дБ/Гц) (3) на той же частоте (значение PSD на рис. 9, отмеченное маркером Marker 1) с учетом взаимосвязи (5):

>> 10.л(-1.5515852) ans = 0.0281

Поле label хранит имя PSD в GUI SPTool, поле signal — информацию о длине выход-

>> load filt2

>> filt2

filt2 =

tf: [1x1 struct]

ss: []

zpk: []

sos: []

imp: []

step: []

t: []

H: []

G: []

f []

specs : [1x1 struct]

Fs 8000

type : 'design'

lineinfo []

SPTIdentifier : [1x1 struct]

label : 'filt2'

>> load sig3 >> sig3 sig3 = data [1024x1 double]

Fs 8000

type 'vector'

lineinfo : [1x1 struct]

SPTIdentifier : [1x1 struct]

label : 'sig3'

>> s=sig3.data;

>> n=0:1023;

>> subplot

ного сигнала sig3 (первый элемент вектора), а поля confid, specs, lineinfo и SPTIdentifier — вспомогательную информацию.

Выход из GUI SPTool

При выходе из программы GUI SPTool автоматически появляется запрос, требуется ли сохранять данные (сигналы, фильтры, спектральные плотности мощности). В случае положительного ответа нажимается кнопка Save («Сохранить»), данные сохраняются в файле startup.spt в папке work или папке пользователя и могут быть использованы при следующих сеансах работы в GUI SPTool.

Литература

1. Ingle V., Proakis J. Digital Signal Processing Using MATLAB. Second Edition. Thomson.

2. Оппенгейм А., Шафер Р. Цифровая обработка сигналов. М.: Техносфера, 2006.

3. Сергиенко А. Б. Цифровая обработка сигналов, 2-е изд. СПб.: ПИТЕР, 2006.

4. Солонина А. И., Улахович Д. А., Арбузов С. М., Соловьева Е. Б. Основы цифровой обработки сигналов. 2-е изд. СПб.: БХВ-Петербург, 2005.

5. Солонина А. И., Арбузов С. М. Цифровая обработка сигналов. Моделирование в MATLAB. СПб.: БХВ-Петербург, 2008.

6. Солонина А. Моделирование цифровой обработки сигналов в MATLAB. Часть 1. Синтез оптимальных (по Чебышеву) КИХ-фильтров про-

граммными средствами MATLAB // Компоненты и технологии. 2008. № 11.

7. Солонина А. Моделирование цифровой обработки сигналов в MATLAB. Часть 2. Синтез оптимальных БИХ-фильтров программными средствами MATLAB // Компоненты и технологии. 2008. № 12.

8. Солонина А. Моделирование цифровой обработки сигналов в MATLAB. Часть 3. Описание структур КИХ- и БИХ-фильтров в MATLAB // Компоненты и технологии. 2009. № 1.

9. Солонина А. Моделирование цифровой обработки сигналов в MATLAB. Часть 4. Моделирование структур цифровых фильтров с фиксированной точкой программными средствами MATLAB: анализ характеристик КИХ-фильт-ров // Компоненты и технологии. 2009. № 2.

10. Солонина А. Моделирование цифровой обработки сигналов в MATLAB. Часть 5. Моделирование структур цифровых фильтров с фиксированной точкой программными средствами MATLAB: анализ характеристик БИХ-фильт-ров // Компоненты и технологии. 2009. № 3.

11. Солонина А. Моделирование цифровой обработки сигналов в MATLAB. Часть 6. Моделирование структур цифровых фильтров с фиксированной точкой программными средствами MATLAB: квантование воздействия и вычисление реакции // Компоненты и технологии. 2009. № 4.

12. Солонина А. Моделирование цифровой обработки сигналов в MATLAB. Часть 7. Моделирование цифровых фильтров средствами программ GUI MATLAB: GUI TDATool // Компоненты и технологии. 2009. № 5.