В этом примере показано, как использовать приложение Генератора Испытательного стенда Потоковой передачи, чтобы сгенерировать испытательные стенды алгоритма ЦОС. Алгоритм ЦОС, сгенерированный в этом примере, похож на алгоритм в Системах координат Фильтра Шумного Синусоидального сигнала в примере MATLAB. Тот пример фильтрует шумный синусоидальный сигнал с помощью КИХ фильтр lowpass и отображает спектр мощности с помощью спектра анализатор.
Приложение Генератора Испытательного стенда Потоковой передачи помогает вам разработать и протестировать алгоритмы обработки сигналов потоковой передачи, позволяя вам быстро сгенерировать испытательные стенды. Чтобы запустить Генератор Испытательного стенда, введите testbenchGeneratorExampleApp
в командной строке MATLAB. Команда запускает интерфейс, через который вы можете:
Выберите набор источников и приемников.
Введите имя функции своего пользовательского Пользовательского Алгоритма.
Настройте свойства каждого из добавленных источников и приемников.
Каждый источник обработан как отдельный вход к вашему алгоритму, но можно сопоставить больше чем один приемник с тем же выходом из алгоритма.
testbenchGeneratorExampleApp
По умолчанию генератор испытательного стенда выбирает двухканальный источник синусоиды и источник белого Гауссова шума. Два канала источника синусоиды имеют частоты 1 кГц и 10 кГц. Частота дискретизации составляет 44,1 кГц. Вход белого Гауссова шума имеет среднее значение 0 и стандартное отклонение 0.1. Данные обрабатываются в системах координат 1 024 выборок. Чтобы добавить больше источников, используйте список под, Добавляет новый источник к вышеупомянутому списку входных параметров, чтобы выбрать один из поддерживаемых источников. В качестве альтернативы можно добавить пользовательский источник Системного объекта путем выбора Custom System object из списка и нажатия на Add. Добавленный источник появляется в списке входных параметров.
После добавления источника можно выбрать его и нажать Configure, чтобы изменить свойства выбранного источника.
Пользовательский алгоритм по умолчанию dspStreamingPassthrough
родовая функция, которая только проходит через входные параметры к выходным параметрам. Пользовательским алгоритмом, используемым в этом примере, является более значимый функциональный hTestbenchLowpass
. Можно просмотреть код для этой функции путем ввода
edit hTestbenchLowpass
в командной строке MATLAB. hTestbenchLowpass
принимает два входных параметров, lowpass фильтрует сумму тех двух входных параметров и возвращает отфильтрованный сигнал. Это использует ограниченное equiripple КИХ-создание фильтра с частотой среза 5 кГц. Пульсации в полосе пропускания и полосе задерживания равны 0,05 и 0.001. Фильтрация выполняется с помощью dsp.FIRFilter
, который оптимизирован для потоковой передачи.
Введите hTestbenchLowpass
в текстовом поле User Algorithm, заменяющем dspStreamingPassthrough
по умолчанию. В качестве альтернативы можно поднять новый сеанс генератора испытательного стенда путем ввода
testbenchGeneratorExampleApp('hTestbenchLowpass')
в командной строке MATLAB.
Спектр мощности выхода отображен на спектре анализатор в dBm. Можно добавить больше приемников, чтобы визуализировать или постобработать выходные параметры. Подобно входным параметрам можно использовать список под, Добавляет новый приемник к вышеупомянутому списку выходных параметров, чтобы добавить новый приемник и нажать Configure, чтобы изменить свойства выбранного приемника.
Можно сопоставить один выход из пользовательского алгоритма с одним или несколькими приемниками. Например, можно визуализировать тот же выходной сигнал и с осциллографом времени и со спектром анализатор. Для этого добавьте необходимые приемники и убедитесь, что вы сопоставляете все приемники к желаемому выходу из пользовательского алгоритма путем изменения значения при Партнере выбранный приемник со списком.
После того, как вы добавите и сконфигурируете источники и приемники и введете имя функции в текстовом поле User Algorithm, генератор испытательного стенда готов сгенерировать испытательный стенд код MATLAB. Чтобы сгенерировать код, нажмите на кнопку Generate MATLAB Code. Новый документ без названия открывается в редакторе MATLAB, содержащем сгенерированный код испытательного стенда.
Можно отредактировать сгенерированный код, чтобы настроить его прежде, чем выполнить его. Для примера по умолчанию сгенерированный код включен ниже. Выполняя этот код испытательного стенда, вы видите в спектре анализатор, что частоты выше 4 кГц в исходном сигнале ослабляются. Получившийся сигнал обеспечивает пик на уровне 1 кГц, потому что падения на 1 кГц полосы пропускания lowpass фильтруют.
Потоковая передача скрипта испытательного стенда, Сгенерированного путем Потоковой передачи Генератора Испытательного стенда
% Initialization numIterations = 10000; % Construct sources (for all inputs) src1 = dsp.SineWave('Frequency',[1000 10000], ... 'SampleRate',44100, ... 'SamplesPerFrame',1024); % Construct sinks (for all outputs) sink1 = dsp.SpectrumAnalyzer('SampleRate',44100, ... 'PlotAsTwoSidedSpectrum',false, ... 'ShowLegend',true); % Stream processing loop clear hTestbenchLowpass; for i = 1:numIterations % Sources in1 = src1(); in2 = 0.1*randn(1024,2); % User Algorithm out1 = hTestbenchLowpass(in1,in2); % Sinks sink1(out1); end % Clean up release(src1); release(sink1);
Генератор испытательного стенда предлагает дополнительные индивидуальные настройки верхнего уровня, которые можно сконфигурировать использование диалогового окна Testbench Generator Settings. Чтобы открыть это диалоговое окно, выберите Settings> Testbench Generator Settings....
Можно также настроить некоторые параметры, используемые в алгоритме во время выполнения испытательного стенда. Чтобы использовать Параметр, Настраивающий пользовательский интерфейс, проверяйте Разрешать настраивающий флажок параметра в соответствии с Пользовательским Алгоритмом и нажмите, редактируют таблицу параметров, чтобы добавить детали ваших настраиваемых параметров, прежде чем вы сгенерируете код испытательного стенда. Кроме того, убедитесь, что ваш пользовательский алгоритм обрабатывает параметр, настраивающийся во время выполнения. См. код MATLAB для hTestbenchVariableBandwithFIR
для примера того, как заставить ваш пользовательский алгоритм работать с настройкой параметра.