реклама на сайте
подробности

 
 
> Непонятки с моделью в симулинке, Гуру прошу вашей помощи
des00
сообщение Mar 5 2009, 05:56
Сообщение #1


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



добрый день!

Гуру симулинка просветите что я делаю не так.

Стоит задача сделать простой кабельный модем. Функциональная схема следующая:

плис передатчик (генератор потока - скремблер - формирователь фронтов - цап-фильтр) - кабель 100-300 метров - плис приемник (фильтр - ацп - дециматор - LMS эквалайзер - временной декодер - петля по тактовой/дескремблер - VCO/ИКО)

в железе собрал проект за 1 день (кроме LMS эквалайзера), все работает данные передаются корректно, петля в захвате, полоса петли 1кгц.

для не слепой разработки эквалайзера начал осваивать симулинк, перенес туда аппаратный проект как есть. сделал все на double типах, время дискретное фиксированное. Опорная частота работы 179.2МГц.
Но модель 05 моделируется очень медленно(вот это не понятно) и контроль поведения модели в разных точках проекта идет в разнос с тем, что происходит в аппаратуре(этом может быть сам где накосячил).

Если вам не сложно дайте ответ на следующие вопросы:
1. Почему модель моделируется очень медленно?
2. Как корректно в симулнике моделировать аналоговые цепи вида ЦАП-фильтр - модель кабеля (фильтр) - фильтр - АЦП?
3. Как корректно моделировать АЦП, который работает от подстаиваемого ГУН (Zero Order Hold в Enable Subsytem все равно требует задания Sample Time)?
4. Как перенести корректно типы в модели с double в типы, которые используются в проекте. Особенно интересуют петли, иначе такая модель не показательна. В модели 06 я изменил все типы на типы проекта, но так и не понял как корректно выкусить 12 старших бит из 32 на выходе петлевого фильтра, что бы матлаб считал результат как sint12?
5. Как корректно описывать временные декодеры, на подобие тех, что у меня в проекте?

Копаюсь уже вторую неделю и все больше прихожу к мысли что для аппаратной разработки модемов нужно использовать мосты ХДЛ симулятор-симулинк, а не чистый симулинк. А то тривиальные временные вещи (тот же временной декодер) описываются через одно место. И ведь по сути модем разрабатывается 2 раза, сначала нарисовать все в симулинке, потом ручками перебить в хдл.

Спасибо.
Прикрепленные файлы
Прикрепленный файл  cable_05.zip ( 42.58 килобайт ) Кол-во скачиваний: 41
Прикрепленный файл  cable_06.zip ( 120.94 килобайт ) Кол-во скачиваний: 37
 


--------------------
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 26)
_Anatoliy
сообщение Mar 6 2009, 06:05
Сообщение #16


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(des00 @ Mar 6 2009, 05:47) *
понял зайдем с этой стороны. спасибо.


Я попробовал скрестить симулинк с Active-HDL,глюкалово ещё то.Может на небольших моделях и будет работать,но у меня,например,скопы подключенные к одному и тому-же сигналу но в разных блоках показывали разные картинки.
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 13 2009, 07:28
Сообщение #17


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Добрый день господа!

собрал FSE эквалайзер в железе. В качестве декодера ошибок использую декодер по решениям. Внес в канал только амплитудные искажения (поставил делитель напряжения)

и вижу принеприятнейшую картину, коэффициенты эквалайзера медленно, но постоянно плавают(интервал наблюдения минут 30). При этом эквалайзер сводит ошибку к нулю (т.е. по его мнению все нормально).
Если пересчитать импульсную характеристику эквалайзера в частотную то видно что эквалайзер формирует провал в частной характеристике в диапазоне от Fs..2Fs (Fs символьная частота). Хотя по идее он должен был только пересчитать центральный коэффициент.

Собрал похожую модель в симулинке (в атаче, матлаб 2007а), при работе с double коэффициенты не плавают, но с точки зрения частной характеристики видна та же картина. А имеено ассиметричность коэффициентов относительно центрального. Длинна эквалайзера 32 тапа, индекс центрального коэффициента 16.

Мне не понятно следующее

1. Почему 15 ый коэффициент изменяется некорректно и асимметрично с 17 ым?
2. Откуда эквалайзер находит фазовые искажения в канале, в котором их нет? По моему мнению он должен был просто дотянуть центральный коэффициент, т.е. выступить в роли АРУ
3. в модели petrov qam_fb_symbol_sync_fb_phase_sync_agc_var_ch_delay_eq_2007_07_21.mdl используется два детектора ошибки, в моей модели только детектор по решению? Корректно ли это ?
4. Почему при сходимости эквалайзера(ошибка ~= 0), сигнал на его выходе, на частоте 2*Fs визуально "хуже" чем на входе? понятно что это из-за коэффициентов FIR, но мне не понятно является ли такая ситуация нормальной.


Спасибо.
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  cable_equ_32order.zip ( 15.2 килобайт ) Кол-во скачиваний: 25
 


--------------------
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 13 2009, 11:13
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(des00 @ Mar 13 2009, 10:28) *
2. Откуда эквалайзер находит фазовые искажения в канале, в котором их нет? По моему мнению он должен был просто дотянуть центральный коэффициент, т.е. выступить в роли АРУ


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


Цитата(des00 @ Mar 13 2009, 10:28) *
3. в модели petrov qam_fb_symbol_sync_fb_phase_sync_agc_var_ch_delay_eq_2007_07_21.mdl используется два детектора ошибки, в моей модели только детектор по решению? Корректно ли это ?


Критерий настройки по решению работает только если решения более-менее правильные, когда глазок полностью схлопнут он не будет работать, поэтому в моей модели при больших ошибках используется критерий слепой настройки Годарда.

Ваша модель не открывается у меня.
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 13 2009, 13:09
Сообщение #19


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(petrov @ Mar 13 2009, 05:13) *
Не из любой начальной амплитуды сигнала критерий настройки может подстроить усиление, только в небольших пределах, поэтому у меня в модели есть АРУ.


коэффициенты эквалайзера изменяются в пределе от -2.0 до 1.99, решение принимается по точкам +-64, входной сигнал +-32. если я правильно понимаю от эквалайзер может усилить сигнал в 2 раза

Цитата
Ваша модель не открывается у меня.


понял, перенесу на выходных модель в 7.0.1 матлаб и выложу


--------------------
Go to the top of the page
 
+Quote Post
Tue
сообщение Mar 13 2009, 13:29
Сообщение #20


Частый гость
**

Группа: Свой
Сообщений: 166
Регистрация: 7-09-05
Из: Москва
Пользователь №: 8 340



Цитата(des00 @ Mar 5 2009, 08:56) *
Если вам не сложно дайте ответ на следующие вопросы:
1. Почему модель моделируется очень медленно?
2. Как корректно в симулнике моделировать аналоговые цепи вида ЦАП-фильтр - модель кабеля (фильтр) - фильтр - АЦП?
3. Как корректно моделировать АЦП, который работает от подстаиваемого ГУН (Zero Order Hold в Enable Subsytem все равно требует задания Sample Time)?
4. Как перенести корректно типы в модели с double в типы, которые используются в проекте. Особенно интересуют петли, иначе такая модель не показательна. В модели 06 я изменил все типы на типы проекта, но так и не понял как корректно выкусить 12 старших бит из 32 на выходе петлевого фильтра, что бы матлаб считал результат как sint12?
5. Как корректно описывать временные декодеры, на подобие тех, что у меня в проекте?


1. Моделируется медленно из-за того, что очень малый расчетный шаг. Я обычно борюсь с этим следующим образом: компилирую модель в Real-Time Workshop - он создает исполняемый .exe файл, запускаю его на выполнение, на выходе которого формируется .mat файл с данными, которые выводятся на Scope'ы. Дальше просто загружаю этот файл в рабочее пространство Матлаба и уже на график. Бывает, что .mat файл формируется уж неприлично большим. Тогда можно поступить чуть хитрее. Выводить на Scope'ы сигналы не все время, а только когда он изменяется - размер .mat файла уменьшается на порядок. У Real-Time Workshop'a есть опции для настройки (быстрее компилировать модель и медленее выполнять ее, или медленнее компилировать и быстрее выполнять). Также советую для компилирования моделей поставить какой-нибудь компилятор поновее (не встроенный в матлаб) и настроить Real-Time Workshop на него. Я использую компилятор от Microsoft Visual Studio 2005.
В целом, использование такого метода уменьшает время ожидания результатов моделирования по сравнению с традиционным на порядки.

2-3 не очень понятны вопросы (что конкретно не понятно), все зависит от глубины моделирования. Если вы не особо знакомы с Симулинком, лучше наверное начать с изучения и понимания разницы между Discrete Signal и Continuous Signal в Симулинке. Искать примеры моделей по интересующей вас теме на сайте матлабовцев.

4. Это лучше посмотреть демки пакета Simulink Fixed Point. Например "Double to Fixed-Point Conversion", "Fixed-Point to Fixed-Point Conversion"

5. Ничего не могу сказать, не моя тема.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Mar 13 2009, 13:49
Сообщение #21


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(des00 @ Mar 13 2009, 09:28) *


А у меня модель просто летает rolleyes.gif
Пока что заметил,так это то что нет символьной синхронизации.Вот сигнал с выхода фильтра Гарднера:
Сигнал должен быть стационарным.Дальше ещё посмотрим.

Кстати,как Вы делаете цветные модели?У меня все чёрно-белые wink.gif
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 13 2009, 13:53
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(des00 @ Mar 13 2009, 16:09) *
коэффициенты эквалайзера изменяются в пределе от -2.0 до 1.99, решение принимается по точкам +-64, входной сигнал +-32. если я правильно понимаю от эквалайзер может усилить сигнал в 2 раза


Дело не в том что центральный коэфициент может или не может какие-то значения принимать, а в том что рабочая функция при выбранном критерии настройки имеет локальные минимумы отличные от глобального.
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 14 2009, 09:02
Сообщение #23


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



выкладываю проект под матлаб 7.0.1 ( модели уважаемого petrov я запускал именно в нем).

Поправил петлю по тактовой, конечно в ней не хватает аналогового фильтра на 1кгц, но как его применить в данной модели мне не понятно. Design Filter Tool валиться на требуемой АЧХ RC фильтра второго порядка sad.gif.

если я правильно трактую что я виду, то после переходного процесса петля устаканивается.

но вот эквалайзер все равно работает странно.

Передатчик выдает сигнал +-128, эквалайзер настроен на +-64, пробывал разные ампилитудные искажения 1/2, 2/3, 1/3, во всех случаях эквалайзер начинает тянуть соседние от центрального коэффициенты и если я правильно понимаю то находит частотные искажения в канале, в котором их нет. При этом сигнал на выходе эквалайзера визуально хуже чем на входе.

2 petrov

Цитата
Дело не в том что центральный коэфициент может или не может какие-то значения принимать, а в том что рабочая функция при выбранном критерии настройки имеет локальные минимумы отличные от глобального.


хмм, я думал что в методе наименьших квадратов только один минимум, а как тогда определить что попал имеено в тот минимум который нужен ?

2 _Anatoliy

Цитата
Кстати,как Вы делаете цветные модели?У меня все чёрно-белые


Format -> Port/Signals -> Sample Time Colors

без этого как без рук, мне философию матлаба с разными тактовыми и сигналами разрешения на этих тактовых (та же модель АЦП на другом клоке) пока не понять.

2 Tue

спасибо за советы
Прикрепленные файлы
Прикрепленный файл  cable_equ32order.zip ( 14.68 килобайт ) Кол-во скачиваний: 32
 


--------------------
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Mar 16 2009, 10:59
Сообщение #24


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(des00 @ Mar 14 2009, 11:02) *
Длинна эквалайзера 32 тапа, индекс центрального коэффициента 16.


Что-то у меня получается индекс не 16,а 17.Проверьте.
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 16 2009, 22:03
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Проблема не в эквалайзере а в символьной синхронизации, если отключить петлю символьной синхронизации и подобрать правильную фазу задержкой, то эквалайзер подстраивает усиление, не только центральным коэффициентом, другие тоже немного меняются. В вашем простом случае действительно усиление можно подстраивать одним лишь эквалайзером, но соответственно увеличиваются требования к его разрядности.
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 19 2009, 14:16
Сообщение #26


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(petrov @ Mar 16 2009, 16:03) *
Проблема не в эквалайзере а в символьной синхронизации, если отключить петлю символьной синхронизации и подобрать правильную фазу задержкой, то эквалайзер подстраивает усиление, не только центральным коэффициентом, другие тоже немного меняются. В вашем простом случае действительно усиление можно подстраивать одним лишь эквалайзером, но соответственно увеличиваются требования к его разрядности.


спасибо большое, та модель была сделана тяп ляп, я посмотрел по ИКО увидел что ошибок нет и занялся эквалайзером.

сейчас переработал модель, добавил антиалайзинговый фильтр по выходу, настроил петлю по тактовой (переходный процесс хорошо видно в начале старта модели), убрал 8 ми битное масштабирование (т.е. поставил точки в [-0.5 0.5]).

эквалайзер стал вести себя более корректно (пока вносил только амплитудные искажения), но вот что интересно. Вношу искажения 3/4(equ_coe_3_4.jpg, слева), коэффициенты ведут себя корректно, ИХ эквалайзера идет по sin(x)/x, а когда вношу искажения 1/4 (equ_coe_1_4.jpg, справа)то ИХ тоже идет по sin(x)/x но с периодом в 2 раза больше(!!!). По сигналу и ошибкам все нормально, но вообще ситуация странная.

Не могли бы вы объяснить данную ситуацию ? Или это как раз и есть пример влияния динамического диапазона эквалайзера на сходимость коэффициентов ?

Спасибо.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  cable_equ32order_unscaled.zip ( 26.06 килобайт ) Кол-во скачиваний: 24
 


--------------------
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 20 2009, 08:03
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Динамический диапазон тут не при чём, с плавающей точкой всё то же самое наблюдается. Если хотите наблюдать только изменение центрального коэффициента в зависимости от амплитуды то делайте обычный адаптивный фильтр с настройкой по известному сигналу и в качестве сигнала используйте белый шум, в данном случае с таким критерием настройки и сигналом получается вот такой такой глобальный минимум, ошибка то ведь минимизируется. И всё же лучше сделать АРУ.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 10:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.02486 секунд с 7
ELECTRONIX ©2004-2016