Сравните КИХ-Реализации Фильтра Используя 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 (DSP System Toolbox) приложение, чтобы сгенерировать коэффициенты для 8-го КИХ-фильтра порядка. КИХ-фильтр имеет частоту среза 0,25 (нормированный) и неравномерность в полосе пропускания и затухание полосы задерживания 1 дБ и 60 дБ, соответственно. Наборы модели эти коэффициенты с помощью модели инициализируют коллбэк.

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

sim('soc_analyze_FIR_tb');

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

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

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

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

socModelAnalyzer('soc_analyze_FIR_tb.slx','Folder','report_sym','IncludeBlockPath',...
    'soc_analyze_FIR_tb/Symmetric_FIR');
Generating operators analysis report for /tmp/BR2021bd_1724986_80669/publish_examples0/tp57d69abc/ex82446029/soc_analyze_FIR_tb.slx ...
Saving report files in /tmp/BR2021bd_1724986_80669/publish_examples0/tp57d69abc/ex82446029/report_sym.
Operator estimate: <a href="matlab: socAlgorithmAnalyzerReport('/tmp/BR2021bd_1724986_80669/publish_examples0/tp57d69abc/ex82446029/report_sym/soc_analyze_FIR_tb.mat')">Open report viewer</a> 
Done.

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

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

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

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

socModelAnalyzer('soc_analyze_FIR_tb.slx','Folder','report_trans','IncludeBlockPath',...
    'soc_analyze_FIR_tb/Transposed_FIR');
Generating operators analysis report for /tmp/BR2021bd_1724986_80669/publish_examples0/tp57d69abc/ex82446029/soc_analyze_FIR_tb.slx ...
Saving report files in /tmp/BR2021bd_1724986_80669/publish_examples0/tp57d69abc/ex82446029/report_trans.
Operator estimate: <a href="matlab: socAlgorithmAnalyzerReport('/tmp/BR2021bd_1724986_80669/publish_examples0/tp57d69abc/ex82446029/report_trans/soc_analyze_FIR_tb.mat')">Open report viewer</a> 
Done.

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

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

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

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

Заключение

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

Можно использовать socModelAnalyzer функция для анализа количества операторов в алгоритме Simulink.

Смотрите также

|