О сайте Группа в контакте RSS Годограф Volksturm Импульсные металлоискатели IB металлоискатели Пинпоинтеры Другие схемы Заказать Конструкции металлоискателей Полезные ссылки

Схемы металлоискателей MD4U

Сборка, настройка, обсуждение, теория и практика построения металлоискателей.
Текущее время: Чт: 16 май 2024 3:32

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему
 [ Сообщений: 306 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 13  След.
Автор Сообщение
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Чт: 31 янв 2013 22:36 
Не в сети

Зарегистрирован: Вт: 27 ноя 2012 6:13
Сообщения: 271
Откуда: Redmond(Seattle), US
Sergey_P писал(а):
Вот, теперь понятно, откуда выросли утечки в интеграторе (ФНЧ-1го порядка) и прямоугольное окно накопления в 512 отсчетов… Только, для МД это не подходит…, т.к. задачи решаемые им несколько отличаются от задач для кодеков. ...

Я фигею, дорогая редакция!... (с) Разжевал уже подробнее не куда, а он всё про прямоугольное окно. Да, нет там никакого прямоугольного окна. Нету! Неужели Вы до сих пор этого не поняли? И со спектральными составляющими Вы НИЧЕГО не поняли. Нет там никаких "побочных спектральных каналов приема". Одна в данном случае гармоника. Совсем одна. Вы хоть прочитали, что я Вам про это писал? Или пробежали галопом по терминам? Ну, скажите конкретно, с чем Вы там не согласны? Пожалуйста! Что-то непонятно? Так, я объясню. А то Вас всегда сносит далеко в сторону как только дело касается конкретных вопросов.

Вообще, я тащусь от Вашего псевдо-профессионального жаргона. Там, где можно сказать просто, Вы заворачиваете какой-то каламбур из знакомого Вам набора терминов. Такой, например, сюр, как " побочные спектральные каналы приема" в приложении к кодекам речи только чего стоит. :)

P.S. Один из моих любимых анекдотов: Не водите жену с собой на футбол. В тот момент, когда Вы ей будете объяснять тонкости оффсайта, она спросит зачем нужны ворота. (c)


Вернуться к началу
 Профиль  
 


Вы можете отключить эти сообщения.
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Пт: 01 фев 2013 9:18 
Не в сети

Зарегистрирован: Сб: 21 ноя 2009 12:10
Сообщения: 2698
Откуда: Новосибирск
Privet писал(а):
Опять, не так... :( , а так, если нарисовать один канал...?
t - период оцифровки
k - количество отсчетов на периоде сигнала
Или, опять, что-то не так ?


У вас нет необходимых прав для просмотра вложений в этом сообщении.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Пт: 01 фев 2013 18:52 
Не в сети

Зарегистрирован: Сб: 21 ноя 2009 12:10
Сообщения: 2698
Откуда: Новосибирск
Продолжу, если нет возражений… :)
Правую половину картинки откинем (она всё равно не работоспособна), а обратим внимание на левую…, в которой явно видна прямоугольная огибающая интервала накопления входных отсчетов.
Повторно, обращаю ваше внимание на нормированный спектр оконной функции - http://www.dsplib.ru/content/winadd/win.html . Эта функция определяет частотные свойства коэффициента передачи узла перемножителя, изображенного на левой половинке вышеприведенной схемки, а не какие-то отвлеченные хвосты от преобразования прямоугольного сигнала…
Подайте на вход сигнал с утроенной частотой по сравнению с опорной… и этот сигнал с некоторой потерей пролезет и накопится на выходном сумматоре(+). Для исключения наложения спектральных составляющих входного сигнала и выделения реальных сигналов соответствующих опорному необходимо на входе их отделить с помощью антиалиасингового фильтра в частотной области или же наложить на входную последовательность оцифрованных данных оконную временную функцию, что со стороны математики совершенно эквивалентно. Городить аналоговый фильтр для обрезания частотного входного спектра в цифровом приборе – не уважать математику…
У некоторых "практиков" вызывает сомнение применение оконной функции в том, что якобы оконная функция снижает принятый сигнал и уменьшает его эффективность выделения, т.к. уменьшается коэффициент передачи принятой энергии полезного сигнала. Несомненно, абсолютное значение энергии принятого полезного сигнала при наложении окна – снижается, но по сравнению с мешающими сигналами, отношение сигнал/шум растет многократно и это рост тем больше, чем большее количество отсчетов участвуют в накоплении (одновременно расширяя динамический диапазон представления оцифрованных данных, в сторону более младших разрядов чем нам предоставило АЦП).
Для примера приведу кусочек линейной огибающей функции оцифрованной аппаратной АЦП как (10011.) По мере наложения линейной огибающей происходит информационный сдвиг в сторону более младших разрядов, внося в эти младшие разряды информацию об оцифрованном сигнале… т.е. собственно потери информации об сигнале – нет, она переносится в другой динамический диапазон представления сигнала. Естественно, для работоспособности этого накопления точность вычислений и представления данных должна быть на уровне младшего разряда накопителя ( в этом примере = ххххх.хххххх ; 11- разрядов вычислитель, по сравнению 5- разрядами АЦП).
(как-то так... если объяснять на пальцах и картинках... :) )


У вас нет необходимых прав для просмотра вложений в этом сообщении.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Сб: 02 фев 2013 0:56 
Не в сети

Зарегистрирован: Вт: 27 ноя 2012 6:13
Сообщения: 271
Откуда: Redmond(Seattle), US
Sergey_P писал(а):
Privet писал(а):
Опять, не так... :( , а так, если нарисовать один канал...?
t - период оцифровки
k - количество отсчетов на периоде сигнала
Или, опять, что-то не так ?

Увы...
Я рисовать не горазд. Неисповедимы пути, которыми Вы мыслили, рожая данную диаграмму. Вы не потрудились изложить что и откуда у Вас взято. Как обычно, Вы выдали своё собственное понимание системы, а потом с блеском доказываете, что это бред. С этим, правда, я согласен, диаграммы, которые Вы нарисовали это бред.

Вообще, Sergey_P, должен Вам сказать, что когда студентам начинают давать цифровые фильтры, то им показывают самую простейшую вещь - реализацию RC цепочки в виде цифровой дискретной модели:
Yn+1 = Yn * к, где k близко к единице.
Некая начальная величина Y "утекает" по экспоненциальному закону.
Если Вы не смогли распознать такой фильтр после нескольких дней обсуждения, но делаете столько категоричных заявлений по поводу дизайна и неких "подходов" (пояснить что сие есть Вы не соизволили), то это уже почти как по Булгакову.
Впрочем, у Вас есть шанс ответить за свои слова, но это Вас, кажется, мало беспокоит.

В этом сообщении я как мог подробно описал как это реализуется на Си в моей программе. Я там же показал, что 512 это совсем не длина блока. Это число используется для получения коэффициента утечки k, которое равно (1 - 1/512) = 0.998
Степень двойки взята для простоты вычислений в целочисленной арифметике. Деление на 512 это просто сдвиг на 9 разрядов вправо (в сторону младших разрядов). Вы же рисуете какие-то суммы длиной от 1 до 512.
Эта утечка в интеграторе квадратур и есть то окно, которое Вы не увидели. Оно использовано в интеграторах, которые накапливают квадратуры. Это экспоненциальное временное окно, только не во временной, а в частотной области (frequency domain).
Sergey_P, мне кажется, Вы живёте в собственном виртуальном пространстве. Я пытаюсь что-то Вам объяснить, но каждый раз Вы возвращаете настолько искажённую картину, как буд-то Вы приняли изрядную дозу LCD.

Я распишу алгоритм подробно ещё раз с кодом и комментариями. Разумеется, не только для Sergey_P. Если кто только учится, то это может быть примером. Это минимум, который можно как-то улучшать, но принципиально обойти нельзя.
Я ещё раз повторю код, который я дал в этом сообщении, но на этот раз постараюсь дать самые подробные комментарии. Код сильно упрощен. Многие вещи типа округления младшего разряда, буферизация и пр. не показаны для простоты и ясности кода.
Ещё я изменял некоторые константы. Тогда я квадратурный интегратор сдвигал на 8 разрядов. Сейчас на 9.
После каждой строчки кода я покажу то же самое, но в обычной арифметической нотации.
Зелёным помечен старый текст, синим, что я сейчас добавлю.

Напоминаю: Все интеграторы между прерываниями не обнуляются, а СОХРАНЯЮТ свои значения. В начале каждого блока интеграторы имеют состояние, полученное в предыдущем цикле.
Это вроде как очевидно, но ...


Это прерывание случается 16 раз на период Rx/Tx.
Код:
// АЦП (ADC) выдаёт код от 0 до 4095. Вычитаем половину, получаем двуполярный сигнал.
    i = ADC_ConvertedValue - 2048;

АЦП выдаёт положительное число от 0 до 4095. Удобнее работать с сигналом, который имеет среднее значение 0.
Вычиаем из взятого с АЦП сигнала 2048 и помещаем результат во временную переменную i.
Сделали. Теперь вспоминаем, что АЦП у нас совсем не идеальный. Поэтому, сигнал может иметь какой-то дополнительный сдвиг в минус или плюс. Нам это надо устранить. Как? Делаем интегратор с относительно небольшой утечкой. На нём со временем установится некое значение, которое при коэффициенте утечки 1/1024 (это примерно 0.000977) будет величина в 1024 раза больше средней величины S.
input_average = S * 1024 <-- это не операция, а условие баланса.
Почему так? Потому, что установиться баланс. Каждый отсчёт будет добавлять в input_average некую среднюю величину S, а утечка 1/1024 будет вычитать из input_average точно такую же величину.
input_average = S * 1024
утечка = (S * 1024) * (1/1024) = S // т.е. учечка равна дабавленной средней величине S

Итак. Входной сигнал это i, а мы пока займёмся средней величиной.

Код:
// Реализуем "утечку". Каждый раз вычитаем 1/1024 от того, что есть.
// Сдвиг вправо на 10 разрядов это деление на 1024 (2**10)
    input_average -= (input_average>>10);

input_average = input_average - (input_average/1024)
Кстати, а зачем, вообще, нам нужна здесь "утечка"? Для того, чтобы "забывать" то, что было давно и "помнить" только "свежий" результат. Утечка это в данном случае экспоненциальное окно во времени.

Теперь добавляем в интегратор среднего значения входной сигнал.

Код:
// Накапливаем на интеграторе среднее значение сигнала.
    input_average += i;
Код:
[color=#0000BF]input_average = input_average + i
На этом со средним значением закончим. Пора позаботиться о самом входном сигнале.[/color]
// Закидываем в массив входной сигнал за вычетом среднего значения и сразу инкрементируем индекс,
// который крутится от 0 до 15. Обнуляется он в другом прерывании.
    input[sample_idx++] = i - (input_average>>10);

В данном случае в одной строке (для компактноси и скорости) выполнено несколько операций.
1) Вычитаем из входного сигнала среднее значение. Помним, что input_average содержит среднюю величину, помноженную на 1024. Поэтому, при вычитании, делим input_average на 1024
i = i - (input_average / 1024)
Теперь можно поместить входной сигнал в массив по текущему индексу, который "крутится" от 0 до 15.
input[sample_idx] = i
В этом прерывании (подпрограмме), которое вызывается, напомню, 16 раз на период, индекс постоянно увеличивается на 1. В другом прерывании, которое выполняется раз за период, индекс обнуляется. Таким образом, он никогда не будет больше 15.
sample_idx = sample_idx + 1


Теперь самое интересное. Реализуем СД и получаем квадратуры.
Это из прерывания по периоду Rx.
Код:
// Тоже самое, что и в предыдущем, но tmp использована только потому, что quad_xxx
// объявлены volatile

Начинаем, конечно, с утечки. Утечка в данном случае она равна 1/512. Вычитаем из квадратурного интегратора quad_sin (это первая квадратура) величину quad_sin/512.
Сначала пмещаем quad_sin/512 во временную переменную tmp.

Код:
    tmp = quad_sin >> 9;

tmp = quad_sin / 512
Код:
    quad_sin -= tmp;

Теперь вычитаем величину tmp из интегратора.
quad_sin = quad_sin - tmp
Можно было сделать всё в одной строке, но пришлось разбивать на две из-за особенностей компилятора. Зря я это сюда притащил. Надо было бы это упростить, но я не хочу менять вид кода, который я поместил первый раз.
Далее делаем тоже самое с интегратором quad_cos, который накопливает вторую квадратуру.

Код:
   tmp = quad_cos >> 9;
    quad_cos -= tmp;

На этом этапе мы имеем 16 текущих отсчётов сигнала Rx. Это один период синусоиды сдвинутой на какую-то фазу. Нам надо получить две квадратуры этого сигнала.
В цикле перемножаем 16 полученных в предыдущем прерывании отсчётов с соответствующими отсчетами одного периода синуса для одной квадратуры и косинуча - для другой.
Важно понимать, что этот процесс продолжается бесконечно. Т.е. результат постоянно изменяется и утекает на интеграторах. Этот цикл это только 16 последлних шагов, которые что-то добавляют к тому, что накопилось на данный момент. Если входной сигнал близок к 0, что величина на квадратурном интеграторе "утекает" по экспоненциальному закону.
В аналоговых схемах эта утечка получается за счёт резистора, включенного параллельно накопительной ёмкости.

Данный процесс можно считать Дискретным Преобразованием Фурье (ДПФ), в котором считается только одна гармоника. Утечку можно считать временным окном, которое наложено на эту гармонику в частотной области. Т.е. применено окно не к входному сигналу (временная область), а к его гармонике (частотная область). Окно, тем не менее, временное. Т.е. меняет не соотношение гармоник между собой, а изменение одной гармоники во времени.
Есди нарисовать это в объёме, то это было бы просто. На словах объяснить труднее. Боюсь запутать. Если непонятно - проигнорируйте.

Код:
   for(i=0; i<16; ++i)
    {
// Реализация СД. Все накопленные значения умножаем на кусок синусоиды той же длины.
// Всё, что получилось склдываем и получаем квадратуры.
// Правда, здесь столо бы задать вопром о том что хватит ли мне 32-х битов. Хватит.
      quad_sin += input[i] * sin12bit[i];

quad_sin = quad_sin + input[i] * sin12bit[i]
Думаю, здесь всё просто. К интегратору бесконечно добавляем результат перемножения входного отсчёта и соответствующим элементом синуса из таблицы.
Оба значения - 12-ти разрядные величины со знаком. Результат максимум займёт 23 разряда. Т.е. у нас есть ещё много запаса как на иетегрирование, на случай максимального результата, так и на последующую обработку. Можно также применить таблицы 16-разрядных sin и cos

Код:
      quad_cos += input[i] * cos12bit[i];
    }
// Добавил для ясности
// На данный момень sample_idx=16, т.к. предыдущее прерывание вызываеется 16 раз перед этим.
// на каждое это прерывание
    sample_idx = 0;

Вот, собственно, и всё. Это минимальная обработка для получения квадратур.
Далее надо поставить фильтры, которые будут выделять полезный сигнал. У меня это будут два фильтра ФВЧ и ФНЧ. Они будут рассматриваться совершенно отдельно, т.к. они ревлизуются совсем в других прерываниях, которые работают на гораздо меньшей частоте.


Последний раз редактировалось Privet Вс: 03 фев 2013 8:25, всего редактировалось 4 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Сб: 02 фев 2013 1:33 
Не в сети

Зарегистрирован: Вт: 27 ноя 2012 6:13
Сообщения: 271
Откуда: Redmond(Seattle), US
Sergey_P писал(а):
...
Повторно, обращаю ваше внимание на нормированный спектр оконной функции - http://www.dsplib.ru/content/winadd/win.html . Эта функция определяет частотные свойства коэффициента передачи узла перемножителя, изображенного на левой половинке вышеприведенной схемки, а не какие-то отвлеченные хвосты от преобразования прямоугольного сигнала…
....

Уважаемый Sergey_P, пожалуйста, прочитайте мои сообщения и попробуйте понять как работает конкретная система. Вы упрямо толкуете о применении временных окон. Я Вам конкретно писал, что окна применяются в случае блочной обработки сигнала. Т.е. при наложении на сигнал прямоугольного окна. Ну, нет у меня такого окна. Уже который день я Вам об этом пишу, а Вы всё не понимаете.

У меня такое впечатление, что в своём сообщении Вы собрали в кучу всё, что Вам известно о цифровой обработке. :)
Категоричность заяалений о негодном подходе плавно трансформировалась в советы как надо делать. Давайте лучше о чём-то поконеретнее. Свой "подход" хотя бы распишите.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Сб: 02 фев 2013 16:09 
Не в сети

Зарегистрирован: Сб: 21 ноя 2009 12:10
Сообщения: 2698
Откуда: Новосибирск
Так, я и пытаюсь понять… на что это похоже, но что-то не укладывается в картинку линейного накопления…
Был бы это алгоритм Герцеля или его модификация (http://www.dsplib.ru/content/goertzel/goertzel.html , http://www.dsplib.ru/content/goertzelmo ... elmod.html ), чтобы утверждать о непрерывности накопления…, так нет – на всем процессе вычислений вклиниваются скачки корректировщиков и утечек… Что-то я затрудняюсь в такой куче определить эффективность такой фильтрации и оценить достижимую разрядность представления квадратурных составляющих, чтобы оценить динамический диапазон обрабатываемого сигнала, а следовательно реально достижимую чувствительность детектора к малым или далеким целям и возможность измерения их фазовых характеристик.
Что касается необходимости введения специальных мер по подавлению постоянной составляющей входного сигнала, то это удручает еще больше – что это за обнаружитель заданного синусоидального сигнала, не способный отделить константу (нулевую частоту спектральной составляющей)?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Сб: 02 фев 2013 19:35 
Не в сети

Зарегистрирован: Вт: 27 ноя 2012 6:13
Сообщения: 271
Откуда: Redmond(Seattle), US
Sergey_P писал(а):
Так, я и пытаюсь понять… на что это похоже, но что-то не укладывается в картинку линейного накопления…
Был бы это алгоритм Герцеля или его модификация (http://www.dsplib.ru/content/goertzel/goertzel.html , http://www.dsplib.ru/content/goertzelmo ... elmod.html ), чтобы утверждать о непрерывности накопления…, так нет – на всем процессе вычислений вклиниваются скачки корректировщиков и утечек… Что-то я затрудняюсь в такой куче определить ...

Эх.... с такой бурной энергией Вы принялись в пух и прах разносить идею, а оказалось, что Вы и не поняли-то ничего. В "куче" из трёх интеграторов, два из которых одинаковые, запутались. Ладно это был бы какой-то сложный алгоритм. Так это же самый-самый примитив, проще которого уже некуда.
Нет, ну во всяких там дэфиподэтэ это Вы мастер, а как конкретика, так Вы сразу в "куче". :)

С "подходом" Вы тихо слили, об окне Вы всё только гипотетически. Я предложил Вам конкретное объяснение, так Вы "не заметили". Какая-то "-1", которую Вы неведомо где нашли, тихо пропала. Начали меня учить пользоваться разрядной сеткой, а сейчас вдруг сами признаётесь, что разобраться в этом не можете.
Словами Вы разбрасываетесь легко, но отвечать за них не хотите и не способны.

Sergey_P, я пустобрёхом заниматься не люблю. Если у Вас есть конкретные вопросы или комментарии по данному дизайну, то прошу, а заниматься псевдо-технической мастурбацией, пожалуй, хватит.

P.S. Для Вашего общего образования. В любом случае, когда выполняется АЦП, сигнал обязательно предварительно фильтруется АНАЛОГОВЫМ фильтром. Отцифрованный сигнал может дополнительно сглаживаться уже в цифре. Я писал об этом в ответе Andrew2. Моя система реализована с учётом возможности использования таких фильтров. У меня даже реализовано экспоненциальное сглаживание, но сейчас я это не использую. Потому, что сначала надо определить существующие параметры системы и из этого выводить требования к такому фильтру. Система, как я уже писал строится по принципу: "Сначала гроб, а потом кисти". Ваш подход я не понимаю. Мне кажется, это даже не подход, а фантазии.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Вс: 03 фев 2013 1:40 
Не в сети

Зарегистрирован: Вс: 23 май 2010 10:48
Сообщения: 2486
Откуда: администрация и модераторы-тупицы и дебилы
Privet, я тоже Ваш подход не понимаю - чего Вы хотите сделать, какой результат этого старания? Я вижу, что Вам нравится Ваша работа, но... и что дальше?

_________________
администрация и модераторы md4u - глупцы и моральные уроды, потому что используют административные ресурсы для нарушения Правил форума, прав пользователей и в личных целях.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Вс: 03 фев 2013 3:19 
Не в сети

Зарегистрирован: Вт: 27 ноя 2012 6:13
Сообщения: 271
Откуда: Redmond(Seattle), US
Вадим писал(а):
Privet, я тоже Ваш подход не понимаю - чего Вы хотите сделать, какой результат этого старания? Я вижу, что Вам нравится Ваша работа, но... и что дальше?

О! Sergey_P, у Вас, однако, поддержка появилась! :)

Вадим, я очень рад, что Вы заинтересовались моим подходом и потратили время, чтобы попытаться в нём разобраться.
Что, конкретно, Вам непонятно в моём подходе? Надо было что-то сделать по-другому и тогда Вам стало бы ясно, что будет дальше? Вам не нравится общий подход или какое-то частное решение?
Это... самое... как его там... ду ю спик текникал лангуаге? Pardon my French... :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Вс: 03 фев 2013 9:14 
Не в сети

Зарегистрирован: Сб: 21 ноя 2009 12:10
Сообщения: 2698
Откуда: Новосибирск
Вадим писал(а):
Попробую нарисовать потаённый смысл «интеграторов с утечкой», представляющих собой линейную интерполяцию суммы сигнала на заданном интервале N.
В какой-то момент времени берется значение /S/ на сумматоре и вычисляется его приращение на длине N (приращение= S/N). При суммировании входных данных с внесением каждого значения производится вычитание этого приращения. На интервале от 1…N на сумматоре формируется сигнал, представляющий собой процесс изменения энергии входного сигнала относительно измеренного в предыдущем накоплении /S/.
Очевидно, что за время накопления N отсчетов с момента вычисления S/N вся составляющая S – обратится в ноль, что эквивалентно сбросу сумматора в нулевое состояние и простое накопление суммированием входных отсчетов.
Утверждение, что в результате линейной интерполяции мы имеем непрерывный характер накопления в любой временной точке – ложно, т.к. истинное значение накоплений лежит в точках конца накопления 0,N,2N… со значениями S, S+,S++…. Тем более, что промежуточные значения нас не интересуют….
Что касается промежуточных данных, то тут конечно интересно, т.к. суммируются два прямоугольных окна... одно длиной N (предыдущее вычисление значения S) и задавленной амплитудой, и прямоугольное окно длиной меньше N (текущее вычисление S+)


У вас нет необходимых прав для просмотра вложений в этом сообщении.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Вс: 03 фев 2013 12:20 
Не в сети

Зарегистрирован: Вс: 23 май 2010 10:48
Сообщения: 2486
Откуда: администрация и модераторы-тупицы и дебилы
Privet , не нервничайте... ! :!:
Я задал простой вопрос и на русском - "...какой результат?..." Перевожу - что именно Вы хотите получить в итоге, = какими свойствами должно обладать Ваше устройство, какие задачи оно решит или решает? А иначе, вся эта писанина ничего не стоит, кроме самовозбуждения...
Что касается технической стороны вопроса, то не надо впадать в кретинизм и думать, что программирование может прыгнуть выше физики... Поэтому и не интересно ... Программирование вообще не содержит ни идей, ни решений...- так, падчерица...
P.s. : Исключение может быть - ИИ.

_________________
администрация и модераторы md4u - глупцы и моральные уроды, потому что используют административные ресурсы для нарушения Правил форума, прав пользователей и в личных целях.


Вернуться к началу
 Профиль  
 
В сети

Вы можете отключить эти сообщения.
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Вс: 03 фев 2013 14:55 
Не в сети

Зарегистрирован: Сб: 21 ноя 2009 12:10
Сообщения: 2698
Откуда: Новосибирск
Да, еще, если снимать накапливаемые данные с сумматора в промежутке от 0...N и попадать на нечетные суммы 1,3,5,7... то нулевой спектр входного сигнала не обнуляется, что требует специальных мер по устранению смещения сигнала на входе :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Вс: 03 фев 2013 22:16 
Не в сети

Зарегистрирован: Вт: 27 ноя 2012 6:13
Сообщения: 271
Откуда: Redmond(Seattle), US
Sergey_P писал(а):
Попробую нарисовать потаённый смысл «интеграторов с утечкой», ...

Sergey_P, да я уже несколько раз и текстами и формулами объяснил что это такое, а Вы всё "потаённый" смысл ищете.

Повторяю ещё раз:

Yn = a*Yn-1 + Xn, где a близко к 1.

Выучите, пожалуйста, хотябы основы и не смешите народ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Вс: 03 фев 2013 22:35 
Не в сети

Зарегистрирован: Вт: 27 ноя 2012 6:13
Сообщения: 271
Откуда: Redmond(Seattle), US
Вадим писал(а):
...
Я задал простой вопрос и на русском - "...какой результат?..." ...


Вадим, Вы знаете... я на Вашем русском трёх слов связать не могу. Изнутри что-то просится, а наружу... ну, никак! И знаете почему? Я Вам прямо скажу... Родители виноваты. Это их влияние. Вот так и мучаюсь.
Вам-то хорошо. Даже впадать никуда не надо, а представьте, каково другим?...

:D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Вс: 03 фев 2013 22:51 
Не в сети

Зарегистрирован: Вс: 23 май 2010 10:48
Сообщения: 2486
Откуда: администрация и модераторы-тупицы и дебилы
Privet, посмотрим, как ваш технический хромает - на ваши результаты... надеюсь, что я доживу до результатов? :)

_________________
администрация и модераторы md4u - глупцы и моральные уроды, потому что используют административные ресурсы для нарушения Правил форума, прав пользователей и в личных целях.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Вс: 03 фев 2013 23:22 
Не в сети
Аватара пользователя

Зарегистрирован: Чт: 08 сен 2011 16:58
Сообщения: 123
Откуда: Украина, Сумская обл.
Вадим, ........ Хамство - признак слабости и глупости!
Если нужен исключительно результат, и "как это работает" не интересно - лучше сразу пойти..... в магазин. Не надо ждать, надеяться.... И не надо засорять тему!

_________________
Жизнь слишком коротка, чтобы найти ответы…. Но слишком длинна, чтобы отказаться от их поиска…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Вс: 03 фев 2013 23:43 
Не в сети

Зарегистрирован: Вс: 23 май 2010 10:48
Сообщения: 2486
Откуда: администрация и модераторы-тупицы и дебилы
Где хамство? На мой взгляд, как раз Privet здесь хамит, при чём открыто и конкретно. И у меня тоже не возникает сомнений в его умственных способностях и культуре. Но я же это не перетираю. И стараюсь сгладить - но не понимают...
Ну, если совести нет, то не надо на меня пенять...
Что касается засорения темы - а какая тема ?- я третий раз спрашиваю и получаю истинное хамство, как раз!
Вообще же, лишний раз убеждаюсь в своём отношении к программистам... "Святая" инквизиция...оторванная от реальности... :)

_________________
администрация и модераторы md4u - глупцы и моральные уроды, потому что используют административные ресурсы для нарушения Правил форума, прав пользователей и в личных целях.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Вс: 03 фев 2013 23:47 
Не в сети

Зарегистрирован: Вс: 23 май 2010 10:48
Сообщения: 2486
Откуда: администрация и модераторы-тупицы и дебилы
Privet писал(а):
Я написал в один топик, что купил себе такую балалайку, но интереса там, похоже, нет. Процессор ARM-32 - машинка довольно серьёзная. Мы на похожем сделали коммерческий проект по распознаванию речи. Для МД его хватит запросто. Причём, данный экземпляр отличается микропотреблением. Для батарейного питания самое оно. Ещё на этой плате есть слайдер, который можно легко приспособить к своим нуждам. Сначала я решил, что эта прилада лишняя - только порты занимает, но в процессе работы оценил. Я могу теперь вместо "крутилок" использовать слайдер для настройки.

Я для начала написал простую, но довольно гибкую систему синхронизации с возможносьтью настройки почти любых параметров. Синхронизация в таких проектах это или половина успеха или половина провала. Посидеть пару дней пришлось. Основной генератор выдаёт меандр или синусоиду для передающей катушки. Слайдером независимо изменяются частота следования импульсов и ширина импульсов. Через транзисторный ключ можно цеплять к катушке и передающая часть почти готова. Параметры меняются в очень широких пределах. Тот же генератор можно использовать как в импульснике, так и в IB. Для желающих можно на передающую катушке подать даже синус. Я считаю это лишним, но, так или иначе, эта возможность уже встроена.
Начало АЦП преобразования можно сдвинуть на нужный угол относительно главного импульса. Частота основного меандра, длительность его импульса и сдвиг фазы перед началом АЦП выводится на примитивненький LCD мониторчик. АЦП пребразования внутри основного цикла можно делать равномерно по циклу, если работаем с детектором IB или можно запустить серию через некоторое время после основного импульса. Платформа получилась полностью универсальной в этом плане. Никаких переделок не требуется.

Синхронизация вроде как примитивная, но повозиться с ней пришлось несколько дней. Правда, у меня не много опыта в этом отношении. Я обычно работал на больших системах и синхронизация решалась средствами ОС. Сейчас же я на голенькой платформе.
Использую IAR 6.50. Пара недель ещё есть.

Основная вопрос в этой платформе это хватит ли 12-битного АЦП. Ну, не хватит - поставлю внешний. Делов -то. Во всяком случае, я не собираюсь сразу сдаваться с двенадцатью. Пространство для манёвра у меня есть.

Если работа пойдёт - буду обновлять информацию здесь. Если у кого вопросы - с удовольствием отвечу.

Следущим шагом я прицеплю к этой платформе катушку от Fisher-4 и посмотрю, что я с ней могу увидеть. Предварительный усилитель/фильтр будет на 3-х операционниках. Дальше только цифра.


Вот, это начало... - винегрет, всё смешано, задачи не поставлены, то что поставлено - очень ограниченно и не понятно , зачем нужно... - вот я и спрашиваю автора то, что он делает - где хамство? :)
А постановка цели = результата важно для грамотной разработки,- только и всего.

_________________
администрация и модераторы md4u - глупцы и моральные уроды, потому что используют административные ресурсы для нарушения Правил форума, прав пользователей и в личных целях.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Пн: 04 фев 2013 0:47 
Не в сети

Зарегистрирован: Ср: 27 май 2009 23:42
Сообщения: 1106
Вадим, изыди из темы .... :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Пн: 04 фев 2013 1:57 
Не в сети

Зарегистрирован: Вт: 27 ноя 2012 6:13
Сообщения: 271
Откуда: Redmond(Seattle), US
Вадим, может быть, Вы не будете засорять топик своими излияниями? Вряд ли кого здесь тронет Ваша экспрессия в мой адрес.

Ещё цитируйте, пожалуйста, минимум необходимого, не спите месяц, прежде, чем высказаться по какому-нибудь сообщению и не задавайте глупых вопросов типа "Что это будет?".

P.S. А ведь форум вроде как 18+ ...? :?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Пн: 04 фев 2013 11:33 
Не в сети

Зарегистрирован: Вт: 27 ноя 2012 6:13
Сообщения: 271
Откуда: Redmond(Seattle), US
Небольшое продолжение. Времени немного было этим заниматься.

Я поставил после СД один фильтр ФНЧ, но у меня возникли некоторые проблемы с его синхронизацией. По документации некоторые таймеры (TIM9, TIM10, TIM11) можно запитать от внутреннего низкочачастотного кварцевого генератора (32768 Гц). Что-то у мене не полюсилось как хотелось. Завтра высплюсь, посмотрю документацию поподробнее.

Отступление: В этом процессоре 5 (пять!) разных генераторов. Надеюсь, ничего не пропустил. У меня активно истользуются три. Кварцевый 8 мГц питает процессор через внутренний умножитель x4. Т.е. получается 32 мГц. RC генератор на 16 мГц питает АЦП, а ещё один кварцевый 32768 Гц питает внутренние часы реального времени и мой ФНЧ с частотой среза 10 Гц.

Фильтр пока поставил КИХ, Беселя, 4-го порядка, 13 звеньев (+/-6 и один центральный). Завёл его временно от другого источника синхронизации, чтобы просто посмотреть, что там есть.
Вывел в условно-реальном времени (т.е. как быстро, как только можно) данные на дисплей.

Почти убрал напряжение на катушке, поэтому, на входе практически ничего нет. Сагнал осциллографом почти не просматривается. Всё тонет в шуме, но на входе СД (input) присутствует довольно стабильный сигнал. Цифры меняются лишь плюс/минус несколько единиц, но иногда проскакивают отдельные помехи. У меня там заложено простейшее сглаживание. Оно пока не используется. Мы с Andrew2 об этом говорили. Неплохо было бы поставить какое-нибудь статистическое сглаживание, но это как вариант улучшения на будущее. сначала надо посмотреть что будет в этом виде.
Если покрутить мои настройки начального сдвига фазы, то квадратуры довольно уверенно меняют знак. Сейчас я их обе загнал в минус но, если фазу двигать вперёд, то квадратуры уверенно изменяются и меняют знак. Примерно, так:
sin cos
- -/+ не засёк
- +
-/+ + 10.5 град
+ +
+ +/- 40.5 град
+ -
+/- - 82.5 град
- -
- -/+ 154 град
Причём, по градусом точность до десятой по моменту переключения при движении в одну и другую сторону.

Вложение:
sd_lp.png


P.S. Это не претензия на серьёзное тестирование. Просто надо было чем-то закончить вечер.

P.S.2. Ещё на свою беду захотел немножко переделать буферезацию и утопить сколько можно в DMA. Потерял массу времени, но запустить DMA от счётчика так и не смог. :( Теперь все не так и не сяк. Будем думать.

P.S. Пока подключал ключи, развёл кучу соплей. Оставлять так опасно и неудобно. Придётся всё причёсывать. Лениво...


У вас нет необходимых прав для просмотра вложений в этом сообщении.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Пн: 04 фев 2013 11:52 
Не в сети
Аватара пользователя

Зарегистрирован: Вт: 15 ноя 2005 14:26
Сообщения: 8764
Откуда: Кыев- Азагарий
Подскажите, зачем фильтр ФНЧ10Гц? :shock:

_________________
"Сколько можно заниматься полупроводниками?! Пора заняться проводниками в целом..."


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Пн: 04 фев 2013 12:17 
Не в сети

Зарегистрирован: Вт: 27 ноя 2012 6:13
Сообщения: 271
Откуда: Redmond(Seattle), US
Ciklon писал(а):
Подскажите, зачем фильтр ФНЧ10Гц? :shock:

Сейчас уже позно. Завтра постараюсь дать с сылки на материалы, где народ рекоммендует 10 Гц и что-то типа того.
Есть другие предложения?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Пн: 04 фев 2013 20:14 
Не в сети

Зарегистрирован: Вт: 27 ноя 2012 6:13
Сообщения: 271
Откуда: Redmond(Seattle), US
Вот извесрный Фазитрон: http://phazitron.narod.ru/article/schmd.htm
Вот ещё? http://www.geotech1.com/forums/showthre ... ct-Part-19 (7.5 Hz)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Пн: 04 фев 2013 20:48 
Не в сети
Аватара пользователя

Зарегистрирован: Вт: 15 ноя 2005 14:26
Сообщения: 8764
Откуда: Кыев- Азагарий
Чтобы эти все идеи применить, нужно все поделить пополам и отнять 40% Тогда оставшееся можно приложить к тем которые есть в задумке от начала и до конца. От датчика до индикации. Что будет лежать в основе работы МД, в этом суть. От этого проистекают фильтры, срезы, частоты и т.п. Те идеи- это часное мнение часных лиц по какому то поводу. Но мнений много, а идея должна быть одна. А еще на сайтах пишут умные слова но ерунду однако. Кто не понимает, восхищается. на самом деле это лиш мнение.

_________________
"Сколько можно заниматься полупроводниками?! Пора заняться проводниками в целом..."


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 306 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 13  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти: