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

Глупый вопрос по Simulink Matlab?

Хотелось бы понять, как происходит моделирование в Simulink. Вот уже несколько раз пытался в нём что нибудь промоделировать но ничего не получается, а тут как раз возникла подходящая задачка. Требуется промоделировать работу приёмо-передающего тракта. Для начала решил попробовать пример по ссылке:

 

http://matlab.exponenta.ru/communication/book5/index.php

 

В теории вроде всё понятно, но ступор наступает после первых же двух блоков. Вставляю блок Bernoulli Binary Generator и блок Scrambler. Настраиваю у блока Scrambler полином на 23 разряда. Когда моделируеш работу ПЛИС в Квесте или пишеш программу для микроконтроллера, всё понятно, процессы идут либо параллельно либо последовательно во времени по сигналу CLK. Тут же, вообще не понятно как оно работает. Вот настроил я скрамблер и пытаюсь подать на него с генератора случайный бит (устанавливаю у генератора тип переменной boolean) раз в миллисекунду. Тут же получаю ошибку симулинка, что длина посылки к скрамблеру должна быть не меньше длины полинома (вопрос почему, если это простой сдвиговый регистр и вход/выход у него однобитовый). Ладно, устанавливаю ширину слова генератора uint32 и подаю на скрамблер. Проект собирается и моделируется. Пытаюсь с помощью simout посмотреть входные и выходные значения скрамблера, при этом время моделирования устанавливаю 5 сек. Получаю в матлабе два массива из 5000 элементов (вроде понятно, так и должно быть), но входной массив скрамблера состоит только из единиц и нулей (однобитных данных), а выходной из значений в диапазоне от 0 до 22. Собственно я и не могу понять, почему на входе битовый поток если я установил слова по 32 бита, куда делись остальные 31 бит. Как я понимаю, я должен увидеть два 32 битных массива по 5000 элементов каждый, в одном 32 битные входные данные, в другом 32 битные выходные данные, прошедшие через скрамблер? Теперь дальше. Выходные данные со скрамблера я должен разбить на части по 6 бит. Но 32 на 6 не делится. Если бы я это делал в Квесте, всё понятно, ставим делитель на 6 (так как там на входе сплошной битовый поток) и по каждому его срабатыванию кодируем шестибитные слова с выхода скрамблера согласно алгоритму. А что делать в симулинке, тут делитель на 6 не сделаешь, кого собственно делить если сигнала CLK нет. Я понимаю что симулинк работает не так, но не понимаю как он работает?

 

Собственно тут возникает идеологический ступор. Как всё таки работает симулинк? Может кто разъяснит в общих чертах, как им собственно пользоваться, иначе не возможно что либо промоделировать не понимая как работает среда моделирования?

 

Фух, много букв! Да забыл, Matlab2013b.

 

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тему можно закрывать! Ответили на профильном форуме.

http://matlab.exponenta.ru/forum/simulink-...ink-t18101.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...