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

    

Симулинк и результат симуляции на scope

Не врубаюсь почему после остановки симуляции выставленной на определенное время (на 2) на scope исчезает результат.

Выглядит это так:

1. Во время симуляции post-39850-1523895595_thumb.jpg

2. После остановки post-39850-1523895669_thumb.jpg

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


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

Смотрите в настройках scope

logging

limit data points to last.

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


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

logging

limit data points to last.

Спасибо. Работает.

 

По ходу еще вопрос по симулинк.

В симулинк имеется компонент "Bernoulli Binary Generator" который генерит случайную битовую последовательность.

Как в симулинк можно сгенерить конкретную битовую последовательность, например [1 1 0 1 0 1 0 1 0 1 1 1 0 0 0] ?

 

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


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

 

По ходу еще вопрос по симулинк.

В симулинк имеется компонент "Bernoulli Binary Generator" который генерит случайную битовую последовательность.

Как в симулинк можно сгенерить конкретную битовую последовательность, например [1 1 0 1 0 1 0 1 0 1 1 1 0 0 0] ?

 

Сделайте КИХ фильтр как скалярное прозведение вектора отводов с линии задержки и вектора коэффициентов, подайте дельта-импульс на вход, на выходе получите последовательность коэффициентов.

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


Ссылка на сообщение
Поделиться на другие сайты
Сделайте КИХ фильтр как скалярное прозведение вектора отводов с линии задержки и вектора коэффициентов, подайте дельта-импульс на вход, на выходе получите последовательность коэффициентов.

Спасибо. Немного мудрено. Попробую разобраться.

В продолжение этой темы https://electronix.ru/forum/index.php?showtopic=146243 сделал симулинк модель простейшего BPSK передатчик-приемник с петлей Костаса на базе VCO которая в основных чертах (кроме фильтров, битовой посл. и пр.) повторяет крайний матлаб код упомянутой темы.

Но в реальном железе (ПЛИС, микроконтроллер) дело придется иметь не с VCO, а с NCO.

Как можно безболезненно перейти от VCO к NCO на примере данной симулинк модели.

post-39850-1523970615_thumb.jpg

CostasLoopBpsk.rar

Изменено пользователем Acvarif

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


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

Возьмите и сделайте отдельно простую модельку с NCO, разберитесь как оно работает. Не используйте готовые блоки, а только задержки, арифметические операции и элементраные функции. Ещё раз настоятельно рекомендую работать с комплексными сигналами на нулевой частоте.

 

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


Ссылка на сообщение
Поделиться на другие сайты
Возьмите и сделайте отдельно простую модельку с NCO, разберитесь как оно работает. Не используйте готовые блоки, а только задержки, арифметические операции и элементраные функции. Ещё раз настоятельно рекомендую работать с комплексными сигналами на нулевой частоте.

Понятно. Попробую.

По поводу комплексных сигналов не врубаюсь.

Вот квадратурный демодулятор

post-39850-1523975531_thumb.jpg

"Таким образом, мы произвели выделение комплексной огибающей радиосигнала при помощи

умножения входного сигнала на комплексную экспоненту с последующим устранением удвоенной

несущей при помощи ФНЧ. Устройство выделяющее комплексную огибающую сигнала в соответствии с (4) называется квадратурным гетеродином."

Ведь I и Q это и есть составляющие комплексной огибающей.

Собственно так я и делаю. А значит работаю с комплексным сингналом на нулевой частоте. Разве нет?

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


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

У вас должна быть несущая на 0 Гц. Длительность символа 1 с. Частота дискретизации пусть 8 отсчётов на символ. Не нужно раскладывать комплексные сигналы на действительную и мнимую составляющие без нужды, в симулинке поддерживаются операции с комплексными числами.

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


Ссылка на сообщение
Поделиться на другие сайты
У вас должна быть несущая на 0 Гц. Длительность символа 1 с. Частота дискретизации пусть 8 отсчётов на символ.

Не нужно раскладывать комплексные сигналы на действительную и мнимую составляющие без нужды, в симулинке поддерживаются операции с комплексными числами.

Без нужды это да. Может и так. Но далее все должно работать в микроконтроллере. А там все будет работать только с составляющими комплексного сигнала.

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

две соседние выборки и будут определять его комплексные составляющие. В конечном итоге всеравно ничего не меняется. Разве, что программа

микроконтроллера или ПЛИС немного упрощается.

Хотя я так до конца и не понял про работу с комплексным сигналом и 0 Герц.

Надеюсь со временем врублюсь...

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


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

Абстрагировались от микроконтроллеров и FPGA, это не имеет никакого отношения к вещам с которыми нужно разобраться.

Уже обсуждали, что любой сигнал можно перенести на нулевую частоту умножением на комплексную экспоненту. Либо сразу сформировать его на ней. Всё абстрагировались от несущих.

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


Ссылка на сообщение
Поделиться на другие сайты
Абстрагировались от микроконтроллеров и FPGA, это не имеет никакого отношения к вещам с которыми нужно разобраться.

Уже обсуждали, что любой сигнал можно перенести на нулевую частоту умножением на комплексную экспоненту. Либо сразу сформировать его на ней. Всё абстрагировались от несущих.

Работа с комплексным сигналом это так?

post-39850-1523994721_thumb.jpg

Для меня это пока сложновато.

В свое время цифровая ФАПЧ с использованием NCO делалась достаточно просто.

После 2_х LPF небольшой цифровой схемкой ыделялись короткие импульсы опережения либо отставания фаз НЧ биений которые

инкрементировали либо декрементировали счетчик. Код счетчика управлял частотой NCO.

 

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


Ссылка на сообщение
Поделиться на другие сайты
Не нужно раскладывать комплексные сигналы на действительную и мнимую составляющие без нужды, в симулинке поддерживаются операции с комплексными числами.

Поддерживаются. К примеру sin может быть комплексным

post-39850-1524046948_thumb.jpg

Никак не пойму что это дает?

На данный момент, для того, чтобы перейти от VCO к NCO необходимо представить все сигналы не как +-1, а как, например int (16 бит). Тоесть работать не с уровнями в прямом виде, а с их цифровым эквивалентом.

Я не могу модель делать оторвано от будущего алгоритма для микроконтроллера или ПЛИС.

Чем мне в достижении моей цели поможет комплексное представление сигналов никак не пойму.

В реальном железе всеравно придется работать не с комплексным сигналом, а с его составляющими.

Поэтому я и говорю о 4_х выборках на период, где две соседние будут представлять квадратурные составляющие сигнала, с которыми и будет

вестись работа.

Изменено пользователем Acvarif

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


Ссылка на сообщение
Поделиться на другие сайты
Никак не пойму что это дает?

 

Человек очень мало может удержать в голове. Декомпозиция, отсечение лишнего, помогает выделить обозримую часть задачи и понять её.

Ни про какие intы и реальное железо не надо думать сейчас, это бессмысленно без понимания алгоритмов ЦОС.

 

Вот a и b комплексные числа, например a*b=(re(a)+j*im(a))*(re(b)+j*im(b)) расписали отдельно один раз на бумажке и абстрагировались, в модели просто рисуем a*b.

Формулу Эйлера https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%...%B5%D1%80%D0%B0 посмотрели один раз, не надо комплексную экспоненту везде раскладывать на реальную и мнимую часть, мы уже это знаем и можем абстрагироваться от этого нагромождения.

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


Ссылка на сообщение
Поделиться на другие сайты
Человек очень мало может удержать в голове. Декомпозиция, отсечение лишнего, помогает выделить обозримую часть задачи и понять её.

Ни про какие intы и реальное железо не надо думать сейчас, это бессмысленно без понимания алгоритмов ЦОС.

 

Вот a и b комплексные числа, например a*b=(re(a)+j*im(a))*(re(B)+j*im(B)) расписали отдельно один раз на бумажке и абстрагировались, в модели просто рисуем a*b.

Формулу Эйлера https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%...%B5%D1%80%D0%B0 посмотрели один раз, не надо комплексную экспоненту везде раскладывать на реальную и мнимую часть, мы уже это знаем и можем абстрагироваться от этого нагромождения.

Да. Это понятно.

Понимания алгоритмов ЦОС для меня это сильно громко. Я пока всего лишь BPSK+CostasLoop пытаюсь смоделировать, и то в простейшем классическом виде.

Допустим я сделаю модель где все сигналы будут представлены в комплексном виде, начиная с модулятора и заканчивая петлей Костаса.

Что изменится в понимании этого алгоритма? В том виде как я его сейчас делаю думаю ничего.

Разве, что со временем придет более глубокое понимание и не придется раскладывать комплексную огибающую на компоненты, а работать с ней

непосредственно на 0 Герц.

В продолжение разговора, скажите пожалуйста как в Вашей модели bpsk_costas_2008_08_25.mdl можно посмотреть за какое время происходит

стабилизация PLL?

Изменено пользователем Acvarif

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


Ссылка на сообщение
Поделиться на другие сайты
Понимания алгоритмов ЦОС для меня это сильно громко. Я пока всего лишь BPSK+CostasLoop пытаюсь смоделировать, и то в простейшем классическом виде.

Допустим я сделаю модель где все сигналы будут представлены в комплексном виде, начиная с модулятора и заканчивая петлей Костаса.

Что изменится в понимании этого алгоритма? В том виде как я его сейчас делаю думаю ничего.

Разве, что со временем придет более глубокое понимание и не придется раскладывать комплексную огибающую на компоненты, а работать с ней

непосредственно на 0 Герц.

 

Нет у вас никакой ФАПЧ в классическом виде. Где интегратор у вас, где пропорционально интегрирующее звено, где задержки лишние в петле?

Как нарисовать эквивалентную схему ФАПЧ, которая представляет собой простейший БИХ фильтр 2-го порядка? Подать на него ступенчатое воздействие, линейное, посмотреть переходный процесс.

Вы слишком компилятивно хотите без понимания по кривой картинке что-то с чем-то соеденить и в железку запихать. Такое в принципе невозможно.

 

В продолжение разговора, скажите пожалуйста как в Вашей модели bpsk_costas_2008_08_25.mdl можно посмотреть за какое время происходит

стабилизация PLL?

 

Всё можно, если понимание есть.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти