реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Сортировка данных
Sneg_87
сообщение Oct 21 2009, 16:34
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 12-10-09
Пользователь №: 52 882



Какие посоветуете методы сортировки данных в реальном времени? Данные поступают с АЦП и поэтому времени на их обработку мало.
ЗЫ Метод пузырька не предлагать smile.gif


--------------------
coding, кодинг, koDinГ, copyriting, printing ....
Go to the top of the page
 
+Quote Post
Goodefine
сообщение Oct 21 2009, 16:39
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581



Какая глубина сортировки требуется?


--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Go to the top of the page
 
+Quote Post
Sneg_87
сообщение Oct 21 2009, 17:07
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 12-10-09
Пользователь №: 52 882



Цитата(Goodefine @ Oct 21 2009, 22:39) *
Какая глубина сортировки требуется?

Дело пожалуй не в глубине, а в скорости обработки данных. Данные с АЦП будут записываться в некоторый массив фиксированной длинны из которого надо найти MIN,MAX и их номера. Вот пожалуй и все требования к алгоритму внешней сортировки.
ЗЫ Чтобы не тратить время на перемещение, сравнение, умножение и прочие ненужности. Требуется простой и быстрый smile.gif ну или можно непростой - тоже сойдет

Сообщение отредактировал Sneg_87 - Oct 21 2009, 17:18


--------------------
coding, кодинг, koDinГ, copyriting, printing ....
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Oct 21 2009, 17:26
Сообщение #4


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Фильтр скользящий или блочный?


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
Rst7
сообщение Oct 21 2009, 17:33
Сообщение #5


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Вообще то теория различных методов сортировки более чем разработана. Можно начинать курить хоть прямо с википедии - http://ru.wikipedia.org/wiki/Алгоритм_сортировки

Добиваться более знатного результата можно только допиливая выбранных алгоритм под реальное задание, т.е. уменьшать значение, которое скрывается за обозначением О(чего-то)


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 21 2009, 17:37
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



А запись в массив с предобработкой или с постобработкой?
P.S. Гы smile.gif DRUID3 то же самое спросил, но в других терминах smile.gif
Go to the top of the page
 
+Quote Post
Rst7
сообщение Oct 21 2009, 17:41
Сообщение #7


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Хотя стоп. Если вот это и есть задание:
Цитата
Данные с АЦП будут записываться в некоторый массив фиксированной длинны из которого надо найти MIN,MAX и их номера.
, то ничего сортировать не надо, просто по появлению каждого значения надо проверять и обновлять при необходимости 2 переменные, минимальное и максимальное значение. Номера тоже можно сохранять. Сложность O(n), при этом множитель минимален.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Sneg_87
сообщение Oct 21 2009, 17:54
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 12-10-09
Пользователь №: 52 882



Цитата(rezident @ Oct 21 2009, 23:37) *
А запись в массив с предобработкой или с постобработкой?
P.S. Гы smile.gif DRUID3 то же самое спросил, но в других терминах smile.gif

Спасибо за разъяснения smile.gif значит все-таки с постобработкой.
С начального момента в пустой массив, размер которого не меняется, записываются данные, а старое значенеи заменяется новым.

Цитата(Rst7 @ Oct 21 2009, 23:41) *
Номера тоже можно сохранять

Над этим подумаю, отпишусь поппозднее, как придумаю реализацию. потому как нужны не значения конктретно из массива, а вообще со старта оцифровки.

PS Да, чет мне тут мысль нехорошая попала в голову, что даже скажем 10 значений из массива но их всеравно надо будет перезаписывать в массив, чтобы добавить новое значение с АЦП.
Может есть методы более оптимальные?


--------------------
coding, кодинг, koDinГ, copyriting, printing ....
Go to the top of the page
 
+Quote Post
Rst7
сообщение Oct 21 2009, 18:05
Сообщение #9


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
потому как нужны не значения конктретно из массива, а вообще со старта оцифровки.


Так зачем Вам вообще массив? wink.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Sneg_87
сообщение Oct 21 2009, 18:09
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 12-10-09
Пользователь №: 52 882



Цитата(Rst7 @ Oct 22 2009, 00:05) *
Так зачем Вам вообще массив? wink.gif

Хорошо, когда все хорошо smile.gif В сигнале просто будут появляться импульсные помехи, а если без сохранения предыдущих значений сигнала, то сложно сказать помеха или максимум. Я исходил из таких соображений.


--------------------
coding, кодинг, koDinГ, copyriting, printing ....
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 21 2009, 18:12
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Sneg_87 @ Oct 21 2009, 23:54) *
значит все-таки с постобработкой.
Постобработки или блочный фильтр означает, что значения сначала записываются в массив, а потом с ними что-либо делают. Предобработка или скользящая фильтрация подразумевают наоборот, сначала новое значение как-либо обрабатывается и только потом записывается (или не записывается) в массив.
Цитата(Sneg_87 @ Oct 21 2009, 23:54) *
С начального момента в пустой массив, размер которого не меняется, записываются данные, а старое значенеи заменяется новым.

Цитата(Sneg_87 @ Oct 21 2009, 23:54) *
потому как нужны не значения конктретно из массива, а вообще со старта оцифровки.
Дык зачем писать в массив, если содержимое его не нужно? Храните два значения (минимум и максимум) и соответственно два номера отсчета. Итого всего четыре переменных.

Цитата(Sneg_87 @ Oct 22 2009, 00:09) *
если без сохранения предыдущих значений сигнала, то сложно сказать помеха или максимум.
Как соотносится предполагаемая длительность помехи с периодом оцифровки сигнала? И что предполагается делать с помехой? Выбрасывать эти значения или как-либо сглаживать?
Go to the top of the page
 
+Quote Post
Sneg_87
сообщение Oct 21 2009, 18:32
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 12-10-09
Пользователь №: 52 882



Цитата(rezident @ Oct 22 2009, 00:12) *
Дык зачем писать в массив, если содержимое его не нужно? Храните два значения (минимум и максимум) и соответственно два номера отсчета. Итого всего четыре переменных.

Как соотносится предполагаемая длительность помехи с периодом оцифровки сигнала? И что предполагается делать с помехой? Выбрасывать эти значения или как-либо сглаживать?

В принципе массив не нужен, если отфильтровывать помехи, используя скользящую фильтрацию ( to rezident Отдельное спасибо за объяснение терминологии)
Такс, а по помехам сложно конкретно ответить на вопрос (из-за отсутствия осциллограм или чего-то где их можно было увидеть). Мне в задании написали что мол защиту (фильтрацию) сделать от импульсных помех и от помехи, которую в спектре сигнала видно на частоте 200Гц.
Частота тактирования МК 50кГц, частота сигнала до 6,5кГц. Видимо длительность помехи вносит вклад т.к. если было бы наоборот о имп помехе никто бы и не сказал 05.gif


--------------------
coding, кодинг, koDinГ, copyriting, printing ....
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 21 2009, 18:48
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Sneg_87 @ Oct 22 2009, 00:32) *
В принципе массив не нужен, если отфильтровывать помехи, используя скользящую фильтрацию
Вы опять что-то не поняли sad.gif Скользящая фильтрация (если вы имеете в виду SMA - простое скользящее среднее) это такой способ усреднения с постобработкой и необходимостью обязательно иметь буфер отсчетов. Каждое новое значение поступает в буфер, вытесняя самое старое. Затем считается среднее значение (сумма отсчетов деленная на количество отсчетов) и результатом фильтрации является как раз это среднее. Но тут есть один нюанс, который может облегчить вычисления. Если в качестве отсчетов используются целые числа, то не обязательно каждый раз считать сумму всех отсчетов. Достаточно хранить эту сумму в отдельной переменной и при вычислении среднего вычитать из нее старое (выбывающее) значение и добавлять новое значение, а затем делить на количество отсчетов. Для чисел в плавающем формате такой способ не подходит, т.к. очень быстро накапливаются ошибки округления в сумме отсчетов.
Цитата(Sneg_87 @ Oct 22 2009, 00:32) *
Частота тактирования МК 50кГц, частота сигнала до 6,5кГц. Видимо длительность помехи вносит вклад т.к. если было бы наоборот о имп помехе никто бы и не сказал 05.gif
Дык в том и вопрос: какова длительность помехи?
Go to the top of the page
 
+Quote Post
Sneg_87
сообщение Oct 22 2009, 03:34
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 12-10-09
Пользователь №: 52 882



Цитата(rezident @ Oct 22 2009, 00:48) *
Для чисел в плавающем формате такой способ не подходит, т.к. очень быстро накапливаются ошибки округления в сумме отсчетов.

Тип данных с плавающей запятой для данных с АЦП.
Цитата(rezident @ Oct 22 2009, 00:48) *
Дык в том и вопрос: какова длительность помехи?

Частота дискретизации 50кГц, значит длительность одного измерения ~ 20мкс и помехи в том числе (еслия правильно все понимаю smile.gif )

Сигнал может быль не очень идеальный (П-помеха импульсная, С-чистый сигнал), поэтому возможны следующие ситуации:
СССПСПСПССС
ССППССССССС


--------------------
coding, кодинг, koDinГ, copyriting, printing ....
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 22 2009, 11:42
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Sneg_87 @ Oct 22 2009, 09:34) *
Тип данных с плавающей запятой для данных с АЦП.
Не понял. Что за АЦП, которое выдает данные в формате с плавающей точкой? 07.gif
Цитата(Sneg_87 @ Oct 22 2009, 09:34) *
Частота дискретизации 50кГц, значит длительность одного измерения ~ 20мкс и помехи в том числе (еслия правильно все понимаю smile.gif )
Блин! Да отвяжитесь вы от отсчетов вообще! В микро- или миллисекундах сколько? Ну или по-другому. Какие именно помехи фильтровать нужно? Сетевую наводку? Микросекундные помехи? Радиочастотные помехи?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01534 секунд с 7
ELECTRONIX ©2004-2016