MATLAB+Simulink 8.0 (R2012b):
пакет расширения Digital Signal Processing System Toolbox
Владимир ДьяКОНОВ, д. т. н., профессор
Пакет расширения 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 в правой части командного окна.
Простые примеры применения DSP System Toolbox
Чтобы можно было отличить функции DSP System Toolbox от функций других пакетов, им присвоены названия в форме записей, например:
>> hconv = dsp.Convolver; x = ones(10,1); >> y = step(hconv, x, x); >> plot(y);
Здесь использована функция dsp.Convolver, демонстрирующая операцию свертки (рис. 2) именно в пакете DSD Toolbox. Команды выполняются в окне командного режима (признаком является MATLAB символ ввода «>>») (рис. 1). Результатом выполнения этих команд является окно с графиком свертки, показанное на рис. 1 слева внизу.
Следующая программа выполняется из окна редактора программного кода и показывает проведение операции интерполяции двумя методами с помощью функции dsp.Interpolator.
x =[1 4]; x = repmat(x,1,4); x1 = 1:0.25:8; hFIR =dsp.Interpolator('Method','FIR','FilterHalfLength',2,... 'InterpolationPomts',x17InterpolationPomtsPerSample\4); hLin =dsp.Interpolator('InterpolationPoints',x1'); OutFIR = step(hFIR,x'); OutLin = step(hLin,x'); stem(OutFIR,'b-.','linewidth',2); hold on; stem(OutLin,Y,'markerfacecolor',[1 0 0]);axis([0 30 0 5]); legend('FIR','Linear','Location','Northeast');
Выполняется линейная интерполяция и с помощью специального фильтра с ко-
Рис. 1. Интерфейс MATLAB 8.0 с окном справки в правой части командного окна
Рис. 2. Интерполяция с помощью функции dsp.Inteгpolatoг в программном режиме работы
Рис. 3. Функции окна Кайзера
нечной импульсной характеристикой FIR. На рис. 2 показаны средства для программной работы — редактор с листингом скрипта программы, командное окно и запуск с указанием имени файла dsp_demo.m этого примера. Также показано графическое окно с результатом работы программы.
Функции:
оконные и создания сигналов
Для просмотра передаточной характеристики окон во временной области и их спектра в частотной служит функция 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. Задание сигнала «визг» и его визуализация
По примерам применения этих функций несложно разобраться и с иными функциями такого рода.
Задание цифровых фильтров
Существует более 40 функций (в том числе входящих в MATLAB и используемых в других пакетах) для анализа и проектирования разнообразных дискретных (цифровых) фильтров. Относящиеся к DSP Toolbox функции имеют имена, как у записей: • конструирование фильтра:
[OP]fdesign.тип_фильтра[IP]
В последние годы в технике цифровой обработки информации широко применяются окна (windows). Например, в технике спектрального анализа окна предотвращают разрывы сигналов в начале и конце их временной области существования и уменьшают искажения спектра.
Пакет DSP Toolbox имеет очень удобную функцию dspWindows для представления различных окон (рис. 3):
Другая подобная функция — dsp. SineWave — позволяет задавать комплексные синусоидальные сигналы и разлагать их на действительную и мнимую компоненты. Она использована при анализе GSM цифрового понижающего конвертера (рис. 5). Здесь показано окно редактора с полным листингом программы, в которой заинтересованный пользователь может разобраться самостоятельно, и результаты вычислений — действительная и комплексная части выходного сигнала и их спектры, по виду очень напоминающие те, что были получены от обычных анализаторов спектра.
hwin = dsp.Window( 'WindowFunction', 'Kaiser', ... 'WeightsOutputPort',true); x = rand(64,1); [y, w] = step(hwin, x); wvtool(w);
• создание адаптивного фильтра:
[OP]adaptfilner.метод_адаптации[IP]
где [OP] — список выходных параметров; [IP] — список входных параметров.
В DSP Toolbox можно построить практически все известные виды фильтров [4] — резонансных, верхних и нижних частот, с конечной (FIR) и бесконечной (IIR) импульсной характеристикой, с различной архитектурой (например, эллиптические) и с особыми и заданными свойствами. Пример задания простого резонансного фильтра 2-го порядка с бесконечной импульсной характеристикой IIR MATLAB (рис. 6) — функци-
Рис. 5. Пример анализа GSM понижающего конвертера Рис. 6. АЧХ и ФЧХ резонансного фильтра 2-го порядка
ей игреак — дает следующая простая программа:
fs = 10000; шо = 1750/^/2); Ьш = 500/^/2); [Ь,а] = игреак(шо,Ьш); ^оо1(Ь,а);
Другой пример иллюстрирует построение полосового фильтра с помощью функции пакета 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)
Ряд функций предназначен для задания адаптивных и неадаптивных фильтров, ослабляющих шумы сигналов. В представленном далее примере показано, как создаются сигнал с шумом и адаптивный фильтр для его ослабления и строятся временные диаграммы сигнала на входе и выходе фильтра (рис. 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('OrigmalYAttenuated');
xlabel('Time Index'); ylabel('Signal Value'); grid on;
Применение операций Fixed Point
Принципиально важной особенностью пакета DSP System Toolbox является возможность поддержки арифметических операций с фиксированной точкой (Fixed Point). Обычно используются операции с плавающей точкой и двойной разрядностью. Они выполняют вычисления с высокой точностью, но с невысокой скоростью.
Применение арифметики с фиксированной точкой позволяет уменьшить разрядность чисел и повысить скорость вычис-
Рис. 7. Спектр сигнала и АЧХ полосового фильтра
Рис. 8. Сигналы на входе (синий) и выходе (красный) адаптивного фильтра, ослабляющего шум
лений, которые часто выполняются на аппаратном уровне компьютера. Кроме того, в такой арифметике используются специальные ускоренные алгоритмы вычислений и специальные меры по уменьшению ошибок вычислений.
На рис. 9 приведен пример работы с Fixed Point арифметикой при построении FIR-фильтра прямой формы. Показаны окно редактора с листингом программы, окно командного режима с отчетом по Fixed Point вычислениям, АЧХ фильтров разного по-
рядка и графики временной зависимости выходного сигнала при вычислениях с плавающей и с фиксированной точкой.
Пакет 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);
Рис. 9. Пример построения в MATLAB FIR-фильтра прямой формы с использованием арифметики чисел с фиксированной точкой
Рис. 10. Окно инструмента визуализации фильтров c AЧХ и ФЧХ двух FIR-фильтров и открытой позицией меню анализа
Рис. 11. Окно fvtool с АЧХ и ФЧХ разных фильтров
Рис. 12. АЧХ и ФЧХ двух эллиптических НЧ-фильтров с минимальным ослаблением 60 и 80 дБ
Рис. 13. Переходные характеристики двух НЧ эллиптических фильтров Рис. 14. Нули и полюсы двух НЧ эллиптических
с минимальным ослаблением 60 и 80 дБ (левый рисунок) и их импульсные характеристики (правый график) фильтров с минимальным ослаблением 60 и 80 дБ
Еще один пример получения АЧХ и ФЧХ фильтров (рис. 11) дает следующая программа:
Большим ослаблением в зоне затухания отличаются цифровые эллиптические фильтры высокого порядка. Они также могут давать «равноволновость» в полосах частот пропускания и затухания. Следующая программа иллюстрирует построение АЧХ и ФЧХ двух таких фильтров (рис. 12):
ФЧХ этих фильтров практически линейны, что указывает на постоянство частоты групповой и фазовой задержек. Инструмент fvtool позволяет в интерактивном режиме выполнить полный анализ фильтров. Виды анализа представлены в открытой позиции меню Analysis (рис. 10). Он включает в себя, помимо анализа
АЧХ и ФЧХ, а также групповой и фазовой задержек, расчет и построение переходных и импульсных характеристик (рис. 13).
Переходная характеристика является реакцией фильтра на единичный скачок, а импульсная — на импульс с единичной площадью и длительностью, стремящейся к нулю (рис. 14). (Это значит, что амплитуда такого импульса стремится к бесконечности.) Эти характеристики помогают понять поведение фильтров во временной области. Кроме того, можно получить на комплексной плоскости нули и полюсы передаточной характеристики фильтров.
Задание фильтров с помощью инструмента filterbuilder
В приведенных примерах подлежащие конструированию и анализу фильтры были явно указаны их функциями. Пакет расширения имеет инструмент для задания фильтров, генерирующий нужные функции при определенных свойствах проектируемых фильтров. Он вызывается в командном режиме MATLAB командой:
>> filterbuilder
При этом появляется небольшое окно Response (рис. 15) со списком типов фильтров. Оно имеет GUI-интерфейс. Выбрав тип фильтра (в данном примере — полосовой фильтр), нужно нажать кнопку ОК. Появится окно уточненного задания типа фильтра, показанное на рис. 15 справа. В нем можно уточнить параметры проектируемого фильтра и просмотреть его передаточную характеристику, активизировав кнопку View Filter Response: она показана на рис. 15 снизу в левой части окна MATLAB командного режима.
Теперь, нажав кнопку ОК конструктора, можно получить в командном окне следующее текстовое сообщение:
The variable 'Hbp' has been exported to the workspace.
Исполнив команду Hpp (или иную из сообщения), получим:
>> Hbp
Hbp =
FilterStructure: 'Direct-Form FIR' Arithmetic: 'double' Numerator: [1x48 double]
PersistentMemory: false
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')
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');
Рис. 15. Инструменты конструирования заданного типа фильтра
Таким образом, заданный фильтр полностью определен, и для получения его детальных характеристик следует воспользоваться инструментом 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.
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)|');
БПФ — особый быстрый алгоритм преобразования Фурье. Он резко ускоряет преобразования, но совершенно не меняет их суть и конечные результаты.
Следующая программа показывает совместное действие прямого и обратного преобразования Фурье:
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.A2))/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)
Рис. 16. Косинусное дискретное преобразование сигнала и его реконструкция
Прямое дискретное быстрое преобразование Фурье — «рабочая лошадка» в спектральном представлении сигналов в частотной области. Это наглядно иллюстрирует следующая программа, создающая зашум-ленный сигнал из двух синусоид с разной амплитудой и частотой, а затем строящая его спектр (рис. 17) с помощью функции прямого БПФ dsp.FFT:
Программа выдает результат:
Это норма разности исходного и преобразованного сигнала. А это значит, что произошло практически полное восстановление сигнала с точностью машинных вычислений.
Наконец, еще одна программа:
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).
Заметим, что в DSP Toolbox можно работать и с рядом подобных MATLAB-функций, применяемых в других пакетах расширения и описанных в них.
Рис. 17. Спектр зашумленного двухкомпонентного сигнала
Рис. 18. Синусоидальный сигнал и его действительная и мнимая части
ans
Библиотека Simulink-блоков пакета расширения DSP Toolbox
Большинство задач анализа и проектирования систем с цифровой обработкой сигналов можно решать на уровне программирования в MATLAB и пакетах расширения, особенно в направленном на это пакете DSP Toolbox. Однако разработчики этого пакета пошли дальше: большинство его функций создано не столько для самостоятельного применения, сколько для поддержки универсальных приложений с GUI-интерфейсом и обеспечения блочного имитационного моделирования на базе основного пакета расширения Simulink. Необходимая для этого библиотека блоков моделей была включена в пакет DSP Toolbox.
На рис. 19 показано основное окно библиотеки блоков Simulink. В левой его части находится дерево разделов библиотеки, открытое на разделах, относящихся к пакету расширения DSP Toolbox. В окне с золотистыми пиктограммами представлены пиктограммы разделов библиотеки этого пакета. Приведены также окна с блоками моделей.
Каждый блок имеет наглядное обозначение в виде пиктограммы и имя. Например, в блоках спектрального анализа пиктограммы представляют собой типичный вид спектра, в математических блоках — названия математических функций и т. д. Для определения отличных от заданных по умолчанию параметров блоков служат окна установки параметров, которые вызываются двойным щелчком мыши на пиктограмме блока.
Вторая группа окон с блоками моделей показана на рис. 20. Здесь представлены блоки с функциями преобразования (окно Transform), источниками сигналов (Source), средствами отображения и визуализации сигналов (Sinks), буферами (Buffers) и др.
Третью группу окон с блоками моделей можно видеть на рис. 21. Здесь представлены блоки фильтров различного типа и назначения. В окне с золотистыми прямоугольниками расположены разделы библиотеки фильтров.
В целом библиотека блоков моделей пакета DSP Toolbox весьма обширна, что говорит о множестве систем и устройств цифровой обработки сигналов, которые можно моделировать с ее помощью. Каждая моделируемая система (или каждое устройство) должна быть представлена диаграммой своей модели, составленной из нужных блоков и соединений между ними. Необходимо учитывать тип блоков и формат передаваемых сигналов: некоторые блоки разных пакетов расширения могут совпадать по функциональному назначению, но отличаться форматами передачи данных (на это указывает вид портов блоков). Подобные блоки рассматриваются как разные, так как они не могут соединяться друг с другом.
Диаграммы моделей создаются переносом мышью блоков их окон в окно диаграммы (открывается командой New в меню File
Рис. 19. Окно библиотеки Simulink и первая группа окон библиотеки пакета DSP Toolbox
Рис. 20. Вторая группа окон библиотеки пакета DSP Toolbox
Рис. 21. Третья группа окон библиотеки пакета DSP Toolbox
Рис. 22. Диаграмма модели, иллюстрирующая применение виртуального осциллографа для наблюдения сигналов во временной области
Рис. 23. Диаграмма модели, иллюстрирующей применение виртуального анализатора спектра в частотной области
основного окна библиотеки Simulink — рис. 19). Возможна также (командой Open) загрузка готовых диаграмм, например демонстрационных примеров. Блоки на диаграмме соединяются с помощью мыши. Детали подготовки диаграмм описаны в [4].
Применение блоков осциллографа и анализатора спектра
На рис. 22 показана диаграмма простейшей модели, иллюстрирующей применение виртуального осциллографа для наблюдения сигналов из рабочего пространства — прямо и после фильтрации цифровым фильтром. Справа от диаграммы расположено окно осциллографа с наблюдаемыми графиками временной зависимости сигналов. Модель запускается кнопкой с треугольником в кружке. В процессе выполнения диаграммы панель инструментов с этой кнопкой выводится тусклой.
Каждый блок имеет окно параметров — это блок параметров осциллографа над осциллограммами. Он выводится двойным щелчком правой клавиши мыши. Часто для правильной работы диаграммы достаточно установок параметров по умолчанию, но в общем случае их установка выполняется в процессе отладки работы диаграммы. Тогда же определяются и общие параметры моделирования — тип решателя, шаг решения, начальное и конечное время моделирования и т. д.
Следующая диаграмма (рис. 23) иллюстрирует применение виртуального анализатора спектра, на вход блока которого подан сигнал — прямо от виртуального генератора и через цифровой фильтр. Спектр сигнала показан на рис. 23 справа от диаграммы. Представлено также окно параметров анализатора спектра.
Рис. 26. Диаграмма модели наблюдения нестационарных сигналов в канале связи
DSP Toolbox можно использовать для сравнения методов спектрального анализа с применением окон различного типа (рис. 24). Тут в одной диаграмме выполняется спектральный анализ тремя методами и на одном графике строятся все четыре спектра. Это позволяет их сравнивать.
Диаграмма модели системы, осуществляющей спектральную компрессию сигнала, показана на рис. 25. Компрессия осуществляется за счет устранения высших гармоник спектра сигнала с малой энергией.
Для наблюдения нестационарных сигналов в канале связи можно использовать диаграмму, приведенную на рис. 26.
Рис. 27. Диаграмма модели адаптивной очистки от шума
Рис. 29. Диаграмма модели параметрического акустического эквалайзера
Уже отмечалось широкое применение в пакете расширения DSP Toolbox адаптивных методов очистки сигналов от шума. Еще одна реализация такого метода представлена на рис. 27. Здесь использован RLS-фильтр, использующий метод наименьших квадратов. Эффективность очистки на примере синусоидального сигнала иллюстрируется осциллограммами виртуального осциллографа.
Окно блока параметров фильтра Notice Filter представлено на рис. 28. Используется фильтр типа FIR прямой формы 31-го порядка.
Моделирование DSP для обработки аудиосигналов
Эквалайзеры, корректирующие АЧХ, широко применяются в электроакустике. В DSP Toolbox имеется модель трехполосного параметрического эквалайзера. Диаграмма на рис. 29 поясняет его работу и формирование результирующей АЧХ путем изменения центральной частоты и высоты пика каждой полосы.
Звуковая система каждого современного компьютера содержит синтезатор музыкальных звуковых сигналов — MIDI-синтезатор. Диаграмма, показанная на рис. 30, позволяет контролировать и наблюдать сигналы от MIDI-синтезатора.
В компьютеры часто встраивают звуковые карты, поддерживающие многоканальное воспроизведение звуков, подобное тому, что применяется в домашних кинотеатрах. Особенность таких систем — в возможности определения направления на звук объекта звучания. Диаграмма на рис. 31 моделирует работу домашнего кинотеатра с пятью колонками (одна центральная и по две фронтальные и тыловые) и позволяет оценить положение источника звука — вертолета — относительно человека, находящегося в центре домашнего кинотеатра. Звук должен идти примерно с того места, куда мышкой помещен вертолет.
При изучении реальных стереосигналов весьма полезны представления в виде периодограмм и особенно спектрограмм в плоскости амплитуда-частота-время. Диаграмма на рис. 32 иллюстрирует получение этих характеристик. Они позволяют оценить степень стереоэффекта и «прозрачность» звука.
Ослабление шума — одна из наиболее часто встречаемых задач цифровой обработки аудиосигналов. На рис. 33 приведена диаграмма модели одной из цифровых систем шумоподавления акустических сигналов. При наличии у компьютера звуковой карты и акустической системы степень подавления шума можно проверить, используя прямоугольные кнопки под диаграммой. Трехмерная диаграмма показывает развитие спектра во времени в процессе адаптации системы.
Рис. 32. Диаграмма, иллюстрирующая получение периодограммы и спектрограммы аудиосигнала
Рис. 35. Диаграмма модели выделения пересечений магнитуды сигнала через нуль
Рис. 36. Диаграмма полиномиальной регрессии
Рис. 33. Диаграмма подавителя акустических шумов
Рис. 34. Диаграмма LPC анализа и синтеза речи
В последнее время в аппаратные средства связи и вычислительной техники внедряются цифровые методы анализа и синтеза речи. Диаграмма на рис. 34 иллюстрирует моделирование одной из таких систем с линейным кодированием и предсказанием (LPC). Здесь также можно проверить качество синтеза речи, используя кнопки под диаграммой.
Применение блоков математических операций
В DSP Toolbox представлены также блоки математических операций. Их можно использовать при блочном имитационном моделировании различных устройств. Например, на рис. 35 приведена диа-
грамма, выделяющая нули магнитуды АМ-сигнала двумя способами. Результаты получаются практически идентичными.
Быстрое (в динамике процесса) проведение полиномиальной регрессии для множества кадров изменяющихся данных (точек) иллюстрирует диаграмма, показанная на рис. 36. На ней показана регрессия для конечного кадра.
Примеры моделирования связных и радиолокационных устройств
Для моделирования коммуникационных устройств с MATLAB поставляется пакет расширения Communication Systems Toolbox. Однако для моделирования некоторых устройств набор блоков в пакете DSP Toolbox может оказаться более предпочтительным. Рассмотрим несколько таких примеров.
Диаграмма на рис. 37 иллюстрирует проведение однополосной амплитудной модуляции и представление ее спектров. Удаление одной из боковых полос сужает спектр сигнала вдвое и позволяет в системах связи увеличить отношение сигнал/шум.
Одним из популярных видов модуляции импульсных сигналов является дельта-модуляция. Диаграмма на рис. 38 позволяет моделировать и сравнивать три вида дельта-модуляции: LDM, CVSD и ADPCM. Во всех случаях использованы кодеки и декодеки для соответствующего вида модуляции.
Диаграмма на рис. 39 иллюстрирует получение изображения на экране трубки радара. Для обработки изображения с целью повышения точности индикации используется фильтр Калмана, выполненный в виде полусистемы (субблока).
Для повышения точности оценки апертуры радаров применяется метод SAR (Synthetic Aperture Radar Processing). Диаграмма его
Рис. 37. Диаграмма системы однополосной модуляции и ее спектры
Рис. 38. Диаграмма моделирования трех видов дельта-модуляции
реализации показана на рис. 40. Суть метода представлена с помощью спектрограммы и звездных диаграмм. Их окна находятся под диаграммой модели.
Заключение
Новый пакет расширения DSP Toolbox 6.3, разработанный для матричной системы MATLAB+Simulin! 8/0 (R2012b), содержит многочисленные средства (в том числе Simulink-блоки моделей) разных компонентов для построения, проектирования, анализа и имитационного моделирования
разнообразных систем и устройств с цифровой обработкой сигналов. Таким образом, MATLAB+Simulink 8.0 ^2012Ь) стала одной из первых перспективных систем для проектирования и моделирования современных устройств и систем с цифровой обработкой информации. Ее возможности по моделированию генераторов, модуляторов, демодуляторов и т. д., а также по представлению и индикации сигналов позволяют выполнять в этой системе широкий спектр работ по проектированию, анализу и имитационному моделированию систем с DSP. ■
Литература
1. www.mathworks.com
2. Дьяконов В. П. МАТХАБ К2006/2007/2008 + 8ти1шк 5/6.7. Основы применения. М.: Солон-Пресс, 2008.
3. Дьяконов В. П. МАТГАБ. Полный самоучитель. М.: ДМК-Пресс, 2012.
4. Дьяконов В. П. МАТГАБ и 8ти1шк для радиоинженеров. М.: ДМК-Пресс, 2011.
5. Дьяконов В. П. МАТХАБ 2011Ь в обработке сигналов и моделировании электронных устройств // Компоненты и технологии. 2012. № 2.
новости память
Карты памяти спецификации CFast 2.0 от Apacer
Компания Apacer первой в мире выпустила промышленные устройства, соответствующие требованиям спецификации CFast 2.0. Это карты памяти, работающие по высокоскоростному интерфейсу обмена данными стандарта SATA 3.0 (6 Гбит/с). Для NAND Flash DDR 2.0 применение спецификации CFast 2.0 позволит увеличить скорость последовательного доступа до 310/240 Мбайт/с.
У заказчиков есть выбор между компонентами, выполненными по технологии SLC и обладающими более длительным сроком службы, и компонентами, которые производятся по технологии MLC и отличаются меньшей стоимостью.
Компоненты, выпущенные по этим технологиям, устойчивы к перепадам температуры, вибрации и ударам. Карты памяти CFast 2.0 оснащены разъемом (7+17) pin, а их размеры составляют 42,8x36,4x3,6 мм (ШхГхВ). Основные особенности карты памяти серии CFast 2 от Apacer:
• Скорость непрерывного чтения/записи: до 310/240 Мбайт/с.
• Технологии SLC и MLC.
• Емкость: 4-32 Гбайт (SLC) и 16-128 Гбайт (MLC).
• DEVSLP, S. M.A. R.T.
www.icquest.ru