Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как задать параметры синусоиды 
:(
    Опции темы
Ciber SLasH
Дата 3.5.2005, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Народ, помогите решить такую задачу...

1) нужно задать синусоиду на интервале t=1 сек. с периодом T=10^-3 сек. Количество периодов M=5-10 (5 или 10).
2) эту синусоиду подвергнуть преобразованию Фурье. По след. формуле:
F(f*)=корень( сумма[n=0..1000](sin(2PiFnT)*sin(2Pif*nT))^2 +
сумма[n=0..1000](sin(2PiFnT)*cos(2Pif*nT))^2 )
n = 1..1000; n[i] = sin(2PiFnT), где F - частота

----------------------

Как-то на 2-м курсе я делал лабу с синусом, но там не надо было ограничивать интервал времени и не было оговорено значение периода. Вот код той лабы:
Код

Program sinus;
Uses Crt,Graph;
const
  N = 640;
{$I InitGr.inc}  { здесь процедура инициализации граф. реж. }
var
  m: array [0..N+1] of PointType;
  i: Word;
  x0, y0, r, uf, t: real;
  dl, Amp, Fi: Integer;
begin
  InitGr;  { инициализируем графику }
  SetColor(13);
  dl := 5;      { кол-во периодов }
  Amp := 10;    { амплитуда }
  Fi := 0;      { угол поворота }
  t := 1.0001;  { сглаживающая константа }
  for i := 0 to N do
    begin
      x0 := t * i;
      y0 := GetMaxY * sin(dl*2 * pi * i / N) / Amp;
      r := sqrt(sqr(x0) + sqr(y0));
      if x0 = 0 then
        uf := 0
      else
        uf := arctan(y0 / x0);
      uf := uf + Fi * Pi / 180;
      with m[i] do
        begin
          x := Trunc(r * cos(uf));
          y := Trunc(r * sin(uf)) + GetMaxY div 2
        end
    end;
  DrawPoly(N,m);
  ReadKey;
  CloseGraph
end.

Вопрос в том как переделать её под 1-й вопрос? В этой лабе я вообще не помню каким макаром я получил такие формулы для вычисления координат синусоды. Помню только, что использовал след. формулы:
1) r = корень( x^2 + y^2 )
2) fi = arccos(x/r)
3) fi = arcsin(y/r)
4) x = r*cos(fi)
5) y = r*sin(fi)

По второму вопросу я нашёл исходник БПФ (http://alglib.sources.ru/fft/realfft.php), но там не так как в задании.
Ну да ладно, с этим вопросом с преподом потолкую. Мне бы с первым разобраться...

ЗЫ: блин, в глове уже ничего не осталось о мат.анализе smile Всё напрочь забыл...
PM   Вверх
Fedor
Дата 3.5.2005, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



Ciber SLasH где конкретный вопрос! Что не получается? Ты хочешь чтоб тебе написали программу? Тогда читай правила форума.


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
Ciber SLasH
Дата 3.5.2005, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Вопрос: не знаю как задать синусоиду на интервале t=1 сек. с периодом T=10^-3 сек.
PM   Вверх
Romtek
Дата 3.5.2005, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 7.12.2004
Где: Холон

Репутация: нет
Всего: 4



Цитата(Ciber @ 3.5.2005, 20:59)
не знаю как задать синусоиду на интервале t=1 сек. с периодом T=10^-3 сек.
Нужно отобразить в интервале t -> [0 , 1] с периодом Т ?
Путём нехитрого вычисления получаем, что в заданном промежутке аж 1000 периодов. По заданию, нужно только М. Тогда будет M*T сек. - общая длина синусоиды (но не 1 сек.).
Делишь длину экрана на длину синусоиды и получаешь некоторый коэффициент k. Теперь можно задать шаг step=T/20;
При построении графика выбираешь значения x, начиная с 0.
y := sin (x);
x := x + step;

Свою предыдущую лабу оставь в покое и начни с начала. Там у тебя по непонятной причине используюутся полярные координаты, а они тебе сейчас не нужны.
Дополнительный материал: Как нарисовать график функции

Это сообщение отредактировал(а) Romtek - 3.5.2005, 23:58
--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр.
PM WWW   Вверх
Ciber SLasH
Дата 4.5.2005, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



2Romtek:
Спасибо !!
Будем разбираться...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0831 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.