Сравните КИХ-Реализации Фильтра Используя socModelAnalyzer

В этом примере показано, как анализировать и сравнить различные реализации алгоритма Simulink на основе количества арифметических операций. Используйте socModelAnalyzer SoC Blockset функция, чтобы сгенерировать отчеты, показывающие количество, добавляет и умножает операторы для различных реализаций КИХ-Фильтра с помощью статического и выполнения во время выполнения.

Спроектируйте задачу и требования

Задача проекта состоит в том, чтобы оценить две реализации КИХ-фильтра и сравнить затраты на внедрение. Этот пример использует количество операторов как способ измерить стоимость внедрения.

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

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

Структура модели

В soc_analyze_FIR_tb модели низкая передача цифровой КИХ-Фильтр реализуется двумя способами. Подсистема Symmetric_FIR использует симметрию в коэффициентах, чтобы оптимизировать ресурсы, в то время как подсистема Transposed_FIR использует структуру фильтра, приспособленную к более высокой скорости операции. Входной сигнал щебета используется в качестве входного стимула, и блок FIR_ref (Discrete FIR Filter) используется в качестве ссылки для проверки числовой правильности реализаций.

Откройте soc_analyze_FIR_tb модель в Simulink и исследует структуру модели.

open_system('soc_analyze_FIR_tb');

Проект низкого КИХ-фильтра передачи выполняется с помощью filterDesigner приложение, чтобы сгенерировать коэффициенты для 8-го КИХ-фильтра порядка. КИХ-фильтр имеет частоту среза в 0,25 (нормированный) и неравномерность в полосе пропускания и затухание полосы задерживания 1 дБ и 60 дБ соответственно. Эти коэффициенты установлены в модели с помощью модели, инициализируют коллбэк.

Симулируйте модель, чтобы подтвердить функциональность обеих реализаций против ссылочного блока FIR. Заметьте, что ответы реализаций фильтра соответствуют со ссылкой.

sim('soc_analyze_FIR_tb');

Сравните реализации Используя алгоритм Анализатор

Используйте socModelAnalyzer, чтобы сгенерировать отчеты для количества арифметических операторов в каждой реализации и сравнить реализации. Отчеты сгенерированы с помощью выполнения во время выполнения модели.

Симметричный КИХ-фильтр:

Чтобы оценить количество операторов для Симметричной КИХ-реализации фильтра, используйте socModelAnalyzer функция, задающая ее подсистему, называет для IncludeBlockPath свойство. Установите выходную папку задавать, где отчеты будут сгенерированы. Выполните следующую команду:

socModelAnalyzer('soc_analyze_FIR_tb.slx','Folder','report_sym','IncludeBlockPath','soc_analyze_FIR_tb/Symmetric_FIR');
Generating operators analysis report for \\fs-58-ah\vmgr$\home08\jchevali\Documents\MATLAB\Examples\soc-ex82446029\soc_analyze_FIR_tb.slx ...
Saving report files in \\fs-58-ah\vmgr$\home08\jchevali\Documents\MATLAB\Examples\soc-ex82446029\report_sym.
Operator estimate: <a href="matlab: socAlgorithmAnalyzerReport('\\fs-58-ah\vmgr$\home08\jchevali\Documents\MATLAB\Examples\soc-ex82446029\report_sym\soc_analyze_FIR_tb.mat')">Open report viewer</a> 
Done.

Откройте отчет путем нажимания на Открытую ссылку средства просмотра отчета на консоли MATLAB. В качестве альтернативы можно использовать socAlgorithmAnalyzerReport функция. Средство просмотра обеспечивает два представления. Первое представление является представлением Operator, которое представляет данные, таким образом, что каждая строка соответствует оператору. Второе представление является представлением Model, где каждая строка соответствует пути к Подсистеме Simulink. Можно переключиться между двумя представлениями с помощью кнопок на панели инструментов на средстве просмотра. Кроме того, отчеты сохранены в report_sym папке как файл MAT (soc_analyze_FIR_tb.mat) и файл Excel® (soc_analyze_FIR_tb.xlsx).

По умолчанию средство просмотра открывает представление Operator. Это открывает совокупное представление каждого оператора и типа данных. Например, в Симметричном КИХ-фильтре существует в общей сложности 8 сложений ADD(+) типа double и 5 умножения MUL(*) выполняемый 10001 раз типа double каждый. (Длительность симуляции модели является 10-ми, и базовая ставка составляет 10 мс: это производит 10 000 циклов симуляции плюс 1 для инициализации.), Чтобы получить подробный отчет для каждого оператора, расширьте его до другого уровня. Средство просмотра покажет количество оператора, как используется в различных блоках. Проследите оператор путем нажатия на одну из ссылок в последнем столбце отчета подсветить местоположение оператора в soc_analyze_FIR_tb модели.

Транспонированный КИХ-фильтр:

Чтобы оценить количество операторов для Транспонированной КИХ-реализации фильтра, используйте socModelAnalyzer функция, задающая 'soc_analyze_FIR_tb/Transposed_FIR' для свойства 'IncludeBlockPath'. Установите выходную папку на report_trans, где отчеты будут сгенерированы. Выполните следующую команду:

socModelAnalyzer('soc_analyze_FIR_tb.slx','Folder','report_trans','IncludeBlockPath','soc_analyze_FIR_tb/Transposed_FIR');
Generating operators analysis report for \\fs-58-ah\vmgr$\home08\jchevali\Documents\MATLAB\Examples\soc-ex82446029\soc_analyze_FIR_tb.slx ...
Saving report files in \\fs-58-ah\vmgr$\home08\jchevali\Documents\MATLAB\Examples\soc-ex82446029\report_trans.
Operator estimate: <a href="matlab: socAlgorithmAnalyzerReport('\\fs-58-ah\vmgr$\home08\jchevali\Documents\MATLAB\Examples\soc-ex82446029\report_trans\soc_analyze_FIR_tb.mat')">Open report viewer</a> 
Done.

Откройте отчет для Транспонированного КИХ-фильтра путем нажимания на Открытую ссылку средства просмотра отчета на консоли MATLAB.

Поскольку Транспонированный КИХ-фильтр, который отчет показывает предполагаемому количеству 8 сложений, типа double и 9 умножения, типа double (каждый из них выполнился 10001 раз).

Сравнение симметричных и транспонированных реализаций:

Согласно вышеупомянутым отчетам, полученным socModelAnalyzer, Симметричный КИХ-фильтр использует меньше операторов умножения (9), чем Транспонированный КИХ-фильтр (5). Они оба используют то же количество, добавляют операторы (8).

Заключение

Вы использовали socModelAnalyzer функционируйте, чтобы оценить и анализировать количество арифметических операторов в двух КИХ-реализациях фильтра. Вы сгенерировали отчеты оператора и для Симметричных и для Транспонированных КИХ-фильтров. Вы выдержали сравнение, количество умножают и добавляют операторы для двух реализаций.

Можно использовать socModelAnalyzer в анализе количества операторов в собственном алгоритме Simulink.

Для просмотра документации необходимо авторизоваться на сайте