@oc1tane

Как построить графики импульсной модуляции имея массив отсчетов?

Господа нуждаюсь в помощи, у меня имеется вот такой массив - массив отсчетов импульсной модуляции. Каким ПО или каким образом можно реализовать программу, чтобы построить из этих значений - график, как показано на картинке?
3600, 1500, 600, 1150, 550, 400, 550, 350, 550, 400, 500, 1250, 550, 350, 550, 400, 550, 400, 550, 1200, 550, 400, 500, 400, 600, 350, 550, 1200, 550, 400, 550, 350, 600, 350, 550, 1150, 600, 350, 600, 350, 550, 400, 550, 1200, 500, 450, 550, 350, 600, 350, 550, 1200, 550, 400, 550, 350, 600, 350, 550, 1200, 600, 350, 550, 400, 550, 350, 600, 1200, 550, 350, 600, 300, 600, 350, 550, 1200, 550, 400, 500, 450, 550, 350, 600, 350, 550, 400, 500, 1250, 550, 350, 550, 400, 550, 1150, 600, 350, 600, 350, 550, 1200, 600, 1150, 550, 400, 550, 400, 550, 350, 550, 350, 600, 350, 600, 350, 500, 450, 550, 1200, 500, 1250, 500, 400, 600, 300, 600, 350, 550, 350, 600, 350, 550, 400, 550, 1150, 600, 350, 600, 1150, 600, 350, 550, 400, 550, 350, 600, 350, 500, 450, 500, 400, 600, 350, 550, 400, 500, 350, 600, 350, 600, 300, 550, 400, 550, 400, 550, 400, 550, 350, 550, 350, 600, 350, 600, 300, 550, 400, 550, 400, 550, 400, 550, 350, 550, 350, 600, 350, 600, 350, 550, 400, 550, 350, 600, 350, 550, 400, 500, 450, 550, 350, 600, 350, 550, 350, 550

ilkhb-2G33w.jpg
Этот график я строил ручками в AnalysIR Demo. Очень сложный вариант нужны альтернативы
  • Вопрос задан
  • 138 просмотров
Решения вопроса 1
antonsosnitzkij
@antonsosnitzkij
студент, житель санкт-петербурга
Зависит от того как вы получаете данный массив
Если руками перебиваете - то особо разницы нет нигде
Реализация в Matlab, где mass_i - данные, которые вы предоставили:
mass_i = [3600, 1500, 600, 1150, 550, 400, 550, 350, 550, 400, 500, 1250, 550, 350, 550, 400, 550, 400, 550, 1200, 550, 400, 500, 400, 600, 350, 550, 1200, 550, 400, 550, 350, 600, 350, 550, 1150, 600, 350, 600, 350, 550, 400, 550, 1200, 500, 450, 550, 350, 600, 350, 550, 1200, 550, 400, 550, 350, 600, 350, 550, 1200, 600, 350, 550, 400, 550, 350, 600, 1200, 550, 350, 600, 300, 600, 350, 550, 1200, 550, 400, 500, 450, 550, 350, 600, 350, 550, 400, 500, 1250, 550, 350, 550, 400, 550, 1150, 600, 350, 600, 350, 550, 1200, 600, 1150, 550, 400, 550, 400, 550, 350, 550, 350, 600, 350, 600, 350, 500, 450, 550, 1200, 500, 1250, 500, 400, 600, 300, 600, 350, 550, 350, 600, 350, 550, 400, 550, 1150, 600, 350, 600, 1150, 600, 350, 550, 400, 550, 350, 600, 350, 500, 450, 500, 400, 600, 350, 550, 400, 500, 350, 600, 350, 600, 300, 550, 400, 550, 400, 550, 400, 550, 350, 550, 350, 600, 350, 600, 300, 550, 400, 550, 400, 550, 400, 550, 350, 550, 350, 600, 350, 600, 350, 550, 400, 550, 350, 600, 350, 550, 400, 500, 450, 550, 350, 600, 350, 550, 350, 550];
a = [];
b = 0;
c = 1;
for i = 1:length(mass_i)
    b = not(b);
    for j = 1:mass_i(i)
        a(c) = b;
        c = c + 1;
    end
end
plot(a)
ylim([-0.5,1.5])

результат на графике:
3f88eed3af7d47dcb95c6eca392899b1.jpg
Полагаю, аналогичный результат можно получить и в Python
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
1.Для Си можно MathGL попробовать или в том же Qt руками нарисовать (или найти подходящую библиотеку для Qt). Если у вас приложение на С/С++ с графическим интерфейсом, то подобный график и самому воспроизвести не трудно.
2.Написать модуль для матлаб, на сколько помню там это не сильно сложно делается, правда массивы данных не передавал.
3.Я для этих целей сделал обертку над библиотекой, реализующую модуль для Python и графики рисую теперь в питоне. В питоне можно сразу весь массив передавать, без конвертации, и средствами NumPy и Matplotlib отображать в графике.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы