Matlab_Logo

MATLAB+Simulink 8.0 (R2012b): пакет расширения Digital Signal Processing System Toolbox

№ 6’2014
PDF версия
Пакет расширения Digital Signal Processing (DSP) System Toolbox 6.3 — это последняя версия для матричной системы MATLAB+Simulink 8.0 (R2012b), появившейся на рынке осенью 2012 г. Пакет расширяет возможности этой системы в анализе и проектировании систем с цифровой обработкой информации, а также в их управлении. В статье описаны возможности пакета на большом числе примеров. Автор благодарит корпорацию The MathWorks, Inc. [1] за предоставленную систему MATLAB+Simulink 8.0 (R2012b), использованную для подготовки этой серии статей.

Состав и назначение пакета расширения DSP System Toolbox

Пакет расширения DSP System Toolbox имеет обширный набор эффективных численных алгоритмов и инструментов для проектирования, анализа и блочного имитационного моделирования цифровых сигналов и систем общего применения. По принципу построения и применения он похож на пакет расширения Signal Processing Toolbox, легко с ним стыкуется и применяется при решении многих задач, например по проектированию сигналов, фильтров и радиоэлектронных устройств.

В то же время DSP System Toolbox — это особый пакет, вобравший в себя лучшие средства по работе с системами цифровой обработки сигналов и данных в составе базовой матричной системы MATLAB [2, 3] и основного пакета расширения ее по блочному имитационному моделированию Simulink [4]. DSP System Toolbox использует MATLAB функции и объекты, а также блоки моделей Simulink, добавляя к ним свои. Пакет поддерживает арифметику двойной точности с плавающей запятой и арифметику чисел с фиксированной запятой. Особенно много таких возможностей реализовано в разделах пакета, посвященных анализу и проектированию фильтров различного назначения.

На рис. 1 показано окно интерфейса MATLAB 8.0 с окном справки по пакету System Toolbox в правой части командного окна.

Интерфейс MATLAB 8.0 с окном справки в правой части командного окна

Рис. 1. Интерфейс MATLAB 8.0 с окном справки в правой части командного окна

 

Простые примеры применения DSP System Toolbox

Чтобы можно было отличить функции DSP System Toolbox от функций других пакетов, им присвоены названия в форме записей, например:

>> hconv = dsp.Convolver; x = ones(10,1);
>> y = step(hconv, x, x);
>> plot(y);

Здесь использована функция dsp.Convol-ver, демонстрирующая операцию свертки (рис. 2) именно в пакете DSD Toolbox. Команды выполняются в окне командного режима (признаком является MATLAB символ ввода «>>») (рис. 1). Результатом выполнения этих команд является окно с графиком свертки, показанное на рис. 1 слева внизу.

Интерполяция с помощью функции dsp.Interpolator в программном режиме работы

Рис. 2. Интерполяция с помощью функции dsp.Interpolator в программном режиме работы

Следующая программа выполняется из окна редактора программного кода и показывает проведение операции интерполяции двумя методами с помощью функции dsp.Interpolator:

x =[1 4]; x = repmat(x,1,4); x1 = 1:0.25:8;
hFIR =dsp.Interpolator(‘Method’,’FIR’,’FilterHalfLength’,2,...
‘InterpolationPoints’,x1’,’InterpolationPointsPerSample’,4);
hLin =dsp.Interpolator(‘InterpolationPoints’,x1’);
OutFIR = step(hFIR,x’); OutLin = step(hLin,x’);
stem(OutFIR,’b-.’,’linewidth’,2); hold on;
stem(OutLin,’r’,’markerfacecolor’,[1 0 0]);axis([0 30 0 5]);
legend(‘FIR’,’Linear’,’Location’,’Northeast’);

Выполняется линейная интерполяция и с помощью специального фильтра с конечной импульсной характеристикой FIR. На рис. 2 показаны средства для програм-мной работы — редактор с листингом скрипта программы, командное окно и запуск с указанием имени файла dsp_demo.m этого примера. Также показано графическое окно с результатом работы программы.

 

Функции: оконные и создания сигналов

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

Пакет DSP Toolbox имеет очень удобную функцию dspWindows для представления различных окон (рис. 3):

hwin = dsp.Window( ‘WindowFunction’, ‘Kaiser’, …
‘WeightsOutputPort’,true); x = rand(64,1);
[y, w] = step(hwin, x); wvtool(w);
Функции окна Кайзера

Рис. 3. Функции окна Кайзера

Для просмотра передаточной характеристики окон во временной области и их спектра в частотной служит функция wvtool. Есть множество функций для создания и визуализации сигналов. Например, функция dsp.Chirp используется для создания сигнала «визг» с частотной модуляцией (рис. 4):

hchirp = dsp.Chirp(‘SweepDirection’, ‘Bidirectional’, …
‘TargetFrequency’, 25, ‘InitialFrequency’, 0, ‘TargetTime’, 1, ‘SweepTime’, 1, ‘SamplesPerFrame’, 400, ‘SampleRate’, 400);
plot(step(hchirp));
Задание сигнала «визг» и его визуализация

Рис. 4. Задание сигнала «визг» и его визуализация

Другая подобная функция — dsp.SineWave — позволяет задавать комплексные синусоидальные сигналы и разлагать их на действительную и мнимую компоненты. Она использована при анализе GSM цифрового понижающего конвертера (рис. 5). Здесь показано окно редактора с полным листингом программы, в которой заинтересованный пользователь может разобраться самостоятельно, и результаты вычислений — действительная и комплексная части выходного сигнала и их спектры, по виду очень напоминающие те, что были получены от обычных анализаторов спектра.

Пример анализа GSM понижающего конвертера

Рис. 5. Пример анализа GSM понижающего конвертера

По примерам применения этих функций несложно разобраться и с иными функциями такого рода.

 

Задание цифровых фильтров

Существует более 40 функций (в том числе входящих в MATLAB и используемых в других пакетах) для анализа и проектирования разнообразных дискретных (цифровых) фильтров. Относящиеся к DSP Toolbox функции имеют имена, как у записей:

конструирование фильтра:

[OP]fdesign.тип_фильтра[IP]

создание адаптивного фильтра:

[OP]adaptfilner.метод_адаптации[IP]

где [OP] — список выходных параметров; [IP] — список входных параметров.

В DSP Toolbox можно построить практически все известные виды фильтров [4] — резонансных, верхних и нижних частот, с конечной (FIR) и бесконечной (IIR) импульсной характеристикой, с различной архитектурой (например, эллиптические) и с особыми и заданными свойствами. Пример задания простого резонансного фильтра 2‑го порядка с бесконечной импульсной характеристикой IIR MATLAB (рис. 6) — функцией iirpeak — дает следующая простая программа:

fs = 10000; wo = 1750/(fs/2); bw = 500/(fs/2);
[b,a] = iirpeak(wo,bw); fvtool(b,a);
АЧХ и ФЧХ резонансного фильтра 2 го порядка

Рис. 6. АЧХ и ФЧХ резонансного фильтра 2 го порядка

Другой пример иллюстрирует построение полосового фильтра с помощью функции пакета fdesign.bandpass, его спектра и АЧХ (рис. 7):

n = 0:159; x = cos(pi/8*n)+cos(pi/2*n)+sin(3*pi/4*n);
d = fdesign.bandpass(‘Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2’, …
1/4,3/8,5/8,6/8,60,1,60);
Hd = design(d,’equiripple’); y = filter(Hd,x);
freq = 0:(2*pi)/length(x):pi; xdft = fft(x); ydft = fft(y);
plot(freq,abs(xdft(1:length(x)/2+1))); hold on;
plot(freq,abs(ydft(1:length(x)/2+1)),’r’,’linewidth’,2);
legend(‘Original Signal’,’Bandpass Signal’);
d = fdesign.bandpass(‘N,F3dB1,F3dB2’,10,1e3,1.2e3,1e4);
Hd = design(d,’butter’); fvtool(Hd)
Спектр сигнала и АЧХ полосового фильтра

Рис. 7. Спектр сигнала и АЧХ полосового фильтра

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

x = randn(1,1000); g = fir1(47,0.4); n = 0.1*randn(1,1000);
d = filter(g,1,x)+n; b = fir1(31,0.5); mu = 0.008;
ha = adaptfilt.adjlms(32,mu,1,b);
[y,e] = filter(ha,x,d); plot(1:1000,d,’b’,1:1000,e,’r’);
title(‘Active Noise Control of a Random Noise Signal’);
legend(‘Original’,’Attenuated’);
xlabel(‘Time Index’); ylabel(‘Signal Value’); grid on;
Сигналы на входе (синий) и выходе (красный) адаптивного фильтра, ослабляющего шум

Рис. 8. Сигналы на входе (синий) и выходе (красный) адаптивного фильтра, ослабляющего шум

 

Применение операций Fixed Point

Принципиально важной особенностью пакета DSP System Toolbox является возможность поддержки арифметических операций с фиксированной точкой (Fixed Point). Обычно используются операции с плавающей точкой и двойной разрядностью. Они выполняют вычисления с высокой точностью, но с невысокой скоростью.

Применение арифметики с фиксированной точкой позволяет уменьшить разрядность чисел и повысить скорость вычислений, которые часто выполняются на аппаратном уровне компьютера. Кроме того, в такой арифметике используются специальные ускоренные алгоритмы вычислений и специальные меры по уменьшению ошибок вычислений.

На рис. 9 приведен пример работы с Fixed Point арифметикой при построении FIR-фильтра прямой формы. Показаны окно редактора с листингом программы, окно командного режима с отчетом по Fixed Point вычислениям, АЧХ фильтров разного порядка и графики временной зависимости выходного сигнала при вычислениях с плавающей и с фиксированной точкой.

Пример построения в MATLAB FIR-фильтра прямой формы с использованием арифметики чисел с фиксированной точкой

Рис. 9. Пример построения в MATLAB FIR-фильтра прямой формы с использованием арифметики чисел с фиксированной точкой

Пакет DSP System Toolbox имеет свыше десятка функций реализации фильтров с Fixed Point арифметикой. Они подобны аналогичным функциям для фильтров на основе арифметики чисел с плавающей точкой — Floating Point, но характеристики фильтров, естественно, несколько отличаются. Имеются соответствующие функции преобразования данных в формате Fixed Point в формат Floating Point и наоборот.

 

Инструмент визуализации фильтров fvtool

Для построения амплитудно-частотных и других характеристик фильтров в DSP Toolbox и Signal Processing System используется специальный инструмент визуализации фильтров — fvtool. Его можно вызвать указанием имени с пустым GUI-окном, а можно заранее задать фильтры. В приведенной ниже программе заданы два FIR-фильтра и в окне fvtool построены их АЧХ и ФЧХ (рис. 10):

b1 = firpm(20,[0 0.4 0.5 1],[1 1 0 0]);
b2 = firpm(40,[0 0.4 0.5 1],[1 1 0 0]);
fvtool(b1,1,b2,1);
Окно инструмента визуализации фильтров fvtool c AЧХ и ФЧХ двух FIR-фильтров и открытой позицией меню анализа

Рис. 10. Окно инструмента визуализации фильтров fvtool c AЧХ и ФЧХ двух FIR-фильтров и открытой позицией меню анализа

Еще один пример получения АЧХ и ФЧХ фильтров (рис. 11) дает следующая программа:

Fc = 0.4; N = 100; Hf = fdesign.lowpass(‘N,Fc’,N,Fc);
Hd(1) = design(Hf,’window’,’window’,@hamming);
Hd(2) = design(Hf,’window’,’window’,{@chebwin,50});
hfvt = fvtool(Hd,’Color’,’White’);
legend(hfvt,’Hamming window design’, …
‘Dolph-Chebyshev window design’)
Окно fvtool с АЧХ и ФЧХ разных фильтров

Рис. 11. Окно fvtool с АЧХ и ФЧХ разных фильтров

Большим ослаблением в зоне затухания отличаются цифровые эллиптические фильтры высокого порядка. Они также могут давать «равноволновость» в полосах частот пропускания и затухания. Следующая программа иллюстрирует построение АЧХ и ФЧХ двух таких фильтров (рис. 12):

b1=fircband(60,[0 .2 .25 1],[1 1 0 0], [1 .001],{‘w’,’c’});
b2=fircband(80,[0 .2 .25 1],[1 1 0 0], [1 .001],{‘w’,’c’});
hfvt = fvtool(b1,1,b2,1);
legend(hfvt,’Filter Order 60’,’Filter Order 80’);
АЧХ и ФЧХ двух эллиптических НЧ-фильтров с минимальным ослаблением 60 и 80 дБ

Рис. 12. АЧХ и ФЧХ двух эллиптических НЧ-фильтров с минимальным ослаблением 60 и 80 дБ

ФЧХ этих фильтров практически линейны, что указывает на постоянство частоты групповой и фазовой задержек. Инструмент fvtool позволяет в интерактивном режиме выполнить полный анализ фильтров. Виды анализа представлены в открытой позиции меню Analysis (рис. 10). Он включает в себя, помимо анализа АЧХ и ФЧХ, а также групповой и фазовой задержек, расчет и построение переходных и импульсных характеристик (рис. 13).

Переходные характеристики двух НЧ эллиптических фильтров с минимальным ослаблением 60 и 80 дБ (левый рисунок) и их импульсные характеристики (правый график)

Рис. 13. Переходные характеристики двух НЧ эллиптических фильтров с минимальным ослаблением 60 и 80 дБ (левый рисунок) и их импульсные характеристики (правый график)

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

Нули и полюсы двух НЧ эллиптических фильтров с минимальным ослаблением 60 и 80 дБ

Рис. 14. Нули и полюсы двух НЧ эллиптических фильтров с минимальным ослаблением 60 и 80 дБ

 

Задание фильтров с помощью инструмента filterbuilder

В приведенных примерах подлежащие конструированию и анализу фильтры были явно указаны их функциями. Пакет расширения имеет инструмент для задания фильтров, генерирующий нужные функции при определенных свойствах проектируемых фильтров. Он вызывается в командном режиме MATLAB командой:

>> filterbuilder

При этом появляется небольшое окно Response (рис. 15) со списком типов фильтров. Оно имеет GUI-интерфейс. Выбрав тип фильтра (в данном примере — полосовой фильтр), нужно нажать кнопку ОК. Появится окно уточненного задания типа фильтра, показанное на рис. 15 справа. В нем можно уточнить параметры проектируемого фильтра и просмотреть его передаточную характеристику, активизировав кнопку View Filter Response: она показана на рис. 15 снизу в левой части окна MATLAB командного режима.

Инструменты конструирования заданного типа фильтра

Рис. 15. Инструменты конструирования заданного типа фильтра

Теперь, нажав кнопку ОК конструктора, можно получить в командном окне следующее текстовое сообщение:

The variable ‘Hbp’ has been exported to the workspace.

Исполнив команду Hpp (или иную из сообщения), получим:

>> Hbp
 Hbp =
    FilterStructure: ‘Direct-Form FIR’
        Arithmetic: ‘double’
        Numerator: [1x48 double]
    PersistentMemory: false

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

 

Дискретные преобразования сигналов

В пакет DSP Toolbox входит пять функций дискретного преобразования — прямого и обратного косинусных преобразований, прямого и обратного преобразований Фурье и функция представления аналитических сигналов. Косинусные преобразования широко применяются в технике компрессии и декомпрессии сигналов, а преобразования Фурье лежат в основе спектрального анализа. Учитывая теоретическую и практическую важность функций преобразования, рассмотрим примеры применения их всех.

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

x = (1:128).’ + 50*cos((1:128).’*2*pi/40);
hdct = dsp.DCT; X = step(hdct, x);
 [XX, ind] = sort(abs(X),1,’descend’); ii = 1;
while (norm([XX(1:ii);zeros(128-ii,1)]) <= 0.999*norm(XX))
          ii = ii+1;
end
disp([‘Number of DCT coefficients that represent 99.9%’, …
‘of the total energy in the sequence: ‘,num2str(ii)]);
XXt = zeros(128,1); XXt(ind(1:ii)) = X(ind(1:ii));
hidct = dsp.IDCT; xt = step(hidct, XXt);
plot(1:128,[x xt]); legend(‘Original signal’, …
‘Reconstructed signal’, ‘location’,’best’)

В промежутке между преобразованиями малые значения результатов прямого преобразования удаляются, что обеспечивает компрессию сигнала. Тем не менее реконструкция сигнала дает очень близкие значения сигнала, что показано на рис. 16.

Косинусное дискретное преобразование сигнала и его реконструкция

Рис. 16. Косинусное дискретное преобразование сигнала и его реконструкция

Прямое дискретное быстрое преобразование Фурье — «рабочая лошадка» в спектральном представлении сигналов в частотной области. Это наглядно иллюстрирует следующая программа, создающая зашумленный сигнал из двух синусоид с разной амплитудой и частотой, а затем строящая его спектр (рис. 17) с помощью функции прямого БПФ dsp.FFT:

Fs = 800; L = 1000; t = (0:L-1)’/Fs;
x = sin(2*pi*250*t) + 0.75*cos(2*pi*340*t);
y = x + .5*randn(size(x));
hfft = dsp.FFT(‘FFTLengthSource’,’Property’,’FFTLength’,1024);
Y = step(hfft, y);
plot(Fs/2*linspace(0,1,512), 2*abs(Y(1:512)/1024));
title(‘Single-sided amplitude spectrum of noisy signal y(t)’);
xlabel(‘Frequency (Hz)’); ylabel(‘|Y(f)|’);
Спектр зашумленного двухкомпонентного сигнала

Рис. 17. Спектр зашумленного двухкомпонентного сигнала

БПФ — особый быстрый алгоритм преобразования Фурье. Он резко ускоряет преобразования, но совершенно не меняет их суть и конечные результаты.

Следующая программа показывает совместное действие прямого и обратного преобразования Фурье:

Fs = 40; L = 128; t = (0:L-1)’/Fs;
x = sin(2*pi*10*t) + 0.75*cos(2*pi*15*t);
y = x + .5*randn(size(x)); hfft = dsp.FFT;
hifft = dsp.IFFT(‘ConjugateSymmetricInput’, true);
X = step(hfft, x); [XX, ind] = sort(abs(X),1,’descend’);
XXn = sqrt(cumsum(XX.^2))/norm(XX);
ii = find(XXn > 0.999, 1);
disp(‘Number of FFT coefficients that represent 99.9% ‘)
disp([‘of the total energy in the sequence: ‘, num2str(ii)]);
XXt = zeros(128,1); XXt(ind(1:ii)) = X(ind(1:ii));
xt = step(hifft, XXt); norm(x-xt)

Программа выдает результат:

ans =
      1.2012e-13

Это норма разности исходного и преобразованного сигнала. А это значит, что произошло практически полное восстановление сигнала с точностью машинных вычислений.

Наконец, еще одна программа:

t = (-1:0.01:1)’; x = sin(4*pi*t);
hanlytc = dsp.AnalyticSignal(200); y = step(hanlytc,x);
subplot(2,1,1), plot(t, x); title(‘Original Signal’);
subplot(2,1,2), plot(t, [real(y) imag(y)]);
title(‘Analytic signal of the input’)
legend(‘Real signal’,’Imaginary signal’,’Location’,’best’);

дает разложение аналитического сигнала — синусоиды — на его действительную и мнимую части (рис. 18).

Синусоидальный сигнал и его действительная и мнимая части

Рис. 18. Синусоидальный сигнал и его действительная и мнимая части

Заметим, что в DSP Toolbox можно работать и с рядом подобных MATLAB-функций, применяемых в других пакетах расширения и описанных в них.

 

Библиотека Simulink-блоков пакета расширения DSP Toolbox

Большинство задач анализа и проектирования систем с цифровой обработкой сигналов можно решать на уровне программирования в MATLAB и пакетах расширения, особенно в направленном на это пакете DSP Toolbox. Однако разработчики этого пакета пошли дальше: большинство его функций создано не столько для самостоятельного применения, сколько для поддержки универсальных приложений с GUI-интерфейсом и обеспечения блочного имитационного моделирования на базе основного пакета расширения Simulink. Необходимая для этого библиотека блоков моделей была включена в пакет DSP Toolbox.

На рис. 19 показано основное окно библиотеки блоков Simulink. В левой его части находится дерево разделов библиотеки, открытое на разделах, относящихся к пакету расширения DSP Toolbox. В окне с золотистыми пиктограммами представлены пиктограммы разделов библиотеки этого пакета. Приведены также окна с блоками моделей.

Окно библиотеки Simulink и первая группа окон библиотеки пакета DSP Toolbox

Рис. 19. Окно библиотеки Simulink и первая группа окон библиотеки пакета DSP Toolbox

Каждый блок имеет наглядное обозначение в виде пиктограммы и имя. Например, в блоках спектрального анализа пиктограммы представляют собой типичный вид спектра, в математических блоках — названия математических функций и т. д. Для определения отличных от заданных по умолчанию параметров блоков служат окна установки параметров, которые вызываются двойным щелчком мыши на пиктограмме блока.

Вторая группа окон с блоками моделей показана на рис. 20. Здесь представлены блоки с функциями преобразования (окно Transform), источниками сигналов (Source), средствами отображения и визуализации сигналов (Sinks), буферами (Buffers) и др.

Вторая группа окон библиотеки пакета DSP Toolbox

Рис. 20. Вторая группа окон библиотеки пакета DSP Toolbox

Третью группу окон с блоками моделей можно видеть на рис. 21. Здесь представлены блоки фильтров различного типа и назначения. В окне с золотистыми прямоугольниками расположены разделы библиотеки фильтров.

Третья группа окон библиотеки пакета DSP Toolbox

Рис. 21. Третья группа окон библиотеки пакета DSP Toolbox

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

Диаграммы моделей создаются переносом мышью блоков их окон в окно диаграммы (открывается командой New в меню File основного окна библиотеки Simulink — рис. 19). Возможна также (командой Open) загрузка готовых диаграмм, например демонстрационных примеров. Блоки на диаграмме соединяются с помощью мыши. Детали подготовки диаграмм описаны в [4].

 

Применение блоков осциллографа и анализатора спектра

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

Диаграмма модели, иллюстрирующая применение виртуального осциллографа для наблюдения сигналов во временной области

Рис. 22. Диаграмма модели, иллюстрирующая применение виртуального осциллографа для наблюдения сигналов во временной области

Каждый блок имеет окно параметров — это блок параметров осциллографа над осциллограммами. Он выводится двойным щелчком правой клавиши мыши. Часто для правильной работы диаграммы достаточно установок параметров по умолчанию, но в общем случае их установка выполняется в процессе отладки работы диаграммы. Тогда же определяются и общие параметры моделирования — тип решателя, шаг решения, начальное и конечное время моделирования и т. д.

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

Диаграмма модели, иллюстрирующей применение виртуального анализатора спектра в частотной области

Рис. 23. Диаграмма модели, иллюстрирующей применение виртуального анализатора спектра в частотной области

DSP Toolbox можно использовать для сравнения методов спектрального анализа с применением окон различного типа (рис. 24). Тут в одной диаграмме выполняется спектральный анализ тремя методами и на одном графике строятся все четыре спектра. Это позволяет их сравнивать.

Диаграмма модели, иллюстрирующей три метода анализа спектра

Рис. 24. Диаграмма модели, иллюстрирующей три метода анализа спектра

Диаграмма модели системы, осуществляющей спектральную компрессию сигнала, показана на рис. 25. Компрессия осуществляется за счет устранения высших гармоник спектра сигнала с малой энергией.

Диаграмма модели спектральной компрессии

Рис. 25. Диаграмма модели спектральной компрессии

Для наблюдения нестационарных сигналов в канале связи можно использовать диаграмму, приведенную на рис. 26.

Диаграмма модели наблюдения нестационарных сигналов в канале связи

Рис. 26. Диаграмма модели наблюдения нестационарных сигналов в канале связи

Уже отмечалось широкое применение в пакете расширения DSP Toolbox адаптивных методов очистки сигналов от шума. Еще одна реализация такого метода представлена на рис. 27. Здесь использован RLS-фильтр, использующий метод наименьших квадратов. Эффективность очистки на примере синусоидального сигнала иллюстрируется осциллограммами виртуального осциллографа.

Диаграмма модели адаптивной очистки от шума

Рис. 27. Диаграмма модели адаптивной очистки от шума

Окно блока параметров фильтра Notice Filter представлено на рис. 28. Используется фильтр типа FIR прямой формы 31‑го порядка.

Окно блока параметров фильтра

Рис. 28. Окно блока параметров фильтра

 

Моделирование DSP для обработки аудиосигналов

Эквалайзеры, корректирующие АЧХ, широко применяются в электроакустике. В DSP Toolbox имеется модель трехполосного параметрического эквалайзера. Диаграмма на рис. 29 поясняет его работу и формирование результирующей АЧХ путем изменения центральной частоты и высоты пика каждой полосы.

Диаграмма модели параметрического акустического эквалайзера

Рис. 29. Диаграмма модели параметрического акустического эквалайзера

Диаграмма контроля MIDI-сигналов

Рис. 30. Диаграмма контроля MIDI-сигналов

Звуковая система каждого современного компьютера содержит синтезатор музыкальных звуковых сигналов — MIDI-синтезатор. Диаграмма, показанная на рис. 30, позволяет контролировать и наблюдать сигналы от MIDI-синтезатора.

В компьютеры часто встраивают звуковые карты, поддерживающие многоканальное воспроизведение звуков, подобное тому, что применяется в домашних кинотеатрах. Особенность таких систем — в возможности определения направления на звук объекта звучания. Диаграмма на рис. 31 моделирует работу домашнего кинотеатра с пятью колонками (одна центральная и по две фронтальные и тыловые) и позволяет оценить положение источника звука — вертолета — относительно человека, находящегося в центре домашнего кинотеатра. Звук должен идти примерно с того места, куда мышкой помещен вертолет.

Диаграмма моделирования домашнего кинотеатра

Рис. 31. Диаграмма моделирования домашнего кинотеатра

При изучении реальных стереосигналов весьма полезны представления в виде периодограмм и особенно спектрограмм в плоскости амплитуда-частота-время. Диаграмма на рис. 32 иллюстрирует получение этих характеристик. Они позволяют оценить степень стереоэффекта и «прозрачность» звука.

Диаграмма, иллюстрирующая получение периодограммы и спектрограммы аудиосигнала

Рис. 32. Диаграмма, иллюстрирующая получение периодограммы и спектрограммы аудиосигнала

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

Диаграмма подавителя акустических шумов

Рис. 33. Диаграмма подавителя акустических шумов

В последнее время в аппаратные средства связи и вычислительной техники внедряются цифровые методы анализа и синтеза речи. Диаграмма на рис. 34 иллюстрирует моделирование одной из таких систем с линейным кодированием и предсказанием (LPC). Здесь также можно проверить качество синтеза речи, используя кнопки под диаграммой.

Диаграмма LPC анализа и синтеза речи

Рис. 34. Диаграмма LPC анализа и синтеза речи

Применение блоков математических операций

В DSP Toolbox представлены также блоки математических операций. Их можно использовать при блочном имитационном моделировании различных устройств. Например, на рис. 35 приведена диаграмма, выделяющая нули магнитуды АМ-сигнала двумя способами. Результаты получаются практически идентичными.

Диаграмма модели выделения пересечений магнитуды сигнала через нуль

Рис. 35. Диаграмма модели выделения пересечений магнитуды сигнала через нуль

Быстрое (в динамике процесса) проведение полиномиальной регрессии для множества кадров изменяющихся данных (точек) иллюстрирует диаграмма, показанная на рис. 36. На ней показана регрессия для конечного кадра.

Диаграмма полиномиальной регрессии

Рис. 36. Диаграмма полиномиальной регрессии

 

Примеры моделирования связных и радиолокационных устройств

Для моделирования коммуникационных устройств с MATLAB поставляется пакет расширения Communication Systems Toolbox. Однако для моделирования некоторых устройств набор блоков в пакете DSP Toolbox может оказаться более предпочтительным. Рассмотрим несколько таких примеров.

Диаграмма на рис. 37 иллюстрирует проведение однополосной амплитудной модуляции и представление ее спектров. Удаление одной из боковых полос сужает спектр сигнала вдвое и позволяет в системах связи увеличить отношение сигнал/шум.

Диаграмма системы однополосной модуляции и ее спектры

Рис. 37. Диаграмма системы однополосной модуляции и ее спектры

Одним из популярных видов модуляции импульсных сигналов является дельта-модуляция. Диаграмма на рис. 38 позволяет моделировать и сравнивать три вида дельта-модуляции: LDM, CVSD и ADPCM. Во всех случаях использованы кодеки и декодеки для соответствующего вида модуляции.

Диаграмма моделирования трех видов дельта-модуляции

Рис. 38. Диаграмма моделирования трех видов дельта-модуляции

Диаграмма на рис. 39 иллюстрирует получение изображения на экране трубки радара. Для обработки изображения с целью повышения точности индикации используется фильтр Калмана, выполненный в виде полусистемы (субблока).

Диаграмма модели системы индикации радара с фильтром Калмана

Рис. 39. Диаграмма модели системы индикации радара с фильтром Калмана

Для повышения точности оценки апертуры радаров применяется метод SAR (Synthetic Aperture Radar Processing). Диаграмма его реализации показана на рис. 40. Суть метода представлена с помощью спектрограммы и звездных диаграмм. Их окна находятся под диаграммой модели.

Диаграмма, иллюстрирующая метод SAR при работе радара

Рис. 40. Диаграмма, иллюстрирующая метод SAR при работе радара

 

Заключение

Новый пакет расширения DSP Toolbox 6.3, разработанный для матричной системы MATLAB+Simulinl 8/0 (R2012b), содержит многочисленные средства (в том числе Simulink-блоки моделей) разных компонентов для построения, проектирования, анализа и имитационного моделирования разнообразных систем и устройств с цифровой обработкой сигналов. Таким образом, MATLAB+Simulink 8.0 (R2012b) стала одной из первых перспективных систем для проектирования и моделирования современных устройств и систем с цифровой обработкой информации. Ее возможности по моделированию генераторов, модуляторов, демодуляторов и т. д., а также по представлению и индикации сигналов позволяют выполнять в этой системе широкий спектр работ по проектированию, анализу и имитационному моделированию систем с DSP.

Литература
  1. mathworks.com
  2. Дьяконов В. П. MATLAB R2006/2007/2008 + Simulink 5/6.7. Основы применения. М.: Солон-Пресс, 2008.
  3. Дьяконов В. П. MATLAB. Полный самоучитель. М.: ДМК-Пресс, 2012.
  4. Дьяконов В. П. MATLAB и Simulink для радиоинженеров. М.: ДМК-Пресс, 2011.
  5. Дьяконов В. П. MATLAB 2011b в обработке сигналов и моделировании электронных устройств // Компоненты и технологии. 2012. № 2.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *