Jump to content

    

Kluwer

Участник
  • Content Count

    310
  • Joined

  • Last visited

Everything posted by Kluwer


  1. Какой БПФ, какие I и Q, вы вообще о чём? Пусть хоть ожидаемое ОСШ для начала назовёт. Раз речь идёт об АМ, то явно ОСШ должно быть дицибелл 20 как минимум. Где это всё работать будет? Если это надо диффпарой на несколько сотен метров передать, то нахрена огород городить - обычный частотомерный способ: мерьте частоты по пересечению уровня и будет вам счастье. С такой задачей даже "восьмерёночек" справится.
  2. Нет. Надо просто в Симулинке открыть подходящую модель и злобно её заюзать. Всё уже придумали до нас, причём по нескольку раз.
  3. Эй, уважаемый, полегче на поворотах! Особенно с фразой " не предназначены для ЦОС". В корне неверная фраза. Докажу в пять минут: вспомните старые добрые АОНы. Ничего, что там выполнялась фильтрация и DTMF-детектирование с помощью алгоритма Гёрцеля пусть и на отсчётах с сильно пониженной разрядностью (вплоть до 1р.). А ваш покорный слуга успешно упихал в ATmega прогу, которая реагировала на хлопок в ладоши (не на любой громкий звук, а именно на хлопок!). И ничего влезло и не плохо работало. Так что не надо маленьких-восьмиразрядненьких обижать. Насчёт "контроллер выбирается под задачу" верно, да не совсем, иначе тоже можно дойти до маразма. Знавал одного знакомого DSP'шника, которому подай обязательно плавающую запятую и программить он готов только с объектами в полном комфорте. В результате у чела ничего не получилось, он уволился, а в хитросплитении его классов мне теперь разбираться приходится :(
  4. Всё правильно, только, как говорится "гладко было на бумаге, да забыли все про баги": ваш способ подойдёт для обработки конечной записи, но тут в любом случае проблем нет. А если у вас работающий в real-time, например, имитатор РЛС-сигнала, как вы интересно будете "рассматривать не как синус 50 Гц с fd=150, а как синус 33,33 Гц с fd=100"? Т.е. вам на вход валятся отсчёты на 150Гц, вы их дробно прорядили, сымитировав допплер, а дальше что? Ваша система ждёт от вас отсчёты с темпом 150 штук в секунду, а у вас их осталось только 100. Можно конечно после этого провести интерполяцию, только - это ещё одна дополнительная операция и ничего, что вы, между прочим, в 1.5 раза ухудшите разрешение вашей системы по частоте? А если ваша система, например, выполняет высокоточную СДЦ и доплеровское разрешение один из параметров в ТЗ?
  5. Да, именно так. Есть куча бездельников, которые называют себя "учёными" и которым на чём-то надо писать дисеертации. Вот они и развлекаются. Особенно это характерно как раз для медицины и смежных профилей. Дальше два способа. Первый: "математический" - это когда либо начинают считать всякие статистики (гистограммы, моменты, кумулянты и т.д. и т.п. у кого на что фантазии хватит), либо натягивают на весь этот колхоз детские игрушки типа нейронных сетей, нечёткой логики и прочей требухи. Второй способ: просмотр сигнала на предмет всяких выбросов, пиков, переодических составляющих и т.д., построение гипотез и проверка их "состоятельности" на подопытных с помощью либимого медиками "хи-квадрат". Вот и всё.
  6. А что, собственно вы хотите проверить? Способ о котором вы говорите именуется обобщённой теоремой Котельникова, когда частота выборки для ограниченного по спектру и сверху и снизу сигнала береётся ниже, чем предписывает обычная теорема Котельникова. Никакой modelsim вам нафиг не нужен, обычного Matlab'а - за глаза и за уши. Не владеете - давно пора познакомиться, коли в DSP полезли. Тут вопрос скорее к вашим аналоговым цепям. Пролезит ли сигнал через АЦП. Ибо если у него Fd = 600КГц, то вполне возможно, что его входной фильтр гарантирует вам только 300КГц, а дальше - на ваш страх и риск. А если вам очень уж хочется весь тракт проверить, ну подайте выход вашего фильтра на ЦАП. На вход - ЛЧМ-генератор, на выход - обычный осцилл (как в институте на лабах :)
  7. Зачёт ребята, дальше можно не читать! А вы, вообще в курсе, что "производная" - это есть вещь, котрую все нормальные специалисты тщательно избегают. А всё потому, что попытка взять дискретную производную резко увеличивает высокочастотные шумы. Так что садитесь за учебники и не позорьтесь.
  8. Ой, господи, здесь вроде все люди образованные, а туда же - в теорию заговора. Ну, наверняка есть там такой ключ. И что дальше? Насчёт закладок, так их ещё, вроде в микросхемах ОЗУ американских находили в 80-е, которые амеры индусам поставляли. С тех пор индусы и перекинулись на нашу технику говорят. Что бы такая закладка сработала - на неё надо как-то сигнал передать. Для этого, как было верно замечено выше, нужна антенна, причём весьма немаленькая. Все микрухи для оборонки проходят сейчас рентген. Там спецы моментально этот подарок увидят. Да и нечего, что обычно военная техника ставится в металлические кожухи в частности как раз для экранировки? А считывать прошивку. Да пожалуйста! И что вы с ней дальше делать будете? Во-первых, это - титанический и бешенно дорогой труд разбирать чужой низкоуровневый код (коим, по-сути, является прошивка). Как показывает практика, стоимость такой работы больше, чем новая разработка. А алгоритмы работы давно все в литературе опубликованы. Яркий пример - ракеты "Стингер". Наши в 80-е, получив их в Афгане, разобрали их до винтика, в том числе и их программный код. И что, сильно это помогло? По-сути, от "Стингеров" нет никакой более-менее серъёзной защиты до сих пор! Хотя примитивный микроконтроллер, который там стоял, едва ворочил совершенно простейший стробовый одношаговый алгоритм сопровождения целей. А то, что те же китайцы просто воспроизведут наш образец техники - ваще смешно. Слить-то они сольют, а что дальше? Нет возможности модифицировать, нет возможности понять, что случилось, когда копия однозначно не заработает. Да и по-моему мы уже настолько деградировали, что уже скоро у них начнём тырить военные разработки, а не они у нас. Польза от этих статей только одна: когда самому надо что-то стырить. Приятель уверял, что таким образом вскрыл код из "мозгов" новых моделей "БМВ". Вот это ценно, а всё остальное - фигня.
  9. Отвественно заявляю: все вышеприведённые ораторы правы. Бытовой GPS, работающий по стандартному коду вам 100% не подойдёт. Похожую проблему решали, только не для людей, а для самолётов (нужно было высокоточно измерять траекторию движения РЛС, установленной на борту). С учётом (наверняка) суровых денежных ограничений, разностные GPS-приёмники, или ГЛОНАСС-приёмники, работающие по ВТ-коду вам не подойдут. Так что, не тратьте время и перходите на другие датчики.
  10. Да что вы парню голову морочите?! Совсем отечественные инженегры отучились внятно элементарные вещи излагать! Всё ж просто: сдвиг сигнала по времени (по св-ву преобразов. Фурье (ПФ) соотвествует просто сдвигу по фазе в спектре. Очевидно, чтобы получить максимальную амплитуду суммарного сигнала, надо что бы они были в фазе и (желательно) минимально различалсиь по амплитудам (ну представьте вы две синусоиды складываете). Ну а для оценки (или подстройки) задержки (с точностью до фазы) и амплитуды есть уева туча методов и их модификаций. А если вдруг возникнет настолько охренительная задержка, что будет превышен межсимвольный интервал, то будут складываться разные символы. Вот и всё.
  11. Был перерыв где-то на месяц в работе с CCS версии 5.0.1.201102161400 с фирменной отладкой под 6670 от горячих техасских ковбоев. В последний раз всё работало. Запускаю - захотел какую-то лицензию, я его нафиг послал (выбрал последний пункт: "без лицензии"). Теперь он даже не собирает проект и кричит, что не может найти какой-то ti.csl. Кто может объяснить в чём дело? Заранее - спасибо.
  12. Правильно, обрезанный убогий моделсим, идущий в нагрузку с Квартусом обсчитывать проекты в верилоге вообще не может. Просто в свойствах проекта поставьте галку, что моделировать будете в вхдл. Должно помочь.
  13. Да а на кой вам этот xilinx'ский blockset сдался. Гоните HDL-код из обычного блока "FIR filter" в Signal Processing (сейчас его в DSP blockset переименовали). Там есть, насколько помню, и галочка типа "загрузка внешних коэффицинтов", т.е. то, что вам надо - перегружаемые коэффициенты фильтра. Кстати сказать, HDL-код этот блок гонит очень хорошего качества с точки зрения оптимизации. Я сравнивал результаты сборки этого кода с тем, что гонит примочка FIR filter в Квартусе. Матлабовский код уступает максимум на 10% по быстродействию и площади. Думаю и в Xilinx то же самое будет.
  14. На самом деле, ко всему надо подходить с головой. Советы типа "и лучше так не делать" ничем, на самом деле, не обоснованны. В старые добрые времена, когда ещё всё собиралось на "рассыпухе" только так и делали. И всё работало! Хотя разброс параметров советской логики был такой, что современные ПЛИСины кажутся просто образцом сверхточности. Так что делайте себе на здоровье, только заложите запас по задержке. А совет по поводу LCELL - верен. Только, если работаете в Квартусе (в Максе, по-моему, LCELL по умолчанию не удаляются) не забудьте поставить соотвествующую галочку в свойствах проекта. И будет вам счастье.
  15. О. ура, разобрался! Особый фэнкс jcxz'у, он меня навёл на решение этим сообщением: просто в настройках проекта пришлось по максимуму поубивать всякие добавки, которые пришлёпывают для отладки. Теперь нельзя посмотреть не переменные, ни память, ничего. Но зато сразу всё ускорилось на порядок, по тестам выполнение одного БПФ - 1,7мкС, у меня получается чуть больше двух микросекунд. Это уже приемлимо. Хотя остался вопрос, что ж там сборщик такого понадобавлял в отладочный проект, что так всё тормозит?
  16. Добрый день, bav, хоть кто-то ответил :) Кто такой CASH, к стыду своему, не знаю. И исходные данные (один и тот же массив размера 2N) и результаты расчёта (массив такого же размера) храняться в L1D и никуда не передаются. По поводу PLL: после выбора "Connect Target" консоль сообщает следующее: "PLL1 setup for DSP @ 983.0MHz, ..." Хотя мысль хорошая: а реально ли у меня тактовая частота такова? Надо будет проверить.
  17. Добрый день всем! Происходят странные вещи. Работаю с C6670. Необходимо выполнять двумерное комплексное БПФ от матрицы размером NxN, где N=128. По скоростному отчёту (benchmark) TI одно ядро этого проца должно выполянть одномерное комплексное БПФ для N=128 при за 1680 циклов, т.е. при тактовой частоте F=983МГц около 2мкС. Правдоподобно. Но начальство этому не поверило и заставило меня реально в этом убедиться. Взял исходник функции DSP_fft32 из примера fft_example пакета DSPLIB 3.1. Загнал его в цикл NxNxM (для имитации 2D-FFT), где M-взято равным 50, что бы время выполнения было значительным. Запусаем в отладчике CCS 5.1 на одном ядре. Профилировщиком я даже не стал пользоваться - просто по секундомеру засекали. 26 секунд! Если поделить на NxNxM, то получается, что одно 128-точечное компл. БПФ выполняется около 30мкс!! Но это же, простите, показатели DSP 90х годов! Корифеи помогите, в чём здесь фокус?
  18. На стартер ките Стратикса IV по требованию нач-ва начал переделывать старый проект, который был без проца под NIOS II. Раньше я проекты под ПЛИС со встроенным процом не делал, поэтому всё делал как в альтеровских примерах. В результате всё работает, кроме одного: двухстрочного 16-символьного LCD. Пробовал как в примерах: lcd = fopen(DISPLAY_NAME, "w"); if (lcd > 0) fprintf(lcd, ...); Выяснилось, что lcd = 0 и ЖКИ даже не производит начальной загрузки. При этом ЖКИ однозначно подсоеденен правильно и в старом проекте успешно работал с функцией, написанной на verilog'е. Можно конечно работать с ЖКИ низкоуровнего, но уж очень хочется использовать printf'ы. Специалисты, помогите!
  19. Господа, ну надо же хоть иногда читать руководства! Смотрите главу 11 руководства по Квартусу, которая посвящена особенностям упихивания HDL-кода в камни. Не помню точно как называется, но там есть раздел как раз посвященный памяти с одновременной записью и чтением. Как раз ваш случай. Там есть все ответы!
  20. Проще всего аппроксимировать отрезками прямых. Так реально в радиолокационной аппаратуре делается, а также при компадировании звука (см., например, реализацию A- или мю-законов). Разбиение области аргумента ведётся, естественно, нелинейно. Кол-во отрезков зависит от допустимой погрешности. После разбиения - само вычисление элементарно реализуется в HDL-коде. По-крайней мере, этот способ вообще не требует какой-либо таблицы.
  21. У меня, как раз, в моделсим альтера вообще ничего не моделировалось, если устанавливал выходные файлы из Квартуса в формате Verilog. Дай ему VHDL и всё!
  22. Коллеги! Нигде не попадалась проект или мегафункция для считывания данных с двухкристальной флешки типа P30 фирмы Nymonix. Самому писать и отлаживать ну как-то совсем не хочется. А как противник использования всяких встроенных процессоров в ПЛИС, Qsys'ом пользоваться не умею.
  23. Сам недавно квартусом 11 заливал старую платку на 3128, так что поддержка точно есть. А вообще можно скачать старенький и надёжный как молоток Max+Plus II. Но у него достаточно слабенький синтезатор. Поэтому могу порекомендовать любую версию квартуса, кроме 10 и 11, так они черезчур громоздкие для таким маленьких камушков. Да и с версии 9.1 убран (мой любимый) режим совместимости с Max+Plus II.
  24. Короче, докладываю: по моему требованию на работе купили новый комп тоже с i7 и 8Гбайт ОЗУ. Ну всё, конечно, гораздо резвее зашевелилось. Беру простейший проект, как указано выше, состоящий всего из двух выводов, соединённых инвертором. Решил выяснить как скорость сборки зависит от выбора камня. Выбираем Max II, проект собирается за 6 сек, выбираем Cyclone II - около 20сек, выбираю свой камень Stratix IV - больше минуты! Ничего себе! Причём я не особо въезжаю, с чего такая коллосальная разница? Кстати, в моём основном проекте больше всего синтезатор тормозит почему-то даже не на самом фильтре, а на укладке его коэффициентов в память камня.
  25. Да чего ж нельзя... Вкратце так: для радиолокационного проекта, в котором в качестве внешней подсветки используется глонассовский сигнал нужно было сделать макет. Выбрали отладку со Stratix IVGX (с дуру!). Обрадовавшись ёмкости этого камня и т.к. надо было побыстрей, для захвата сигнала решено было использовать не корреляторы, а СФ для ПСП-сигнала. Плюс в том, что не надо поиск по задержке осуществлять, а минус в том, что СФ 2000 порядка в параллельной форме (БПФ мы использовать даже и не пытались) да ещё и с перегружаемыми коэффициентами жутко долго собирается и поглощает львиную долю ресурсов даже в таком мощном камне. А для сопровождения уже обнаруженного по доплеру и задержке сигнала нужна уже несколько другая структура, но обе структуры в камень уже не лезут. Появилась идея после обнаружения сигнала перезаливать ПЛИСину. Да вот только перезаливать её приходится с компа, а за время заливки, как показывают расчёты сигнал по доплеру запросто можно потерять. Вот и стало обидно, что нельзя для ПЛИСины готовить прошивку из частей.