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

Согласованный фильтр, ФИФО с отводами и т.д.

Если входной сигнал у фильта знаковый, то в опорной последовательности 0 означает +1, а 1 -- -1. Соответственно, отсчёт сигнала либо прибавляется, либо вычитается. Иначе корреляционного пика вы не получите.

Для приведенного в начале примера, если использовать разные способы "перемножения", получаем следующие значения для отсутствия сигнала и полного совпадения:

xor  4  0
!xor 3  7
and  0  4

в любом случае разница равна 4, количеству единиц в коде. При использовании знаковых чисел, наверное, будет что-то подобное, только смещенное.

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


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

Для приведенного в начале примера, если использовать разные способы "перемножения", получаем следующие значения для отсутствия сигнала и полного совпадения:

xor  4  0
!xor 3  7
and  0  4

в любом случае разница равна 4, количеству единиц в коде. При использовании знаковых чисел, наверное, будет что-то подобное, только смещенное.

Если по логике то надо наверно !xor...но это если 1 бит используем...в ином случае умножение на 1, -1 или неинверсия, инверсия знакового бита соотвественно...

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


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

Если по логике то надо наверно !xor...но это если 1 бит используем...в ином случае умножение на 1, -1 или неинверсия, инверсия знакового бита соотвественно...

Заменим во входной последовательности 0011101 каждую единицу на 2 (двухбитовый код). Если коэффициенты фильтра 0 и 1 соответствуют x0 и x1, получим для отсутствия сигнала и полного совпадения числа 0 и 8. Если коэффициенты фильтра соответствуют x1 и -x1, получим числа 0 и -8. Т.е., все равно...

upd. Но для коэффициентов 0 и x1 есть одно преимущество - нулевые отводы фильтра вообще не нужны! Схема упрощается.

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


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

assign Output = res[0] + res[1] + res[2] + res[3] + res[4] + res[5] + res[6];

Так лучше не делать, ибо по умолчанию будет 6 последовательных сумматоров :) Берите либо в скобки, либо отдельные wire.

Для приведенного примера, если использовать два разряда, то максимальное значение по теории +7, отрицательное -7, среднее будет колебаться в районе нуля.

Для одноразрядного - максимум +7, минимум 0, среднее 3 или 4. Т.е. диапазон размаха в два раза хуже как я уже и писал ранее.

AND на моей памяти никто в подобных схемах не использовал, ибо таблица истинности другая :). Сама суть работы согласованного фильтра теряется. И вообще обычно объединяют по модулю минимум-максимум, ищут только отклонение от среднего значения, причем этот "порог", его значение может быть вообще плавающим. Минимум означает, что входная последовательность полностью отличается от эталона, что происходит если она инвертировалась, типичная ситуация для ФМ2 когда начальная фаза сигнала неизвестна.

Кстати, если использовать одноразрядный фильтр, то выигрыш по регистрам в 2 раза ну и плюс по одному разряду в каждом сумматоре при классической схеме.

Я вот не знаю, ДСФ норм если оставить, или лучше заюзать SL32С и несколько разрядов, именно по ресурасм. Ведь с помощью SL32С можно в перспективе работать)

Чего за SL32C, ссылочку киньте, а то от жизни кажись отстал...Или это SRLC32E?

А Вы попробуйте и так и так сделать, сравните результат сами, ну и можете потом выложить описание и результат сюда, обсудим :smile3009:

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

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


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

Так лучше не делать, ибо по умолчанию будет 6 последовательных сумматоров :) Берите либо в скобки, либо отдельные wire.

Ясно. Сенк...приму к сведению!

 

Для приведенного примера, если использовать два разряда, то максимальное значение по теории +7, отрицательное -7, среднее будет колебаться в районе нуля.

Для одноразрядного - максимум +7, минимум 0, среднее 3 или 4. Т.е. диапазон размаха в два раза хуже как я уже и писал ранее.

AND на моей памяти никто в подобных схемах не использовал, ибо таблица истинности другая :). Сама суть работы согласованного фильтра теряется. И вообще обычно объединяют по модулю минимум-максимум, ищут только отклонение от среднего значения, причем этот "порог", его значение может быть вообще плавающим. Минимум означает, что входная последовательность полностью отличается от эталона, что происходит если она инвертировалась, типичная ситуация для ФМ2 когда начальная фаза сигнала неизвестна.

С этим вроде разобрались :)

 

Кстати, если использовать одноразрядный фильтр, то выигрыш по регистрам в 2 раза ну и плюс по одному разряду в каждом сумматоре при классической схеме.

При инверсной структуре как я понимаю занимаемый объем увеличивается, но облегчается описание + можно оптимально использовать все плюсы LUT (SLR16,32).

Для 1 битовой если стандартную взять, а для 8 битовой инверсную например, норм?

 

А Вы попробуйте и так и так сделать, сравните результат сами, ну и можете потом выложить описание и результат сюда, обсудим :smile3009:

Попробую :) Но это если собрать Передатчик и начало приемника.

 

Что есть:

 

1) Кодер РС

2) Блоковый интерливер

3) Сверточный кодер

4) Блок расширения спектра (генератор ПСП)

5) Блок модуляции (генератор синуса/косинуса)

6) ПФ (можно синтезировать в матлабе)

7) Есть скаченный :( блок AWGN

8) ПФ (???)

9) Квадратурная демодуляция (генератор синуса/косинуса)

10 ) 2 СФ на I и Q компоненты (2 варианта, с 1 битом, с 8 битами)

11) дальше потом)

 

Сейчас стоит вопрос, как соеденить блоки в передатчике, при это надо формировать кадры...

 

 

 

Чего за SL32C, ссылочку киньте, а то от жизни кажись отстал...Или это SRLC32E?

Называется SRLC32E, SL32C неправильно написал...

http://www.xilinx.com/support/documentatio...uides/ug384.pdf

стр. 54

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


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

:bb-offtopic:

7) Есть скаченный sad.gif блок AWGN

8) ПФ (???)

awgn лично генерировал с помощью коргенератора прямо из матлаба, на вход 12 разрядов, с помощью параметра задавался уровень шума. Распределение шума было почти равномерным, т.е. фактически белый шум и был. Никаких проблем не возникало, данный канал отлично синтезировался на частоте 120МГц в 3ем спартане, ну и в железке выдавал ожидаемый результат, с помощью XMD задавался параметр изменения уровня шума (правда там в сгенеренном коде тупых ошибок несколько было, типа точка с запятой лишняя, но они быстро отыскивались).

ПФ, вообще хоть руками из матлаба генерите, либо filter HDL coder используйте, RTL описание хоть и далеко от идеального будет, но исправить его - дело на пять минут.

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

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


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

awgn лично генерировал с помощью коргенератора прямо из матлаба, на вход 12 разрядов, с помощью параметра задавался уровень шума. Распределение шума было почти равномерным, т.е. фактически белый шум и был. Никаких проблем не возникало, данный канал отлично синтезировался на частоте 120МГц в 3ем спартане, ну и в железке выдавал ожидаемый результат, с помощью XMD задавался параметр изменения уровня шума (правда там в сгенеренном коде тупых ошибок несколько было, типа точка с запятой лишняя, но они быстро отыскивались).

ПФ, вообще хоть руками из матлаба генерите, либо filter HDL coder используйте, RTL описание хоть и далеко от идеального будет, но исправить его - дело на пять минут.

Спасибо за инфу!! АБГШ не пробовал, попробовал генератор бернулли сгенерировать - такую чушь сгенерировал))

Насчет фильтров: буду пробовать - пока ниразу не генерировал :)

 

Решил поигратся с Simulink + Active-HDL.

 

Сваял небольшую схему для проверки:

scheme_mf.JPG

Получилось:

diagramm.JPG

 

Наверно в Симулинке и буду тестит схему.

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


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

У меня есть кодер Рида-Соломона (255, 239), при этом сейчас входная и выходная скорости одинаковые. Как сделать чтобы скорость выходного потока была в 255/239 раз больше входного?

 

Спасибо!

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


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

У меня есть кодер Рида-Соломона (255, 239), при этом сейчас входная и выходная скорости одинаковые. Как сделать чтобы скорость выходного потока была в 255/239 раз больше входного?

Это по идее скорость входного потока должна быть меньше. А паузы между блоками данных не пробовали ставить с разрешением работы? Например блок данных из 239 бит и подсвеченный флаг, а дальше 16 нулей, при этом тактовая частота остается неизменной.

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

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


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

Это по идее скорость входного потока должна быть меньше. А паузы между блоками данных не пробовали ставить с разрешением работы? Например блок данных из 239 бит и подсвеченный флаг, а дальше 16 нулей, при этом тактовая частота остается неизменной.

Скорость входного потока фиксирована - 16 кбит/с, т.е. получается 2 клока? Не очень понимаю как это делается, пока только с памятью вижу - когда записывается 239 байт, потом они считываются с большей скоростью + добавляются проверочные, так правильно? Есди да, то как лучше это сделать?

 

Сенк!

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


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

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

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

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

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

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

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

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

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

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