Перейти к содержанию
    

Araxnid

Участник
  • Постов

    43
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Araxnid

  • Звание
    Участник
    Участник

Посетители профиля

913 просмотра профиля
  1. OFDM БПФ

    Пытаюсь построить модель системы с OFDM. Окончательно запутался, над какой последовательностью данных я должен проделывать ОБПФ в передатчике. Сперва сделал так: получаю 128 бит, далее модулирую их QPSK (т.е, заменяю 2 бита данных на соответствующие значение синфазной и квадратурной составляющей) Дальше, подаю полученные 64 бита на блок реализующий ОБПФ. Я где-то пропускаю вариант с разделением последовательности бит в параллельную. Из литературы не очень понял, на каком этапе и как именно я должен разбивать данные. И как потом проводить ОБПФ. Т.е, как я сейчас себе это представляю, я должен после QPSK блока разбить полученный блок из 64 значений на более маленькие, например по 16, и провести ОБПФ отдельно по каждому потоку и потом собрать все воедино (сумматором)? Или, как? Вопрос возникает из-за того, что я должен как-то определить количество поднесущих в итоге, и судя по всему, количество поднесущих не обязательно равно количество отсчетов в итогах ОБПФ?
  2. Действительно, как только поменял - все заработало. С трех генераторов уже смог получить более-менее нормальное распределение амплитуд. Спасибо за замечание. 2=GM= Пока попробую построить простым способом, дальше уже по ситуации. И с различными полиномами получилось реализовать требуемое распределение задействовав меньше генераторов, так что здесь ещё один плюс есть.
  3. Пытаюсь получить более-менее нормальный генератор белого шума на плисине, путем наложения нескольких выходов м-последовательностей (руководствуюсь центральной предельной теоремой). Никак не удается получить нормальное распределение на выходе ЦАП. Создал модельку в симулинке: Есть куча вопросов - можно ли получить таким способом нормальное распределение амплитуд? Спектр вроде похож на гауссовский, хотя периодически проскакивают сильные одиночные "палки". Вообще, нашел презентацию, где человек использует 12 генераторов и суммирует - по его результатам выходит нормальное распределение, так что подозреваю, что я не совсем правильно выполняю эту операцию. Возможно надо складывать выводы со всех регистров генератора? Кто-нибудь может посоветовать литературу где эти тонкости описываются? В хелпе матлаба есть порождающие полиномы, я использую одинаковые для всех генераторов с разными начальными условиями. Пробовал и разные - разницы не заметил. Для анализа стараюсь накопить хотя бы 5-6 периодов повторения.
  4. Может кто подсказать - использую базу данных резисторов. Есть параметр "Resistance" в бд, изменил его оформление, но в схемах ничего не поменялось. Как можно заставить их "проапдейтится"? Вроде везде "апдейт" галки стоят в настройках бд. Если ставлю новые элементы из бд, то все ок, но кучу резисторов менять вообще не радует.
  5. Это ведь можно менять только в опциях для PCB проекта? Сделать для схематика не выйдет? Я хотел как-нибудь проверить везде не забыл ли я какой-нибудь нет на уровне схематика добавить.
  6. Как сделать в 2012 altiume net label глобальным в проекте? Перерыл все опции проекта, нигде не могу найти где меняются scope меток
  7. Я имел ввиду, что частота сигнала может меняться от 1 кГц до 100 кГц (ручкой на генераторе, например), и отдельной ручкой можно менять на какое количество градусов будет сдвинута фаза. Т.е 0..180, я имел ввиду, что сдвиг фазы можно регулировать плавно, не только на 0,90,180, а например, 0,5,10,15 и т.д. Сигнал на входе обычный - синус\косинус. Но сигнал именно приходит на модуль, т.е это не генератор сигналов, а отдельный модуль. p.s Спасибо за наводку в гугл, если бы я смог найти какие-либо варианты, кроме приведенного выше, я бы не стал обращаться на данный форум.
  8. Бьюсь над задачкей - сделать фазовращатель сигнала 10....100 кГц на 0...180 градусов, т.е регулируемый. Набрел на схемы фазовых фильтров, которые "поворачивают" фазу сигнала. Соорудил схемку из учебника Титце и Шенка: Советуют менять только номинал R3, но как только меняю частоту сигнала, все сразу естественно уплывает и для возврата картинки номинал резистора приходиться изменять на порядок. В каких-то небольших пределах изменения сигнала схема ещё годится, но после изменения на пару десятков кГц уже дело идет плохо. Да это видно и из формул, которыми они дело описывают. Есть ли какие-нибудь аналоги такой штуковины или какой-нибудь хитрый трюк, чтобы хотя бы в одном порядке номинал резистора менять?
  9. Вроде ответил на все письма. Поиск работы больше не актуален. Спасибо всем за предложения -)
  10. А, да, совершенно точно, все исправил, работает, спасибо за помощь.
  11. Ну, исходя из кода, хотел сделать объект, который имеет три режима работы, первый - как только фиксируется тактовый сигнал, считает до 13 битов и пока их меньше, выдает сигнал разрешения работы другому объекту, после чего включает режим два, во втором - сравнивает первый вход со вторым, и если без ошибок проходит 13 бит, или если ошибок меньше 10, то включает режим три, в третьем - просто сравнивает два входа, и если данные не равны, то инвертирует выход. Два выхода - первый это, тот который разрешает работу другому объекту, а второй - тот, что инвертируется (флаг). Соответственно, сделал все на if-ах, и 3 переменные - первая считает данные, вторая считает сколько было ошибок во втором режиме, третья - определяет какой режим работы... И интересно, почему не будет работать?)
  12. Столкнулся с проблемой в следующем коде: entity sravn is port ( D1 : in std_logic; D2 : in std_logic; E : in std_logic; clk : in std_logic; clr : in std_logic; error : out std_logic; keyenable : out std_logic ); end sravn; architecture behavioral of sravn is signal buff : std_logic :='0'; begin process(clk,clr) variable data : integer range 0 to 13 :=0; variable syncmode : integer range 0 to 2 :=0; variable counter : integer range 0 to 26 :=0; begin if (clr='1') then counter1:=0; keyenable<='0'; end if; if (rising_edge(clk)) then if (E='1') then if (syncmode=2) then if (D1 /= D2) then buff <= not buff; end if; elsif (syncmode=1) then if (D1 /= D2) then counter := counter + 1; data := data +1; end if; elsif (syncmode=0) then buff <= '1'; data := data + 1; end if; end if; end if; if (syncmode=1 and counter=13) then syncmode:=0; data:=0; elsif (syncmode=1 and data=13) then syncmode:=2; data:=0; end if; if (data=13 and syncmode=0) then syncmode :=1; data :=0; keyenable <='0'; buff <='0'; end if; keyenable <= buff; end process; end behavioral; При компиляции мне сообщается о том, что Error (10818): Can't infer register for "buff" at e1.vhd(65) because it does not hold its value outside the clock edge Error (10818): Can't infer register for "data1[0]" at e1.vhd(65) because it does not hold its value outside the clock edge ... Error (10818): Can't infer register for "data1[3]" at e1.vhd(65) because it does not hold its value outside the clock edge Error (10818): Can't infer register for "counter1[0]" at e1.vhd(65) because it does not hold its value outside the clock edge ... Error (10818): Can't infer register for "counter1[4]" at e1.vhd(65) because it does not hold its value outside the clock edge Error (10822): HDL error at e1.vhd(65): couldn't implement registers for assignments on this clock edge Из ошибки я так понял, что дело в том, что переменные не сохраняют своего значения за условием if(rising_edge(clk)). Вообщем, я это исправил тем, что ввел буфферные переменные, значения которых в конце пересохранял, но это совсем какой-то не оптимальный путь получается, может кто подсказать выход из такой ситуации?
  13. Подскажите, как один порт подключить к трем в порт мапе. Для примера, есть у меня два entity, одно с портом выход, другое с тремя портами на вход. Объявляю в одном entity другой, (компонент), дальше задаю карту портов, и хочу чтобы с выхода данные цеплялись на все три входа. Если делаю, что-то в таком духе: load => R_A0, load => R_C0, load => R_B0, То квартус ругается - Error (10347): VHDL error at e1.vhd(4220): formal parameter "Load" is already associated Есть, конечно, вариант, что я сделаю три сигнала на три сигнала, но придется менять код, и лишние вещи делать не хочется..
  14. Здравствуйте. Ищу работу с возможностью совмещать с учебой на дневном отделении. Смогу полностью работать понедельник, вторник + часть среды\четверга\пятницы, не считая того времени, что смогу уделять дома. Хочу получить опыт работы в сфере разработки устройств на плис и микроконтроллерах. Специальность: "Радиотехника", ВУЗ МИРЭА, факультет "Радиотехнические системы". Навыки: - Опыт написания программ на языках С++ (вычисление дифф. уравнений, преобразование Фурье и т.п), Cи, ассемблер (работа с мк фирмы Atmel, Freescale) - Работал с Quartus II, Xilinx ISE (при написании проектов использовал язык VHDL) - Использовал среды ModelSim, Proteus, MathCad для моделирования работ - Знаю основы аналоговой, цифровой схемотехники, понимаю принципы построения радиоприемников и радиопередатчиков, принципы радиосвязи - Большой опыт работы с измерительным оборудованием - Знаю технический английский, свободное чтение литературы. Дополнительно - ответственность, хорошая математическая подготовка, желание профессионально развиваться, осваивать новые технологии. Просьба связываться через личные сообщения или писать на почту [email protected]
×
×
  • Создать...