Задать вопрос
@ta4

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

Дали задание: генерировать сигнал: простой прямоугольный радиоимпульс. Нужно сделать на C++
Нашел выражение, которым описывается этот сигнал:
1.png
где
2.png
Не могу понять, что за i в формуле. E - амплитуда. Еще не могу понять, чему должно быть вначале равно t и какой прирост. Если кто-нибудь знает, поясните.
  • Вопрос задан
  • 4162 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Lerg
@Lerg
Defold, Corona, Lua, GameDev
В формуле используется формула Эйлера для записи ортогональных синуса и косинуса в комплексном виде.
Вам нужна лишь действительная часть.

u(t) = A * U(t) * sin(w * t)

По факту вы просто рисуете синусоиду продолжительностью T.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
i -- это мнимая единица. t, очевидно, имеет смысл рассматривать на интервале от -T0/2 до T0/2.
Ответ написан
Комментировать
@ta4 Автор вопроса
вот так я перенес формулу на c++
if(qAbs(time)>T/2)
    {
        u = 0;
    }
    else
    {
        u = 1*qExp(2*3.1415/T*time);
    }
    time+=0.1;
    if(time>T/2) time = -T/2; //тут скорее всего неверно сделано

Работает в отдельном потоке.
В итоге рисует вот так:
31536_2.png
а необходимо так:
62326_1.png
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы