nesco, вот схемка, подключен ArrayRW, и то иногда выскакивает ошибка, а если подключить ArrayEnum, то мама не горюй! fft_test.rar
------------ Дoбавленo в 10.52:
Кстати, посмотрите, как при увеличении выборки (в схеме она случайна от 256 до 4092) вытаскивается сигнал из под шума (амплитуда сигналов в схеме в 10 раз меньше амплитуды шума), правда, согласно правилу рычага, выигрываем в чуствительности, но проигрываем в полосе модуляции, т. е. уменьшается максимальное количество передаваемой информации
Этот топик читают: Гость
Ответов: 8930
Рейтинг: 823
|
|||
карма: 19 |
| ||
файлы: 1 | fft_test.rar [3.4KB] [273] |
Разработчик
Ответов: 26164
Рейтинг: 2127
|
|||
Леонид, сделай пример, который бы отображал ход ошибки. Я нифига не въеду, что у тебя не работает как надо и в каком режиме.
|
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco, Замени два розовых компонента на ArrayEnum и сразу въедешь.
zaml.png |
|||
карма: 25 |
| ||
файлы: 1 | zaml.png [23.8KB] [610] |
Ответов: 8930
Рейтинг: 823
|
|||
nesco, вот, в схеме считается интервал 2^14=16384, выходная длина массива сумм должна быть 8192, что и присутсвует на нижней точке. При переборе массива ДО тчк 8191 с помощью "For" "ArrayRW" всё работает, а копонент "ArratEnum" считает, что длина массива 16384 и начинает перебирать то, "чего на белом свете вообще не может быть" code_28122.txt добирается до не Real-ных значений и выскакивает с ошибкой
|
|||
карма: 19 |
| ||
файлы: 1 | code_28122.txt [2.4KB] [457] |
Разработчик
Ответов: 26164
Рейтинг: 2127
|
|||
О! Будем посмотреть.
|
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Леонид, [flood]сколько раз в одной процедуре нужно применить
if _prop_CourseF=0 then Намного проще (и понятней) Case _prop_CourseF of 0:............ 1:............ end; [/flood] |
|||
карма: 25 |
|
Ответов: 8930
Рейтинг: 823
|
|||
Tad, желательно, чтобы в результате эта конструкция выполнялась минимальное количество раз (хотя она и не самая медленная), т. е. не надо засовывать её внутрь цикла если есть возможность, кроме того чтобы не переписывать часть кода при необходимости вставки забытого или из за лени, ну и ещё для красоты всё таки: "Если НЕТ, то ДА, иначе СОВСЕМ НЕТ!"
Но критику всегда принимаю с благодарностью, помогает избежать ошибок |
|||
карма: 19 |
|
Разработчик
Ответов: 26164
Рейтинг: 2127
|
|||
Леонид, объясни мне -- как ты хочешь получить ограничение 8192, когда у тебя
tnn равно 16384 У тебя размер массива ArrayOutAmpl -- 8192, а значения индекса можно пихать до 16383 Естественно ArrayEnum будет пытаться читать, пока доступны индексы.
Этого не произойдет в ArrayRW, тк индексы задаются извне |
|||
карма: 22 |
|
Ответов: 8930
Рейтинг: 823
|
|||
nesco, спасибо! Я всё равно бы не нашёл, "смотрю в книгу, а вижу фигу", сколько раз пальчиком водил по строчкам, бестолку
------------ Дoбавленo в 10.36: Заменил 311 строку hiArrayFFT.pas писал(а): if (Index < 0) or (Index > tnn/2 - 1) then exit;if (Index < 0) or (Index > trunc(tnn/2) - 1) then exit; полёт нормальный! |
|||
карма: 19 |
|
Разработчик
Ответов: 26164
Рейтинг: 2127
|
|||
Леонид,
Во-первых:
Во-вторых: tnn/2 там отродясь не водилось: В третьих: зачем trunc(tnn/2), когда можно просто -- tnn div 2, tnn же тип integer |
|||
карма: 22 |
|
Ответов: 8930
Рейтинг: 823
|
|||
nesco писал(а): Во-первых:Во-вторых: nesco писал(а): tnn div 2nesco писал(а): этим раньше не занимался вплотную |
|||
карма: 19 |
|
Разработчик
Ответов: 26164
Рейтинг: 2127
|
|||
Леонид писал(а): А то всёЯ же имел в виду разложения функций в ряды Фурье, а не программирование |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
А я имел ввиду программирование
Леонид писал(а): для красоты
------------ Дoбавленo в 11.22: Это так, к слову. |
|||
карма: 25 |
|
Ответов: 8930
Рейтинг: 823
|
|||
Выложил три компонента по Фурье в первом посте
|
|||
карма: 19 |
|
Разработчик
Ответов: 26164
Рейтинг: 2127
|
|||
Леонид писал(а): Выложил три компонента по Фурье в первом постеС примерами |
|||
карма: 22 |
|