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

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

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

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




Начать новую тему Ответить на тему
 [ Сообщений: 306 ]  На страницу Пред.  1 ... 8, 9, 10, 11, 12, 13  След.
Автор Сообщение
 Заголовок сообщения: Re: Игрушка на STM32L-Discovery
СообщениеДобавлено: Пн: 25 фев 2013 21:42 
Не в сети

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

Что касательно критерия, я Вам расскажу, что я имел в виду. Если хотите, можете что-то ответить и на этом давайте закончим, если у Вас нет других вопросов.
Sergey_P писал(а):
Privet писал(а):
не могу вытянуть хотя бы критерия оптимальности ... фильтра
1) синхронизация фаз сигнала ТХ и образцового (опорного) сигнала в приемнике
2) АЧХ фильтра приближена к спектральной плотности принимаемого сигнала
3) наличие квадратурных каналов в приемнике
Эти условия позволяют без искажений определять амплитуду и фазу относительно ТХ откликов от целей на интервале накопления Т.

Вы опять не о том. Оптимизация в каком-то смысле означает определение условий, при котором какой-то параметр или группа параметров имеют наилучшее или близкое к ним значение. "2) АЧХ фильтра приближена к спектральной плотности принимаемого сигнала" - это не критерий. Это условие. Это условие, вероятно получено в результате процесса некой "многокритериальной оптимизации", как пишут в статьях, претендующих на научные. Например, популярна оптимизация по минимуму среднеквадратичного отклонения. Берут соответствующее выражение и считают передаточную функцию фильтра, при котором эта величина минимальна. Я не просил точное математическое обоснование. Я просил назвать только критерий.


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


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

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

Попробую сверх-кратко.
МД по сути это приёмник. В теории приёмников есть такие понятия, как корреляционний приёмник (КП). Это приёмник, который принимает определённый сигнал с наилучшим отношением сигнал/шум (в одном из своих постов я, извиняюсь, оговорился и назвал его когерентным приёмником). КП это последовательно соединённые согласованный (оптимальный) фильтр и интегратор. Интервал накопления это, грубо говоря, длительность сигнала.

Sergey_P определил свой фильтр как согласованный (оптимальный). Реализация такого приёмника - интереснейшая задача, т.к. это путь к созданию МД, который выдаёт самый вероятный результат. На такое не жалко потратить время.
Увы, как выяснилось, предлагаемое устройство оптимально в каком-то другом смысле.

Я потом дополню это сообщение деталями. Ивиняюсь... время...

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

Теперь взглянем на МД его потроха.
СД это почти готовый коррелятор. Если его выход пронормировать, без всяких фильтров получается один в один коррелляционный приёмник... для чистого, немодулированного по фазе сигнала, который в идеализированном случае равен нулю. :)


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

Зарегистрирован: Вс: 16 дек 2007 12:30
Сообщения: 591
Откуда: Херсон, Украина
А какая конечная цель этого проекта?


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

Зарегистрирован: Вт: 27 ноя 2012 6:13
Сообщения: 271
Откуда: Redmond(Seattle), US
ewstep писал(а):
А какая конечная цель этого проекта?

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


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

Зарегистрирован: Сб: 21 ноя 2009 12:10
Сообщения: 2697
Откуда: Новосибирск
Privet писал(а):
Я просил назвать только критерий.
Критерий оптимальности выбранной реализации:
SNRвых/SNRвх => max
Вот, по этому критерию и стоит оценивать как работает собранное устройство... только, шум желательно выбирать "белый"...
Privet писал(а):
и на этом давайте закончим, если у Вас нет других вопросов
:D согласен, т.к. вопросов по работе этого узла у меня и не было, были вопросы по обоснованности выбранных методов :)


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

Зарегистрирован: Вс: 23 май 2010 10:48
Сообщения: 2486
Откуда: администрация и модераторы-тупицы и дебилы
У меня другое представление об оптимальном и о корреляционном приёмнике, и о когерентных системах... и распознавании образов...
В качестве простого объяснения википедия - http://ru.wikipedia.org/wiki/%D0%9E%D0% ... 0%BE%D0%B2

И ещё...и ещё... http://www.phys.spbu.ru/library/student ... /add3.html

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


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

Зарегистрирован: Вс: 23 май 2010 10:48
Сообщения: 2486
Откуда: администрация и модераторы-тупицы и дебилы
Даавно известное - "...Поэтому единственной возможностью увеличения вероятности правильного обнаружения цели остаётся повышение отношения сигнал /шум на входе порогового устройства , т. е. на выходе линейного тракта приёмного устройства. ..."
Из http://www.phys.spbu.ru/library/student ... h/chapter7
Ну, это чисто начальный уровень... Но есть другие системы обмена...

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


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

Зарегистрирован: Сб: 21 ноя 2009 12:10
Сообщения: 2697
Откуда: Новосибирск
Вадим писал(а):
Смысл всех этих манипуляций с различными техническими решениями заключается в простом: получить полезный сигнал по уровню больше, чем уровень шумов, чтобы пороговое устройство смогло его зафиксировать.
Можно, за короткое время долбануть мощой по цели и получить от неё отклик с уровнем превышающим шум… либо, скрупулезно накапливать ту же самую энергию откликов в течении длительного времени, облучая её каким-нибудь хилым источником энергии. При одном и том же выходном эффекте (SNR – отношение сигнал/шум) имеем различную техническую реализацию и экономические затраты…, но если только окружающая среда распространения сигналов остается линейной.
Для МД:
- условие линейности среды - не соблюдается
- имеем ограничение времени накопления

Что там можно ещё придумать для увеличения SNR? Ах, да, расширить полосу передаваемого сигнала (увеличить спектральную плотность передаваемой энергии за единицу времени), например введением многочастотности.
(для данной игрушки не предлагаю… ещё, рановато :) )


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

Зарегистрирован: Вс: 23 май 2010 10:48
Сообщения: 2486
Откуда: администрация и модераторы-тупицы и дебилы
По поводу накопления, АЦП и некоторых других затронутых вопросов есть в пункте 4.5.3 http://www.phys.spbu.ru/library/student ... evich.html
По поводу темы - что-то не увидел конкретных результатов по дальности - что нужно улучшать, - может там уже 70 см на монету??? :) А мы тут ...
По поводу темы - в аналоговом приборе относительно легко достигается гораздо бОльшая дальность обнаружения - вот и все предложения для начала.

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


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

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

Глобус у Вас тоже другой?... :)

Вадим писал(а):
...По поводу темы - что-то не увидел конкретных результатов по дальности - что нужно улучшать, - может там уже 70 см на монету??? :) А мы тут ...

И действительно... Что Вы тут? Проект Вас не интересует. Что я делаю - тем более. Ни одного конкретного совета или комментария я от Вас не услышал. Задаёте вопросы, но ответы знаете сами... на уровне Википедии. :) Как дело хоть немного касается конкретики, так Вы сразу исчезаете, но если погундеть не вдаваясь в подробности - это не так, да это давно известно... , то Вы первый.
Так, что Вы тут?


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

Зарегистрирован: Вс: 06 ноя 2005 11:17
Сообщения: 4527
Откуда: С.-Петербург
Давайте лучше обсудим что-нибудь более приземлённое, чем проблемы космического масштаба... :)
Например. В данном случае есть цифровое интегрирование (накопление) результатов, а затем фильтрация. Можно накапливать "по малу" отсчётов, тогда придётся часто запускать фильтр. Можно накапливать "по многу", тогда фильтр будет работать редко. Интуитивно понятно, что первый вариант лучше. В пределе мы имеем фильтрацию каждого отсчёта индивидуально для первого варианта (контроллер "ляжет") и отсутствие фильтрации (только интегрирование) для второго варианта. Как количественно оценить выигрыш от того или иного соотношения ?


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

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

Зарегистрирован: Сб: 21 ноя 2009 12:10
Сообщения: 2697
Откуда: Новосибирск
Вадим писал(а):
что нужно улучшать, - может там уже 70 см на монету??? :) А мы тут ...
конечно же улучшать SNR. Для того, чтобы увеличить воздушную дальность в 2 раза, нужно увеличить SNR в 64 раза (2^6). Чем вы это будете добиваться, это уже ваше техническое решение. Только, цели почему-то желают находить в земле, а не болтающиеся в воздухе без каких-либо мешающих предметов в ближайшем окружении :)


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

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

Мне кажется, должно быть примерно одинаково. Если итоговые характеристики системы одинаковы, то и результат должен быть одинаков. Правда, может оказать влияние особенность реализации. Это уже предусмотреть трудно.

Я сначала перемножал ев sin/cos в каждом Tx интервале. Потом упёрся в быстродействие и сейчас накапливаю массив усреднённых отсчётов, а перемножаю и вызываю фильтр в одном месте с частотой 60 Гц.


Последний раз редактировалось Privet Ср: 27 фев 2013 15:52, всего редактировалось 1 раз.

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

Зарегистрирован: Сб: 21 ноя 2009 12:10
Сообщения: 2697
Откуда: Новосибирск
Тут, основные положения оптимальности для обнаружения гармонического сигнала:
http://www.phys.spbu.ru/library/student ... pter4.html
Перемножение на синусоидальный опорный сигнал формирует свертку спектра входного сигнала в точке соответствующей частоте опорного сигнала. При сокращении количества выборок участвующих в накоплении – расширяется спектр входных сигналов, участвующих в формировании выходного сигнала накопителя. Если же еще и оконная функция отсутствует (прямоугольная огибающая), то последующий фильтр должен будет давить значительно больший сигнал, т.к. спектральные хвосты от прямоугольной огибающей составляют примерно 9% от коэффициента передачи на основной частоте.
Но, всё это малоэффективно для подавления шумов и помех, если не решен основной вопрос с аналоговым антиалиасинговым фильтром перед АЦП, т.к. уже на этапе оцифровки происходит перемешивание спектральных составляющих шумовой/помеховой составляющих и полезного сигнала… и никакой цифровой обработкой их от туда не выковырять… при этом нарушается соответствие полосы фильтра и спектральной ширины входного сигнала...


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

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

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

Минимизировать SNR можно 1) для всего сигнала в целом, например, по минимуму среднеквадратичного отклонения (предлагаемый Вами фильтр является попыткой реализовать именно такой метод, на такой же метод дал ссылку Вадим), а можно оптимизировать SNR только 2) для одной временной точки, в которой все гармонические составляющие входного сигнала сойдутся в одной фазе. Это уже будет корреляционный фильтр. Об этом говорится в статье, на которую Вы дали ссылку. Этот же критерий Вы пытались сформулировать для Вашей системы, но в лучшем случае это будет вариант 1, что тоже не так уж плохо.

Накопление отсчётов и последующая фильтрация, которая тоже по сути является интегрированием, это всё является улучшение общего SNR (1). Для того, чтобы улучшить SNR для конкретного отклика (2) от цели надо (чисто по теории), например, считать корреляцию формы этого отклика с каждым из ожидаемых откликов и потом выбирать максимальный результат.
Ничего нового в этом нет. Об этом говорилось и на этом форуме. Я лишь пытаюсь это выразить как можно проще, чтобы из сказанного была понятна реализация.


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

Зарегистрирован: Сб: 21 ноя 2009 12:10
Сообщения: 2697
Откуда: Новосибирск
Строить систему для определения корреляционного максимума во временной точке в применении для МД – нет необходимости. Такие системы строил для выполнения синхронизации устройств по времени начала работы, выделения отражений от неоднородностей по трассе распространения сигналов и их положении во времени. Для этого сам сигнал дополнительно кодировался и расширялась его база, если это позволяла система. Перед МД таких задач не ставится, наоборот, стоит задача определить степень расхождения принятого сигнала отклика по фазе, от фиксированных координат, привязанных к ТХ… но при этом необходимо обеспечить все признаки оптимального приема.


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

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

Суждение спорное, но... тем не менее, Вы сами определили максимум суммы для всех гармоник в момент t0. Приводить Вашу цитату в четвёртый (если не ошибаюсь, а то я уже счёт потерял) раз я не буду.


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

Зарегистрирован: Вт: 27 ноя 2012 6:13
Сообщения: 271
Откуда: Redmond(Seattle), US
Andy_F, я, глядя на Ваш код, переделал свой.
Частота Tx - 6000 Гц.
Частота вызова фильтра 60 Гц.

длина DMA может меняться В процессе настройки кода.
При увеличении длины буфера уменьшается число вызовов DMA1_Channel1_IRQHandle.
Таким образом, уменьшается частота переключения контекста при запуске прерывания.

Раньше я множил входной сигнал на sin/cos на каждом периоде Tx и накапливал только квадратуры.
Разницы не заменил.
Вообще, надо бы попробовать сравнить результаты в примерно одинаковых условиях.

Код:
//  SMPS_PER_TX      - Num. samples per Tx period        (16) for now
//  SMPS_PER_TX_HLF  - Half  of SMPS_PER_TX
//  SMPS_PER_TX_QUOT - Quote of SMPS_PER_TX
//  NUM_TX_PER_DMA   - Num. Tx periods per one ADC_DMA   (1)  for now may be {1,2,4,5,... 100}

void DMA1_Channel1_IRQHandler(void)
{
  uint32_t IT;
  uint32_t i, idx_bgn;
 
  if (DMA_GetITStatus(ADC_DMA_HT) != RESET)
  {
    IT = ADC_DMA_HT;
    idx_bgn = 0;
  }
  else if (DMA_GetITStatus(ADC_DMA_TC) != RESET)
  {   
    IT = ADC_DMA_TC;
    idx_bgn = SMPS_PER_TX * NUM_TX_PER_DMA;
  }
   
  if(++tx_count < tx_per_sd)
  {   
#if NUM_TX_PER_DMA != 1
    uint32_t j;
    for(j=0; j<NUM_TX_PER_DMA; ++j)
#endif
    {
      for(i=0; i<SMPS_PER_TX; ++i)
      {
#if NUM_TX_PER_DMA != 1
        adc[i] += (int32_t)input[idx_bgn+j*SMPS_PER_TX+i];
#else
        adc[i] += (int32_t)input[idx_bgn+i];
#endif
      }
    }
  }
//  DMA_ClearITPendingBit(IT);
  DMA1->IFCR = IT;
}


void TIM9_IRQHandler (void)
{
  // Circular buffers for filters
  static int32_t  sin_filter_taps[13] = {0};
  static int32_t  cos_filter_taps[13] = {0};
  static uint32_t sin_idx = 0;
  static uint32_t cos_idx = 0;
 
  if((TIM9->DIER & TIM_IT_CC1) && (TIM9->SR & TIM_IT_CC1))
  {
    int i;
    counted_tx = tx_count;
    tx_count = 0;
    if(tx_per_sd && counted_tx != tx_per_sd)
      mderror = TX_PER_SD_ERROR;

    memcpy(&adc[0], &adc1[0], sizeof(int32_t)*SMPS_PER_TX);

// Sic! Начинаю с 1. Пропускаю точки, которые равны 0 или 1. Таблицы sin/cos я переделал. См. ниже.
// Перемножение c sin/cos происходит там же, где вызывается фильтр
    for (i=1; i<SMPS_PER_TX_QUOT; ++i)
    {
      quad_sin = sum_int32(mul_int64_sh(
                                    adc1[i]
                                  + adc1[SMPS_PER_TX_HLF-i]
                                  - adc1[SMPS_PER_TX_HLF+i]
                                  - adc1[SMPS_PER_TX-i], SINTAB[i], 1<<22, 23),
                          quad_sin);
      quad_cos = sum_int32(mul_int64_sh(
                                    adc1[i]
                                  - adc1[SMPS_PER_TX_HLF-i]
                                  - adc1[SMPS_PER_TX_HLF+i]
                                  + adc1[SMPS_PER_TX-i], SINTAB[i], 1<<22, 23),
                          quad_cos);
    }
   
    quad_sin = sum_int32(
                         adc1[SMPS_PER_TX_QUOT] -
                         adc1[SMPS_PER_TX_3QUOT],
                         quad_sin);
    quad_cos = sum_int32(
                         adc1[0] -
                         adc1[SMPS_PER_TX_HLF],
                         quad_cos);
   
    if(counted_tx == tx_per_sd)
    {                 
      // Low pass filter after SD
      quad_sin_filtered = fir(quad_sin,
                              &sin_idx, &sin_filter_taps[0],
                              &FIRLP_Bessel_19_60_10, 0);
      quad_cos_filtered = fir(quad_cos,
                              &cos_idx, &cos_filter_taps[0],
                              &FIRLP_Bessel_19_60_10, 0);

/************************ STATISTIC ************************/     
// ...
/***********************************************************/
     
      ++sd_count;
    }

    quad_sin = quad_cos = 0;
   
//    TIM_ClearITPendingBit(TIM9, TIM_IT_CC1);
    TIM9->SR = (uint16_t)~TIM_IT_CC1;
  }
}

__INLINE int32_t sum_int32(const int32_t a, const int32_t b)
{
#if defined(_DEBUG) || defined(DEBUG)
         /* a + b would overflow */       /* a + b would underflow */
  if(((a > 0) && (b > INT_MAX - a)) || ((a < 0) && (b < INT_MIN - a)))
  {
    while(bzerror);
  }
#endif
  return (a + b);
}

__INLINE int64_t mul_int64(const int64_t a,
                           const int64_t b)
{
  return (a * b);
}


__INLINE int32_t mul_int64_sh(const int64_t a,
                              const int64_t b,
                              const int64_t roundv,
                              const uint32_t sh)
{
#if defined(_DEBUG) || defined(DEBUG) 
  int64_t tmp = (a * b) >> sh;
 
  if(tmp > INT_MAX || tmp < INT_MIN)
  {
    while(bzerror);
  }
  return (int32_t)tmp;
#else
  return (int32_t)((a * b + roundv) >> sh);
#endif
}


const int64_t sin16bit24[] = {
0,
3210181,
5931641,
7750062,
8388607,
7750062,
5931641,
3210181,
-0,
-3210181,
-5931641,
-7750062,
-8388607,
-7750062,
-5931641,
-3210181
};

const int64_t cos16bit24[] = {
8388607,
7750062,
5931641,
3210181,
-0,
-3210181,
-5931641,
-7750062,
-8388607,
-7750062,
-5931641,
-3210181,
0,
3210181,
5931641,
7750062
}; 



Последний раз редактировалось Privet Ср: 27 фев 2013 20:54, всего редактировалось 2 раз(а).

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

Зарегистрирован: Сб: 21 ноя 2009 12:10
Сообщения: 2697
Откуда: Новосибирск
Privet писал(а):
Вы сами определили максимум суммы для всех гармоник в момент t0
Забыли добавить - полезного сигнала. Еще раз повторю: для комплексных составляющих входного сигнала на выбранных координатах опорного сигнала (квадратурные каналы) фазовая синхронизация - выполняется и все фазы там стоят где надо, т.е совпадают... :)
Да, еще вероятно надо добавить, что для пачки непрерывного гармонического сигнала функция корреляции представляет собой - линейное накопление от нуля до максимума. Единичный максимум автокорреляции обеспечивают только некоторые коды...


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

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

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


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

Зарегистрирован: Вт: 27 ноя 2012 6:13
Сообщения: 271
Откуда: Redmond(Seattle), US
Sergey_P писал(а):
... Забыли добавить - полезного сигнала. Еще раз повторю: для комплексных составляющих входного сигнала на выбранных координатах опорного сигнала (квадратурные каналы) фазовая синхронизация - выполняется и все фазы там стоят где надо, т.е совпадают... :)
...

Sergey_P, я аж поперхнулся..., но доказывать ничего не буду. Совпадают, так совпадают...


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

Зарегистрирован: Вс: 06 ноя 2005 11:17
Сообщения: 4527
Откуда: С.-Петербург
Privet писал(а):
Andy_F, я, глядя на Ваш код, переделал свой.

:) У каждого своё видение.
Думаю, что индексная арифметика замедлит дело, да и синусов-косинусов оригинальных значений всего 4, две таблицы по 16 - излишество.

Но меня интересует не это, а теоретическое обоснование, что вот этот вариант - лучше, а вот этот - хуже, и во сколько раз.

Кстати, есть ещё второй неясный вопрос, который я постеснялся озвучить, т.к. с ним можно разобраться с помощью литературы (только пока нет времени). Все эти игры с цифровым интегрированием представляют из себя, по сути, децимацию. Соответственно, происходит перенос спектра. Что при этом происходит с паразитными каналами приёма ?


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

Зарегистрирован: Вс: 23 май 2010 10:48
Сообщения: 2486
Откуда: администрация и модераторы-тупицы и дебилы
Где тут значок "Иа" ??? :| Мне кажется, что совсем не обязательно это будет децимация. А каналы будут складываться - как основные, так и внеполосные.

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


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

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

:) У каждого своё видение.
Думаю, что индексная арифметика замедлит дело, да и синусов-косинусов оригинальных значений всего 4, две таблицы по 16 - излишество. ...

У меня же программа настраивается на разные частоты. Делать индивидуальный код для каждого варианта не хочется. Если приду к какому-то окончательному решению, то, наверное, также сделаю, если упрусь в ограничение по быстродействию, но на индексах много не выиграть..
Кстати, окончательный вариант удобно настраивать в симуляторе - там показывается сколько тактов длится каждая команда. Отличия от реала всё равно будут, но представление о программе получить можно.

Andy_F писал(а):
...Но меня интересует не это, а теоретическое обоснование, что вот этот вариант - лучше, а вот этот - хуже, и во сколько раз. ...

Своё мнение я написал. В каком порядке интегрировать разницы нет. Это линейная операция. При условии, что сквозная х-ка такая же, результат будет тот же. Т.е. если Вы вызываете фильтр в N раз чаще, то его частота среза (относительно частоты вызова фильтра) должна быть уменьшена в N раз. На этом Вы попадаете в засаду, т.к. чтобы реализовать такие же харакреристики Ваш фильтр должен быть в N каз круче, что, вероятно, поребует увеличения порядка. Если же фильтр останется таким же, то шум будет, очевидно, больше, т.к. его частота среза будет выше.

Andy_F писал(а):
...Кстати, есть ещё второй неясный вопрос, который я постеснялся озвучить, т.к. с ним можно разобраться с помощью литературы (только пока нет времени). Все эти игры с цифровым интегрированием представляют из себя, по сути, децимацию. Соответственно, происходит перенос спектра. Что при этом происходит с паразитными каналами приёма ?

Вопрос не такой простой, как кажется... Я думаю, примерно так:
Допустим, у нас: f - частота несущей, F - частота отсчётов, Ff - частота фильтра. В окрестности f имеем спектр сигнала.
За счет дискретизации имеем каналы в окрестности F+/-f, 2F+/-f и т.д. Значение имеет, наверное, только первый.
Далее пропускаем сигнал через СД, который переносит f в нуль. Я не вижу, чтобы эта операция вносила дополнительные каналы. Далее стоит фильтр, который работает с частотой Ff. Результат СД усредняется на периоде Ff. Фактически, это работает как весьма посредственный сглаживающий (anti-aliasing) фильтр для... фильтра. Я думаю, что, усли Ff выбрана слишком низко, то шум непосредственно за пределами необходимой полосы Ff/2 (в приёмнике я бы сказал помеха по соседнему каналу) может оказаться подавлен недостаточно и наложится на полезный сигнал.


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

Зарегистрирован: Вс: 23 май 2010 10:48
Сообщения: 2486
Откуда: администрация и модераторы-тупицы и дебилы
А по-моему, вопрос очень простой. Какую бы схему обработки не выбрали, всё упирается в уровень помех на входе АЦП. А дальше уже бесполезно что-либо делать. Например, на входе нет сигналов кроме полезного - легко выбираем соотношение частот с требуемым уровнем помехи на выходе. Из-за самой сути цифры, она проиграет аналогу в этих параметрах.
Другой пример - чем больше уровень помех за пределами полезного сигнала и чем шире спектр помехи, тем больше вероятность попадания на выход и сложнее подобрать комбинации частот.

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


Последний раз редактировалось Вадим Чт: 28 фев 2013 18:56, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 306 ]  На страницу Пред.  1 ... 8, 9, 10, 11, 12, 13  След.

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


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

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


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

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