|
Cortex-M7 кол-во циклов на инструкцию |
|
|
|
 |
Ответов
|
May 3 2017, 16:12
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(jcxz @ May 3 2017, 16:44)  Это работает так: Да, у Вас получается вариант регулирования с обратной связью, у меня вариант прямого регулирования. Цитата Если частоты генераторов различаются в ту или иную сторону, то этот уровень загрузки будет постепенно смещаться в сторону участка A или C (тоже с биениями) и в конце-концов - залезет в A или C, где и устаканится на некотором значении (будет болтаться возле него), до тех пор, пока разница частот не изменится (например из-за влияния температур на генераторы) и тогда может поползти в обратную сторону. Т.е. реализован обычный пропорциональный регулятор с ОС и зоной нечувствительности. А почему интегратор не добавили? Логично добавить интегратор, чтобы система стала астатической. Тогда после коррекции буфер возвратится на участок В (может правда интегрирование есть, но я не понял этого из описания). С одной стороны, при высокой долговременной стабильности генераторов зона нечувствительности это плюс, но как только мы начинаем "плыть", она становится минусом, т.к. без нее корректировка начнется раньше и будет проходить "плавнее" = с меньшей модуляцией основного сигнала, а с таким алгоритмом чем быстрее уплывает частота, тем агрессивнее коррекция, что при высокой скорости уплывания опять становится плюсом  . Интересно посмотреть, как это выглядит при объективном контроле - Вы случайно не делали замеров типа спектров, как я выше выкладывал?
|
|
|
|
|
May 4 2017, 08:27
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Шаманъ @ May 3 2017, 18:12)  А почему интегратор не добавили? Логично добавить интегратор, чтобы система стала астатической. Тогда после коррекции буфер возвратится на участок В (может правда интегрирование есть, но я не понял этого из описания). А зачем интегратор? Участки A и C сами по себе являются интеграторами, точнее - их длина. Если нужна большая "интегрируемость", то увеличиваем размер этих участков (они становятся более пологими) и всё. И нет - указатель буфера не должен возвращаться на участок B, если между генераторами есть постоянная разница частот (в несколько ppm например из-за их погрешности). Он должен находиться на участке A или C, на некотором удалении от его границы с B. Величина этого удаления как раз и определяется разностью частот. Если разность частот постоянна - он как раз и будет стабильно находиться в той точке, внося свой дополнительный вклад в произведение коэффициентов ресэмплинга. Ну т.е. в реале из-за джиттера он конечно не находится всё время в одной точке, а колеблется около неё. Нужен больший интервал интегрирования - просто увеличиваем размеры участков A и C, делаем их более пологими, можно вообще размер участка B свести к 0 даже. Можно обойтись вообще без участка B, но у меня характер потока такой, что при старте онлайн-радиостанции выплёвывают сразу бОльший объём траффика чем соответствует битрейту. Т.е. - воспроизведение стартует как бы из прошлого на несколько секунд. Радиостанция таким образом как я понимаю обеспечивает пребуферизацию, чтобы не было провалов воспроизведения. Но размер этой пребуферизации у каждой радиостанции свой и заранее не известен. Поэтому, чтобы у меня сразу при старте воспроизведения, не уходил поток в зону ресэмплинга, я и ввёл участок B. Его размер я выбрал экспериментально - пробовал с разными радиостанциями и постарался чтобы все они при старте своей пребуферизацией не вылезали за пределы участка B. Цитата(Шаманъ @ May 3 2017, 18:12)  С одной стороны, при высокой долговременной стабильности генераторов зона нечувствительности это плюс, но как только мы начинаем "плыть", она становится минусом, т.к. без нее корректировка начнется раньше и будет проходить "плавнее" Эта зона у меня выбрана такой большой именно из-за необходимости пропустить пребуферизацию онлайн-радиостанций. И скоростью потока данных от радиостанции я не могу управлять (WiFi-модуль не предоставляет средств управления потоком, типа окна в TCP-сокете). Цитата(Шаманъ @ May 3 2017, 18:12)  Интересно посмотреть, как это выглядит при объективном контроле - Вы случайно не делали замеров типа спектров, как я выше выкладывал? Нет. Да мне не особо интересно какой там спектр. На слух в сигнале не ощущается каких-то искажений - и ладно, так как только это и нужно.  Вот когда в потоке идут большие провалы (бывает некоторые радиостанции изредка приостанавливают поток на неск. секунд, а может и не радиостанции, а что-нить по WiFi), то указатель буфера смещается на участок A и это слышно сразу искажением звуковых частот и замедлением. А потом, когда эта пробка прочищается - наоборот - происходит выброс большого объёма данных и может улететь на участок C (но не всегда как раз из-за размера участка  .
|
|
|
|
|
May 4 2017, 14:03
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(jcxz @ May 4 2017, 11:27)  А зачем интегратор? Если посмотреть на проблему "под другим углом", а именно установить конечную цель/критерий работы алгоритма определения соотношения частот поддержание оптимального заполнения буфера (50%), то без интегратора получится статическая САУ. Т.е. заполненность буфера будет определяться соотношением частот источника/приемника. При наличии интегратора САУ приобретет астатизм первого порядка, т.е. ошибка при наличии статичного расхождения частот будет равна 0. Я вчера поэкспериментировал с этим алгоритмом - работает и как у Вас, и с интегратором. Есть некоторые нюансы, как у любой замкнутой САУ, но то такое. Насчет джиттера - в конечном итоге, как ни крути, хоть с прямым управлением, хоть с ОС все определяет фильтр, которым усредняется коэффициент ресемплинга (что неудивительно - ведь фактически через этот коэффициент осуществляется ЧМ)  Но с прямым замером можно обойтись менее агрессивной фильтрацией, ускорить реакцию системы и уменьшить размер буфера/задержу при одинаковом джиттере, т.к. точность и разрешающая способность единичного замера намного выше. Кроме того данные синхронизации доступны при отключенном аудиоустройстве. Для моего применения все это весьма существенно. Сейчас сделал с замером периодов USB SOF и SAI FS двумя таймерами, потом деление и ФНЧ первого порядка => коэффициент ресэмплинга. Заполняемость буфера "гуляет" от 77 до 81 сэмплов. Учитывая обработку блоками по 4 сэмпла можно сказать, что буфер стоит на месте (как и должно быть)  - можно его раза в четыре меньше сделать. Немного напрягают меня палки на спектре (в сравнении с матлабовской моделью), скорее всего это ошибки округления, ну или я где-то налажал в фильтре  - надо будет поразбираться. А так, вот пример уже вместе с ДСП, с синхронизацией от его клока:
|
|
|
|
Сообщений в этой теме
Шаманъ Cortex-M7 кол-во циклов на инструкцию Apr 28 2017, 08:04 Obam В TechRefMan-е на M7 раздела "Instruction Tim... Apr 28 2017, 08:45 =SSN= Цитата(Шаманъ @ Apr 28 2017, 11:04) А ест... Apr 28 2017, 08:59 Шаманъ Цитата(Obam @ Apr 28 2017, 11:45) но есть... Apr 28 2017, 10:36 jcxz Цитата(Шаманъ @ Apr 28 2017, 12:36) Похож... Apr 28 2017, 10:41 Obam Цитата(Шаманъ @ Apr 28 2017, 14:36) Так д... Apr 28 2017, 11:00  jcxz Цитата(Obam @ Apr 28 2017, 13:00) Ну сами... Apr 28 2017, 11:46 Шаманъ Цитата(jcxz @ Apr 28 2017, 13:41) ...если... Apr 28 2017, 11:47 Obam Цитата(Шаманъ @ Apr 28 2017, 15:47) Я ж п... Apr 28 2017, 12:13 jcxz Цитата(Шаманъ @ Apr 28 2017, 13:47) В том... Apr 28 2017, 20:03  Obam Цитата(jcxz @ Apr 29 2017, 00:03) Везёт В... Apr 29 2017, 10:05   jcxz Цитата(Obam @ Apr 29 2017, 12:05) И кто ж... Apr 29 2017, 10:33   adnega Цитата(Obam @ Apr 29 2017, 13:05) И кто ж... Apr 29 2017, 10:34    jcxz Цитата(adnega @ Apr 29 2017, 12:34) В нек... Apr 29 2017, 10:39    Obam Цитата(adnega @ Apr 29 2017, 14:34) В нек... Apr 29 2017, 14:39     adnega Цитата(Obam @ Apr 29 2017, 17:39) А в как... Apr 29 2017, 16:47     jcxz Цитата(Obam @ Apr 29 2017, 16:39) А в как... Apr 29 2017, 20:30      Obam Цитата(jcxz @ Apr 30 2017, 00:30) Что за ... Apr 30 2017, 08:07       adnega Цитата(Obam @ Apr 30 2017, 11:07) а оказы... Apr 30 2017, 09:20 scifi Цитата(Шаманъ @ Apr 28 2017, 13:36) Похож... Apr 28 2017, 13:14 Шаманъ Цитата(scifi @ Apr 28 2017, 16:14) Разреш... Apr 28 2017, 13:41 romas2010 По хорошему надо бы ввести в архитектуру банки рег... Apr 28 2017, 14:51 jcxz Цитата(romas2010 @ Apr 28 2017, 16:51) По... Apr 28 2017, 15:51 Шаманъ Народ, а есть ли какие-нить вменяемые benchmarks п... Apr 28 2017, 17:06 ViKo Обычно было 2 bitband зоны - для переменных в ОЗУ ... Apr 30 2017, 08:39 jcxz Цитата(ViKo @ Apr 30 2017, 10:39) Обычно ... Apr 30 2017, 11:53 Obam Код кроме ядра некому исполнять (; и наличие возмо... Apr 30 2017, 11:36 Шаманъ Сваял ASRC, получилось примерно 4 такта на тап или... May 1 2017, 03:48 scifi Цитата(Шаманъ @ May 1 2017, 06:48) DWT по... May 1 2017, 07:12  Шаманъ Цитата(scifi @ May 1 2017, 10:12) Если по... May 1 2017, 14:08 ig_z QUOTE (Шаманъ @ May 1 2017, 06:48) Сваял ... May 1 2017, 15:08 Genadi Zawidowski У меня перенос части кода в itcm дал устойчивый пр... May 1 2017, 16:51 Шаманъ Цитата(ig_z @ May 1 2017, 18:08) А зачем ... May 1 2017, 19:02 ig_z QUOTE (Genadi Zawidowski @ May 1 2017, 19... May 1 2017, 20:00 KnightIgor Цитата(ig_z @ May 1 2017, 21:00) Это коне... May 2 2017, 13:21 Genadi Zawidowski ЦитатаПоэтому, если у вас есть пример, как воспрои... May 1 2017, 20:26 jcxz Цитата(Genadi Zawidowski @ May 1 2017, 22... May 2 2017, 12:29  Шаманъ Цитата(jcxz @ May 2 2017, 15:29) Как я по... May 2 2017, 12:45   jcxz Цитата(Шаманъ @ May 2 2017, 14:45) DSP пр... May 2 2017, 13:44    Шаманъ Цитата(jcxz @ May 2 2017, 16:44) Так ведь... May 3 2017, 07:01 Шаманъ Цитата(ig_z @ May 1 2017, 23:00) Я постоя... May 2 2017, 12:07 Genadi Zawidowski ЦитатаИ почему Вы сделали выкидывание/добавление с... May 2 2017, 22:09 jcxz Цитата(Genadi Zawidowski @ May 3 2017, 00... May 3 2017, 08:50  Шаманъ Цитата(jcxz @ May 3 2017, 11:50) Имхо - у... May 3 2017, 11:56   jcxz Цитата(Шаманъ @ May 3 2017, 13:56) Теперь... May 3 2017, 12:13    Шаманъ Цитата(jcxz @ May 3 2017, 15:13) А что-ж ... May 3 2017, 12:38     jcxz Цитата(Шаманъ @ May 3 2017, 14:38) Приспо... May 3 2017, 12:44      Шаманъ Цитата(jcxz @ May 3 2017, 15:44) отдавать... May 3 2017, 13:03       jcxz Цитата(Шаманъ @ May 3 2017, 15:03) А как ... May 3 2017, 13:44 Genadi Zawidowski Можно ли наплевать на спектральные "прострелы... May 3 2017, 07:42 Шаманъ Цитата(Genadi Zawidowski @ May 3 2017, 10... May 3 2017, 08:19 Шаманъ Цитата(Genadi Zawidowski @ May 3 2017, 10... May 3 2017, 09:08 Шаманъ Ну вот, палки поборол тоже Как и предполагал прич... May 5 2017, 09:47
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|