Как мне написать код MATLAB для ЦАП?

На первом этапе я сгенерировал последовательность битов (0,1).

Я использовал команду Рэнди x = randi([0 1],1,3) генерировать случайные биты

Я застрял с этими 2 шагами:

Разделите последовательность на 3 бита на 8 уровней [000, 001, 010, 011, 100, 101, 110, 111]

Для каждого квантового уровня присваивается значение амплитуды из диапазона [-2, 2]

1 ответ

Решение

Я не буду предоставлять полный исходный код, чтобы оставить немного домашней работы для вас, но я дам вам несколько советов:

  • randi() создает последовательность из 0 и 1 чисел с плавающей точкой
  • Посмотри документацию функции bitpack, Это позволяет вам упаковать ваши биты из элементов массива в один байт. Имейте в виду, что для заполнения байта необходимо предоставить массив "битов" из 8 элементов. Пользователь 'uint8' в качестве аргумента класса.
  • перед передачей массива чисел с плавающей точкой в ​​битпак вы должны преобразовать его в logical массив с помощью logical() функция.
  • посмотрите на документацию linspace() создать массив из 8 элементов, содержащих равные пробелы значения амплитуды
  • ищите значение амплитуды в этом массиве для каждого "цифрового" значения.
Другие вопросы по тегам