Написал
на “приплюснутом” =) (C++) реализацию класса КИХ фильтра, который
одновременно выполняет децимацию. Хочу отладить в композере. Как
заливать данные в композер для отладки разобрался: ссылка 1 - читать первой , ссылка 2 , ссылка 3
Но как отображать выходные данные, чтобы не так много оперативной памяти расходовалось на отладку в TMS320F28335 ??? Вижу два варианта: 1) так же, как на приведенных ссылках 1-3, т.е. выделять массив в программе, вмещающий выходной сигнал (расточительно по оперативке, но, думаю, будет довольно быстро по времени отладки, т.к. обновлять график придется с низкой частотой (пока наполнится буфер сколько времени пройдет!.. ) )
2) Попытаться вывести только одну переменную в график. По идее, раз переменная будет меняться, то каждый дискретный момент времени график утилиты Graph tool мог бы обновляться этим новым значением переменной (но, из-за частого обновления, чувствую, отладка будет очень сильно тормозиться).
Пробовать буду вариант № 2, т.к. в процессоре TMS320F28335 и так мало оперативки =(.
Сама программа выглядит следующим образом:
В строке 48 мы вызываем пустую функцию с той целью, чтобы привязать к ней точку останова (третья красная точка слева от номеров строк). В данную ветвь if мы попадаем через M отсчетов входного сигнала. М - коэффициент децимации/прореживания входного сигнала. Он равен в этом примере 8 ( третий параметр в методе dsp::CFirFilter firFilter( FIR_coeff, BL, 8) ). Т.е в положительной ветви if у нас как раз в переменной g_out хранится выход фильтра-дециматора. Вот эти значения я и хотел построить/отобразить, дабы визуально определить работает ли алгоритм.
Итак, 1) на 48 строке двойным щелчком ЛКМ устанавливаем точку останова.
2) Создаем новое окно графика ( Graph Tool ): View → Graph → Time/Frequency
3) Заполняем, ориентируясь на ниже приведенный рисунок:
4) Настраиваем точку останова, чтобы по ее достижению обновлялся график “filter out”
5) Debug → Run
Profit!!!!!
Комментариев нет:
Отправить комментарий