Jump to content

    

Grizzly

Свой
  • Content Count

    798
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Grizzly

  • Rank
    Знающий

Recent Profile Visitors

6434 profile views
  1. А компилятор заменили на armclang в настройках? P.S. Возможно, тулчейн будет в ARM DS. Я пользуюсь gnu make для сборки и самими исполняемыми файлами тулчейна, IDE - Qt Creator, поэтому не могу подсказать, как в Keil можно выбрать другой тулчейн.
  2. Несущая вам должна быть известно точно. Под "примерно" можно списать нестабильность генератора. А вот по фазе вопрос. У вас какой номинал несущей и расстояние, что фазу можете заранее предсказать без синхронизации? Так-то вы все верно делаете. Непонятно, что вы подразумеваете под затухающим характером? Неужели за время длительности метки ее уровень так сильно меняется от начала и до конца?
  3. Он только C++11 поддерживает. Переходите с armcc на armclang, если ваш девайс не совсем древний (иначе не будет поддержки со стороны toolchain). https://developer.arm.com/docs/100067/latest/Armclang-command-line-options/-std
  4. Скотт Мейерс — Эффективный и современный С++. 42 рекомендации по использованию C++11 и C++14
  5. Для ряда задач SDR хватает. Получается быстрее разрабатывать и проще поддерживать по сравнению с ПЛИС.
  6. Эти грабли, оказывается, тоже описаны как лет 10 тому назад: http://e2e.ti.com/support/processors/f/791/t/12524?C6000-compiler-suppport-for-complex-h Надо, конечно, попробовать на последнем компиляторе из 8.3.х, но вряд ли изменится поведении.
  7. Угу. Но вот всё равно пока не верится, что WiFi 20 МГц с MIMO удастся на одном ядре запустить. Спасибо. Попробую. Уже почти добился реалтайма, осталось чуть-чуть. Вдруг это тоже поможет.
  8. Для AWGN ничего не должно измениться. Шум ведь одинаков будет для разных подканалов. Или имеется в виду тот факт, что на 11-13 ГГц сигнал быстрее затухает?
  9. Не сказал сразу, что для ряда заказчиков проект должен работать на ПК. Это была основная причина для сохранения единой кодовой базы, которая должна работать за разумное время и на обычном компьютере. Походу пора разъезжаться :)
  10. Я сам стараюсь на ПК писать на C как можно ближе к сигнальникам алгоритмы ЦОС и ЦС. До этого хватало быстродействия, поэтому не приходилось оптимизировать. Сейчас передо мной задача добиться реал-тайма от кода, который вообще на плюсах написан + с динамическим выделением памяти. Приходится использовать самописный аллокатор для размещения объектов в глобальной памяти, выкашивать либы Фурье общего назначения и т.д. и т.п. Поэтому про эмуляцию интринсиков спрашивал. Хочу, чтобы автор алгоритмов проверил, достаточно ли точности и адекватность замены некоторых алгоритмов. Теперь сомневаюсь, что овчинка выделки стоила. Код написан для fixed-point, но в нем много long long. Оптимальные сетки не считались. Сегодня попрофилировал Фурье из DSPLib. Для 1024 отсчетов float и int показали практически идентичные результаты. Более того, инструкции 1/x нет для целочисленных типов. Приходится на время ко float приводить, а затем обратно.
  11. Малой кровью хотелось обойтись, но приходится рефакторить код. Без различных оптимизаций он красивее выглядел. Хотелось бы под #ifdef сохранить общую кодовую базу.
  12. Кстати, а это ожидаемое поведение, что при обращении полям структуры код замедляется раз в 6 по сравнению с доступом к ним как к массиву. То есть если я к массиву структур с I и Q обращаюсь не как samples.I и samples.Q, а бегу указателем на int16_t, то вижу большой прирост. Да, #pragma pack есть, чтобы дырки не было. Возможно, кстати это из-за запаковки и есть проигрыш... Такая часть кода пришла для адаптации под DSP. Но ведь указатель тоже бежит по запакованным по сути данным . Непонятно. UPD. Ну, получается, что к членам структуры идет обращение как к volatile. Приходится постоянно вычислять адреса до элементов.
  13. Круто! Да, жуткий код :) По тому, что на форуме тексаса было написано, я бы всю реализацию и близко не сделал.
  14. Спасибо! Я уже несколько лет на Linux работаю, поэтому не знал о таком продукте. Сейчас в виртуалке запущу.
  15. Вы имеете в виду выход декодера при итерационных алгоритмах декодирования?