Текущий архив: 2007.06.24;
Скачать: CL | DM;
Вниз
Не поделитесь ли функцией «Обратное преобразование фурье»? Найти похожие ветки
← →
Kolan © (2007-05-28 09:50) [0]А то то что находится в интернене больше похоже на набор случайных символов,
например:
rB := (rS2 * prFI^[iK1] — rC2 * prGI^[iK1]);
rA := (rC2 * prFI^[iK1] + rS2 * prGI^[iK1]);
rF1 := prFI^[0] — rA;
rF0 := prFI^[0] + rA;
rG1 := prGI^[0] — rB;
rG0 := prGI^[0] + rB;
rB := (rS2 * prFI^[iK3] — rC2 * prGI^[iK3]);
rA := (rC2 * prFI^[iK3] + rS2 * prGI^[iK3]);
rF3 := prFI^[iK2] — rA;
rF2 := prFI^[iK2] + rA;
rG3 := prGI^[iK2] — rB;
rG2 := prGI^[iK2] + rB;
rB := (rS1 * rF2 — rC1 * rG3);
rA := (rC1 * rF2 + rS1 * rG3);
prFI^[iK2] := rF0 — rA;
prFI^[0] := rF0 + rA;
prGI^[iK3] := rG1 — rB;
prGI^[iK1] := rG1 + rB;
rB := (rC1 * rG2 — rS1 * rF3);
rA := (rS1 * rG2 + rC1 * rF3);
prGI^[iK2] := rG0 — rA;
prGI^[0] := rG0 + rA;
prFI^[iK3] := rF1 — rB;
prFI^[iK1] := rF1 + rB;
prGI := @prGI[iK4];
prFI := @prFI[iK4];
← →
Сергей М. © (2007-05-28 09:55) [1]
> то что находится в интернене больше похоже на набор случайных
> символов
Вот здесь
http://alglib.sources.ru/fft/fft.php
тоже "набор случайных символов" ?
← →
Jeer © (2007-05-28 09:56) [2]http://www.basegroup.ru/filtration/algorithms.htm
← →
Kolan © (2007-05-28 10:06) [3]>
> Вот здесь
О благодарю теория+пример — то что надо, сейчас гляну ):
← →
Kolan © (2007-05-28 10:06) [4]> [2] Jeer © (28.05.07 09:56)
> http://www.basegroup.ru/filtration/algorithms.htm
Благодарю, наверно этих 2х ссылок вполне хватит…
← →
Kolan © (2007-05-28 10:07) [5]> ):
=
:)
← →
Kolan © (2007-05-28 10:21) [6]> тоже «набор случайных символов» ?
Тоже похоже, но коменты помогли — раззобрался, благодарю.
← →
Kolan © (2007-05-29 15:54) [7]
Сергей М. © (28.05.07 09:55)
В том коде что вы дали могут быть ошибки?tempr := a[j-1];
Range check error
← →
Kolan © (2007-05-29 15:56) [8]Вызываю так:
1.FastFourierTransform(Source.YValues, Source.TheLength,
True)
2.fft.FastFourierTransform(TReal1DArray(Result), Count, IsInverse);
Count = 64if j>i then
begin
tempr := a[j-1]; // Тут j-1 = 64 отсюда и ошибка.
tempi := a[j];
a[j-1] := a[i-1];
a[j] := a[i];
a[i-1] := tempr;
a[i] := tempi;
end;
ЗЫ править сам нехочу, боюсь запутаться, мож я просто не так воспользовался ф-цией?
← →
MBo © (2007-05-29 16:09) [9]длина входного массива у тебя равна удвоенному количеству отсчетов?
← →
Kolan © (2007-05-29 16:16) [10]> длина входного массива у тебя равна удвоенному количеству
> отсчетов
Нет. А надо удвоеному?
Source — это массив из 64 точек,Source.TheLength
— его дилнна(тоже 64).
А надо как? Проверьте правильно ли я понял.
У меня есть 64 точки в массиве. Я просто увеличиваю длинну этого массива до 128 и передаю в функцию? А в качестве кол-ва указываю 64. Так?
← →
MBo © (2007-05-29 16:19) [11]В начале файла fft.pas описано ведь, как именно укладываются данные
← →
Kolan © (2007-05-29 16:23) [12]> В начале файла fft.pas описано ведь
Ай блин забыл, извените :(. Проблема ясна…
Страницы: 1 вся ветка
Текущий архив: 2007.06.24;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.043 c