Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2008, 21:59   #11
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Тоесть есть массив в котором хранится данные о сигнале (амплитуда, фаза, частота, длинна сигнала) и надо сложить эти сигналы. Получив результирующий сигнал надо его просто отрисовать?

А Вы имеете представление как в физике происходит сложение сигналов?
Я представляю и очевидно что тут простые вычисления не подходят.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 26.04.2008, 22:02   #12
BigBB
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 20
По умолчанию

По длине все сигналы одинаковые, а складываются они как-раз простыми операциями, к сожалению Вы заблуждаетесь.
BigBB вне форума Ответить с цитированием
Старый 26.04.2008, 22:13   #13
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Я согласен что это легко, но явно не простым сложением...
http://www.ssga.ru/AllMetodMaterial/...-2/14-3.html#1
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 26.04.2008, 22:58   #14
BigBB
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 20
По умолчанию

Ладно попробую разобраться.
BigBB вне форума Ответить с цитированием
Старый 27.04.2008, 11:29   #15
BigBB
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 20
По умолчанию

Все-таки мне кажется, что мгновенные значения напряжения сигнала можно складывать арифметически т.е. U(t)=U1(t)+U2(t). Разве не так?
BigBB вне форума Ответить с цитированием
Старый 27.04.2008, 13:00   #16
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

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

Сообственно всё идёт по формулам. Просто в жизни встречаются частные случае, особенно с напряжениями.

Вот еслиб частота сигналов была одинаковой, а менялась только амплитуда и фаза... То написать в программе сложение сигналов былобы довольно просто.
Может можно немного изменить условие?
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 27.04.2008, 18:15   #17
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Извиняюсь за путаницу. Правильные ответ был данн в посте №3.
Спасибо alexBlack.

АДД: улучшил программу. Теперь значения амплитуды, сдвига фазы, частоты сигнала заполняются рандомно. Просиходит сложение из массива (это 10 разных сигналов) и вывод на экран. При нажатии кнопки происходит генерация нового графика.
Вложения
Тип файла: rar Project1.rar (160.4 Кб, 59 просмотров)
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...

Последний раз редактировалось Карась; 27.04.2008 в 21:28.
Карась вне форума Ответить с цитированием
Старый 28.04.2008, 05:21   #18
BigBB
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 20
По умолчанию

И как же происходит сложение хотелось бы увидеть исходники программы
BigBB вне форума Ответить с цитированием
Старый 28.04.2008, 10:20   #19
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Я себе это так представляю.

Код:
Var
  Form1: TForm1;
  i, Period : Integer;
  y, x : Real;
  A, W, F : array [1..10] of Integer;

  Procedure OSI;

implementation

{$R *.dfm}

Procedure OSI; // Отрисовка Оси
Begin
For i := 1 To 630 Do
  Begin

  Form1.Pole.Canvas.Pen.Style := psDot;

    If i < 20 Then
      Begin
        Form1.Pole.Canvas.MoveTo(X0_OSI, Y0_OSI + 200 - i * 20);
        Form1.Pole.Canvas.LineTo(630, Y0_OSI + 200 - i * 20 );
      End;

    If i < 400 Then
      Form1.Pole.Canvas.Pixels[X0_OSI, Y0_OSI + 200 - i] := CLBlack;

      For Period := 1 To 6 Do
        Begin
          Form1.Pole.Canvas.MoveTo(X0_OSI + Period * 90, Y0_OSI - 200);
          Form1.Pole.Canvas.LineTo(X0_OSI + Period * 90, Y0_OSI + 200);
          Form1.Pole.Canvas.TextOut(X0_OSI + Period * 90 - 5, Y0_OSI + 210, IntToStr(Period * 90));
        End;
  Form1.Pole.Canvas.Pixels[X0_OSI - 5 + i, Y0_OSI] := CLBlack;
  End;
Form1.Pole.Canvas.TextOut(650, Y0_OSI - 6, 'X');

// Заполнение массивов
Randomize;
For i := 1 To 10 Do
  Begin
    A[i] := Random(100) - 50;
    W[i] := Random(20)  - 10;
    F[i] := Random(10) - 5;
  End;
End;

procedure TForm1.Button1Click(Sender: TObject); // Рисуем график
Begin
Form1.Pole.Canvas.FillRect(Form1.Pole.ClientRect);
y := 0; x := 0; Period := 0;
Osi;
For i := 1 to 6100 do
  Begin
//Начинаем складывать сигалы (определяем y)
    For Period := 1 To 10 Do
      y := y + A[Period] * cos((W[Period] * x + F[Period]) * PI/180);
// Закончили складывать, начинаем отрисовывать точку.
  x := x + 0.1;
  Form1.Pole.Canvas.Pixels[Round(X0_OSI + x), Round(Y0_OSI + y)] := CLGreen;
  y := 0; Period := 0;
  End;
End;

end.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 28.04.2008, 14:44   #20
BigBB
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 20
По умолчанию

А говорили что нельзя просто складывать, я так понял что

y := y + A[Period] * cos((W[Period] * x + F[Period]) * PI/180);

это и есть простое арифметическое сложение, не так ли?
BigBB вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
И опять мэйлы.. Опять... Pusher PHP 6 28.06.2008 03:08
Chart оси lenivec Общие вопросы Delphi 1 09.02.2008 11:37
Компонент Chart. Небесный Общие вопросы Delphi 17 09.02.2008 08:48
Рисование в Chart SunKnight Общие вопросы Delphi 3 07.02.2008 09:16
Точки в Chart yulia Компоненты Delphi 3 26.09.2007 22:22