Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум разработчиков электроники ELECTRONIX.ru _ Вопросы системного уровня проектирования _ Симулинк и результат симуляции на scope

Автор: Acvarif Apr 16 2018, 16:22

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


2. После остановки

Автор: petrov Apr 16 2018, 18:01

Смотрите в настройках scope
logging
limit data points to last.

Автор: Acvarif Apr 17 2018, 05:18

Цитата(petrov @ Apr 16 2018, 21:01) *
Смотрите в настройках 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] ?

Автор: petrov Apr 17 2018, 08:25

Цитата(Acvarif @ Apr 17 2018, 08:18) *
Спасибо. Работает.

По ходу еще вопрос по симулинк.
В симулинк имеется компонент "Bernoulli Binary Generator" который генерит случайную битовую последовательность.
Как в симулинк можно сгенерить конкретную битовую последовательность, например [1 1 0 1 0 1 0 1 0 1 1 1 0 0 0] ?


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

Автор: Acvarif Apr 17 2018, 13:10

Цитата(petrov @ Apr 17 2018, 11:25) *
Сделайте КИХ фильтр как скалярное прозведение вектора отводов с линии задержки и вектора коэффициентов, подайте дельта-импульс на вход, на выходе получите последовательность коэффициентов.

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

 CostasLoopBpsk.rar ( 37.96 килобайт ) : 10

Автор: petrov Apr 17 2018, 13:57

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

Автор: Acvarif Apr 17 2018, 14:43

Цитата(petrov @ Apr 17 2018, 16:57) *
Возьмите и сделайте отдельно простую модельку с NCO, разберитесь как оно работает. Не используйте готовые блоки, а только задержки, арифметические операции и элементраные функции. Ещё раз настоятельно рекомендую работать с комплексными сигналами на нулевой частоте.

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

"Таким образом, мы произвели выделение комплексной огибающей радиосигнала при помощи
умножения входного сигнала на комплексную экспоненту с последующим устранением удвоенной
несущей при помощи ФНЧ. Устройство выделяющее комплексную огибающую сигнала в соответствии с (4) называется квадратурным гетеродином."
Ведь I и Q это и есть составляющие комплексной огибающей.
Собственно так я и делаю. А значит работаю с комплексным сингналом на нулевой частоте. Разве нет?

Автор: petrov Apr 17 2018, 14:54

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

Автор: Acvarif Apr 17 2018, 16:13

Цитата(petrov @ Apr 17 2018, 17:54) *
У вас должна быть несущая на 0 Гц. Длительность символа 1 с. Частота дискретизации пусть 8 отсчётов на символ.
Не нужно раскладывать комплексные сигналы на действительную и мнимую составляющие без нужды, в симулинке поддерживаются операции с комплексными числами.

Без нужды это да. Может и так. Но далее все должно работать в микроконтроллере. А там все будет работать только с составляющими комплексного сигнала.
Хотя если рассматривать сигнал дискретно или повыборочно, то для синусоидального сигнала, например при четырех выборках на период
две соседние выборки и будут определять его комплексные составляющие. В конечном итоге всеравно ничего не меняется. Разве, что программа
микроконтроллера или ПЛИС немного упрощается.
Хотя я так до конца и не понял про работу с комплексным сигналом и 0 Герц.
Надеюсь со временем врублюсь...

Автор: petrov Apr 17 2018, 16:26

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

Автор: Acvarif Apr 17 2018, 20:12

Цитата(petrov @ Apr 17 2018, 19:26) *
Абстрагировались от микроконтроллеров и FPGA, это не имеет никакого отношения к вещам с которыми нужно разобраться.
Уже обсуждали, что любой сигнал можно перенести на нулевую частоту умножением на комплексную экспоненту. Либо сразу сформировать его на ней. Всё абстрагировались от несущих.

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

Для меня это пока сложновато.
В свое время цифровая ФАПЧ с использованием NCO делалась достаточно просто.
После 2_х LPF небольшой цифровой схемкой ыделялись короткие импульсы опережения либо отставания фаз НЧ биений которые
инкрементировали либо декрементировали счетчик. Код счетчика управлял частотой NCO.

Автор: Acvarif Apr 18 2018, 10:33

Цитата(Acvarif @ Apr 17 2018, 23:12) *
Не нужно раскладывать комплексные сигналы на действительную и мнимую составляющие без нужды, в симулинке поддерживаются операции с комплексными числами.

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

Никак не пойму что это дает?
На данный момент, для того, чтобы перейти от VCO к NCO необходимо представить все сигналы не как +-1, а как, например int (16 бит). Тоесть работать не с уровнями в прямом виде, а с их цифровым эквивалентом.
Я не могу модель делать оторвано от будущего алгоритма для микроконтроллера или ПЛИС.
Чем мне в достижении моей цели поможет комплексное представление сигналов никак не пойму.
В реальном железе всеравно придется работать не с комплексным сигналом, а с его составляющими.
Поэтому я и говорю о 4_х выборках на период, где две соседние будут представлять квадратурные составляющие сигнала, с которыми и будет
вестись работа.

Автор: petrov Apr 18 2018, 11:01

Цитата(Acvarif @ Apr 18 2018, 13:33) *
Никак не пойму что это дает?


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

Вот a и b комплексные числа, например a*b=(re(a)+j*im(a))*(re(b)+j*im(b)) расписали отдельно один раз на бумажке и абстрагировались, в модели просто рисуем a*b.
Формулу Эйлера http://electronix.ru/redirect.php?https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D0%B0_%D0%AD%D0%B9%D0%BB%D0%B5%D1%80%D0%B0 посмотрели один раз, не надо комплексную экспоненту везде раскладывать на реальную и мнимую часть, мы уже это знаем и можем абстрагироваться от этого нагромождения.

Автор: Acvarif Apr 18 2018, 11:51

Цитата(petrov @ Apr 18 2018, 14:01) *
Человек очень мало может удержать в голове. Декомпозиция, отсечение лишнего, помогает выделить обозримую часть задачи и понять её.
Ни про какие intы и реальное железо не надо думать сейчас, это бессмысленно без понимания алгоритмов ЦОС.

Вот a и b комплексные числа, например a*b=(re(a)+j*im(a))*(re(cool.gif+j*im(cool.gif) расписали отдельно один раз на бумажке и абстрагировались, в модели просто рисуем a*b.
Формулу Эйлера http://electronix.ru/redirect.php?https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D0%B0_%D0%AD%D0%B9%D0%BB%D0%B5%D1%80%D0%B0 посмотрели один раз, не надо комплексную экспоненту везде раскладывать на реальную и мнимую часть, мы уже это знаем и можем абстрагироваться от этого нагромождения.

Да. Это понятно.
Понимания алгоритмов ЦОС для меня это сильно громко. Я пока всего лишь BPSK+CostasLoop пытаюсь смоделировать, и то в простейшем классическом виде.
Допустим я сделаю модель где все сигналы будут представлены в комплексном виде, начиная с модулятора и заканчивая петлей Костаса.
Что изменится в понимании этого алгоритма? В том виде как я его сейчас делаю думаю ничего.
Разве, что со временем придет более глубокое понимание и не придется раскладывать комплексную огибающую на компоненты, а работать с ней
непосредственно на 0 Герц.
В продолжение разговора, скажите пожалуйста как в Вашей модели bpsk_costas_2008_08_25.mdl можно посмотреть за какое время происходит
стабилизация PLL?

Автор: petrov Apr 18 2018, 12:30

Цитата(Acvarif @ Apr 18 2018, 14:51) *
Понимания алгоритмов ЦОС для меня это сильно громко. Я пока всего лишь BPSK+CostasLoop пытаюсь смоделировать, и то в простейшем классическом виде.
Допустим я сделаю модель где все сигналы будут представлены в комплексном виде, начиная с модулятора и заканчивая петлей Костаса.
Что изменится в понимании этого алгоритма? В том виде как я его сейчас делаю думаю ничего.
Разве, что со временем придет более глубокое понимание и не придется раскладывать комплексную огибающую на компоненты, а работать с ней
непосредственно на 0 Герц.


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

Цитата(Acvarif @ Apr 18 2018, 14:51) *
В продолжение разговора, скажите пожалуйста как в Вашей модели bpsk_costas_2008_08_25.mdl можно посмотреть за какое время происходит
стабилизация PLL?


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

Автор: Acvarif Apr 18 2018, 13:18

Цитата(petrov @ Apr 18 2018, 15:30) *
Нет у вас никакой ФАПЧ в классическом виде. Где интегратор у вас, где пропорционально интегрирующее звено, где задержки лишние в петле?
Как нарисовать эквивалентную схему ФАПЧ, которая представляет собой простейший БИХ фильтр 2-го порядка? Подать на него ступенчатое воздействие, линейное, посмотреть переходный процесс.

Разве тут http://electronix.ru/redirect.php?https://en.wikipedia.org/wiki/Costas_loop имеется интегратор? Разве это не классическая схема?
Подскажите, если не сложно, другую схему, с интегратором, с задержками.
Цитата
Вы слишком компилятивно хотите без понимания по кривой картинке что-то с чем-то соеденить и в железку запихать. Такое в принципе невозможно.

Не совсем так...

Автор: petrov Apr 18 2018, 18:17

Цитата(Acvarif @ Apr 18 2018, 16:18) *
Разве тут http://electronix.ru/redirect.php?https://en.wikipedia.org/wiki/Costas_loop имеется интегратор? Разве это не классическая схема?


Вы поняли что там описано? Нашли ошибки, неточности, несоответствия с вашей задачей? Или компилятивно перенесли? Фильтры какие должны быть? Какие задержки вносят фильтры и на что влияют? Где ПИ звено? Модельку с NCO сделали?

Автор: Acvarif Apr 18 2018, 19:58

Цитата(petrov @ Apr 18 2018, 21:17) *
Вы поняли что там описано? Нашли ошибки, неточности, несоответствия с вашей задачей? Или компилятивно перенесли? Фильтры какие должны быть? Какие задержки вносят фильтры и на что влияют? Где ПИ звено? Модельку с NCO сделали?

С NCO нет. Пока не сделал. Но сделаю.
Фильтры должны быть FIR. Так я и сделал.
При символьной скорости в 100 Герц с задержками тоже все впорядке. Что собственно мне и нужно.
Я имею ввиду модель в Матлаб. ТТХ акустич. модема 36 кГц несущая, 100 Гц символьная. Соотн. сигн шум больше 2
Пока эта модель для моей задачи базовая. Вроде все устраивает.
PLL быстро настраивается. Пилот длительностью в 4 символа стабилизирует петлю ФАПЧ.
И вообще все работает при соотношении сигнал шум 0.75, Доплере 60 Гц. Все устраивает.
А модель в симулинк пробная. Симулинк пока в процесе освоения.
Согласен. Похоже там немного не то что в матлаб модели. Подправлю.
С ФАПЧ на базе NCO пока разбираюсь. Читаю Незами. Попытаюсь сделать в симулинк. В матлаб похоже это дело будет муторно.

Автор: petrov Apr 18 2018, 20:34

По 4 символам в принципе вменяемого усреднения не получить, тем более помощью ФАПЧ. Объективно оценить что получилось - сама по себе задачка. Даже на подсчёте Eb/N0 ошибаются все.

Автор: Acvarif Apr 19 2018, 08:33

Цитата(petrov @ Apr 18 2018, 23:34) *
По 4 символам в принципе вменяемого усреднения не получить, тем более помощью ФАПЧ. Объективно оценить что получилось - сама по себе задачка. Даже на подсчёте Eb/N0 ошибаются все.

Ниже картинка с выходом VCO

Получается что VCO стабилизируется через 500 выборок. По времени это примерно 4 мс.
Думаю что такая скорость связана с тем что я не делаю downsample для фильтров и VCO. Все семплируется одной частотой (несущая*4).
Для современной ПЛИС можно не заморачиваться с downsample. Но с другой стороны фазовый детектор работает с огибающей, частота которой равна частоте символа. В этой части я не пойму почему PLL так быстро выходит на режим.

Автор: petrov Apr 19 2018, 08:57

Не зависит от частоты дискретизации. Просто не контролируете что происходит, выводы делаете какие хочется. Разумеется ФАПЧ с широкой плосой не будет фильтровать шум, чудес не бывает.

Автор: Tpeck Apr 19 2018, 09:15

Цитата(petrov @ Apr 19 2018, 11:57) *
Не зависит от частоты дискретизации. Просто не контролируете что происходит, выводы делаете какие хочется. Разумеется ФАПЧ с широкой плосой не будет фильтровать шум, чудес не бывает.

А с узкой полосой будет плохо захватывать. Добро пожаловать в реальный мир sm.gif

Автор: Acvarif Apr 19 2018, 10:07

Цитата(petrov @ Apr 19 2018, 11:57) *
Не зависит от частоты дискретизации. Просто не контролируете что происходит, выводы делаете какие хочется. Разумеется ФАПЧ с широкой плосой не будет фильтровать шум, чудес не бывает.

Что значит с широкой полосой. Все FIR ФАПЧ имеют частоту среза 100 Гц. Это символьная частота.
Я уже писал. Работает при соотношении сигн. шум 0.75.
Если не лень можно просмотреть код...
 BpskCostasTest.rar ( 3.62 килобайт ) : 8

Автор: petrov Apr 19 2018, 11:47

Цитата(Acvarif @ Apr 19 2018, 13:07) *
Работает...



Не работает.

http://electronix.ru/redirect.php?http://read.pudn.com/downloads198/ebook/930884/Communication%20System%20Simulation%20Model/Simulink%20Exercise/11/synchronization_notes.pdf
http://electronix.ru/redirect.php?http://read.pudn.com/downloads198/ebook/930884/Communication%20System%20Simulation%20Model/Simulink%20Exercise/11/pll_notes.pdf

Автор: Acvarif Apr 19 2018, 12:06

Цитата(petrov @ Apr 19 2018, 14:47) *
Не работает.

http://electronix.ru/redirect.php?http://read.pudn.com/downloads198/ebook/930884/Communication%20System%20Simulation%20Model/Simulink%20Exercise/11/synchronization_notes.pdf
http://electronix.ru/redirect.php?http://read.pudn.com/downloads198/ebook/930884/Communication%20System%20Simulation%20Model/Simulink%20Exercise/11/pll_notes.pdf

Спасибо за полезные ссылки.
Но как это доказывает что моя матлаб модель PLL не работает.
Если не сложно подскажите где в коде ошибка с коротким пояснением.
Тогда все станет на свои места. Я больше практик. С формулами спорить не собираюсь.
Но факт пока тот, что BPSK PLL таки работает. Или Матлаб врет?

Автор: petrov Apr 19 2018, 12:37

Цитата(Acvarif @ Apr 19 2018, 15:06) *
Спасибо за полезные ссылки.
Но как это доказывает что моя матлаб модель PLL не работает.
Если не сложно подскажите где в коде ошибка с коротким пояснением.
Тогда все станет на свои места. Я больше практик. С формулами спорить не собираюсь.
Но факт пока тот, что BPSK PLL таки работает. Или Матлаб врет?


Нечего доказывать. Хотите получить настоящий результат - книжки в помощь.
Что-то скомпилировано и что-то происходит, всё. Осмысленной ФАПЧ нет, шум посчитан неправильно и т. п., не переоценивайте такую практику, пока состояние нулевое.

Автор: Acvarif Apr 19 2018, 12:52

Цитата(petrov @ Apr 19 2018, 15:37) *
Нечего доказывать. Хотите получить настоящий результат - книжки в помощь.
Что-то скомпилировано и что-то происходит, всё. Осмысленной ФАПЧ нет, шум посчитан неправильно и т. п., не переоценивайте такую практику, пока состояние нулевое.

Ок. Читать конечно буду. Но как Вы это оценили не пойму если "Кол-во скачиваний: 0"

Автор: petrov Apr 19 2018, 12:59

Цитата(Acvarif @ Apr 19 2018, 15:52) *
Но как Вы это оценили не пойму если "Кол-во скачиваний: 0"


Так уже было, прогресс очевиден.

Автор: Tpeck Apr 25 2018, 16:49

Цитата(petrov @ Apr 19 2018, 14:47) *
Не работает.

http://electronix.ru/redirect.php?http://read.pudn.com/downloads198/ebook/930884/Communication%20System%20Simulation%20Model/Simulink%20Exercise/11/synchronization_notes.pdf
http://electronix.ru/redirect.php?http://read.pudn.com/downloads198/ebook/930884/Communication%20System%20Simulation%20Model/Simulink%20Exercise/11/pll_notes.pdf


А можете дать ссылку на название книги? Или ссылку на полную версию. Спасибо.

Автор: petrov Apr 25 2018, 17:37

Цитата(Tpeck @ Apr 25 2018, 19:49) *
А можете дать ссылку на название книги? Или ссылку на полную версию. Спасибо.


Digital Communications - A Discrete Time Approach - Michael Rice

Автор: Acvarif Apr 25 2018, 18:54

Цитата(petrov @ Apr 25 2018, 20:37) *
Digital Communications - A Discrete Time Approach - Michael Rice

Тут она http://electronix.ru/redirect.php?https://docs.google.com/file/d/0B7Es-MJ0F4VwQ3A1dDdmb3o4SDQ/view

Автор: FerrumVS Jul 11 2018, 05:40

Цитата(Acvarif @ Apr 25 2018, 21:54) *
Тут она http://electronix.ru/redirect.php?https://docs.google.com/file/d/0B7Es-MJ0F4VwQ3A1dDdmb3o4SDQ/view

Вы уверены что эта та книга, или у них издания разные? В полной версии Chapter 3 другой

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)