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

slash_spb

Участник
  • Постов

    68
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о slash_spb

  • Звание
    Участник
    Участник

Посетители профиля

1 081 просмотр профиля
  1. Воу, восхищен! Спасибо огромное! Не перевелись у нас таланты) Попробую прочитать прошивку таким способом.
  2. Всех приветствую! На моем электроскутере NIU подох блок управления и в связи с этим контроллер мотора запускается на самой маленькой скорости и едет не более 15км/ч, что весьма печально( Хочу научить как-то котроллер работать нормальной на 3-х скоростях без блока управления. Разобрал контроллер и увидел, что стоит там STM32F030, но считать прошивку не получается, т.к. стоит там защита level1. Вот и так вопрос, есть какой-то способ считать содержимое flash-памяти при level1 режиме? Есть какой-нибудь способ? Спасибо за любые наводки
  3. Добрый день! Есть какой-нибудь способ вывести Zynq из secure mode'а? Ключа нет, но нужен сам zynq, чтобы залить новую прошивку. В secure режиме в Zynq JTAG отключен. Новый софт не залить без знания ключа( У AVR вроде как можно сбросить FUSE при помощи подачи 12В на reset при помощи специального программатора. Может что-то у zynq'а что-то подобное есть? Спасибо
  4. Мне кажется что функции правдоподобия нужны при работе с единичными выборками, а не когда вы по многим выборкам уже оценили матожидание, оптимальное решение. К примеру для задании порога детектирования. Зная заранее функцию правдоподобия можно выбрать порог который обеспечит нужную вероятность детектирования пакета данных по преамбуле в условиях шумов, ну и соответственно вероятность ложного срабатывания. А если у нас куча реализаций то всегда можно оптимально принять решение. Надеюсь я правильно понял вопрос.
  5. Добрый день уважаемые форумчане! Помогите разобраться со структурой адаптивного фильтра на 4-е символа на основе LMS-алгоритма. Сделал по такой структуре: Проблема в том, что в моей модели фильтр исправляет только лучи перед основным лучем, т.е. импульсную характеристику канала такого вида h = [0 0 0 0 1 0.1 0 0]. Если же я указываю такую характеристику канала h = [0 0 0.1 0 1 0 0 0], то уже ничего не работает... Как я понял дело в так называемом reference tap параметре, в моей структуре он равен 1, но как его сделать 2 или 3 я не понимаю( Куда я только задержки не пихал Ссылка на модель https://cloud.mail.ru/public/GK8H/w87DnmRe9
  6. В том трансивере(LMS6002D) ФНЧ аналоговый и как раз настроен на полосу сигнала. В текущей реализации модема после RRC стоит схема тактовой подстройки с дробным интерполятором, которая работает по 2 отчетам на символ. Ясно, спасибо.
  7. Спасибо за ответ) Только проблема в том, что в реализации в ПЛИС фильтры работали с 8 отчетами на символ, а новый трансивер позволяет иметь лишь 2.5 отчета на символ. Конечно можно оставить на RRC передачи и на приеме, но на приеме RRC с 2 отчетами на символ и работать с этим, но что-то мне подсказывает что работать это будет плохо. Надо бы это все промоделировать. Другой вариант оставить на передачи RRC, а на приеме рабоать только с ФНЧ, или так совсем плохо будет в моем случае? А вы не могли бы пояснить, почему фильтр приподнятый косинус можно считать полосовым? я просто всегда считал, что это все же ФНЧ.
  8. Уважаемые гуру, у меня вот какой вопрос. Есть модем в котором используется канальные фильтры типа RRC(приподнятый косинус), приемный и передающий реализован в ПЛИС. Планируется в качестве DDC использовать внешнюю микросхему. В данной микросхеме сигнал после переноса на нулевую частоту фильтруется ФНЧ, а потом это все цифруется и передается на обработку в ПЛИС. Я так понимаю в такой схеме отпадает необходимость в приемном канальном фильтре в ПЛИС, т.к. сигнал уже профильтрован во внешнем DDC. Так ли это? Меня смущает то, что импульсная характеристика ФНЧ в DDC скорее всего не вида RRC. Будут ли ухудшения по сравнению с первым вариантом, где все канальные фильтры реализовались в ПЛИС? Спасибо за любое разъяснение)
  9. Если я правильно понял... Weights = interp1(PilotMassiv_INDEX, PilotEstimation, min(PilotMassiv_INDEX):max(PilotMassiv_INDEX) );
  10. Хотя я ошибся, кодирование там не простое, т.к. используется ступенчатая матрица. Кодированные блоки вы с легкостью получите в матлабе и они будут правильные, я бы вам их и послал) Скорее всего тот кодек LDPC который вы используете был написан для стандартов WiMAX, WiFi в которых минимальная скорость кодирования 1/2. В стандарте WiMAX описано три алгоритма кодирования, какой-то из них реализован в вашем кодеке. Ну может не в чистом виде, а в адаптированном для DVB-S2. Для меньших скоростей, которые используются в DVB-S2, нужно использовать алгоритм описанный в этом стандарте. Как-то так)
  11. Думаю в matlab'е с кодированием все правильно, такую бы ошибку быстро нашли бы. Но можно проверить. А по поводу ваших скоростей, кодирование не работает на скоростях где число проверочных бит больше чем число данных. Наверное да, кодер. Хотя алгоритм кодирования в dvb-s2 относительно просто.
  12. Не совсем понял) Вы вроде приводили скрипт в котором можете с легкостью с генерировать нужные кодовые блоки. function [vHat n] = decodeLogMinSumOffsetSinglePassFpga(rx, H, iteration, beta) llr_bit_width = 8; max_val = (2^(llr_bit_width-1))-1; min_val = -(2^(llr_bit_width-1)); [M N] = size(H); Lci = rx'; % Initialization Lrji = zeros(M, N); Pibetaij = zeros(M, N); Zn = Lci; for n = 1:iteration Lrji_prev = Lrji; betaij = ( repmat( Zn, M, 1 ).*H - Lrji ); %Limit data by bit width value. Like in fpga. for i=1:size(betaij,1)*size(betaij,2) if (betaij(i) > max_val) betaij(i) = max_val; end if (betaij(i) < min_val) betaij(i) = min_val; end end %In convertion two's compliment to absolute value %didn't add 1 to save some resources %for i=1:size(betaij,1)*size(betaij,2) % if ( betaij(i) < 0 ) % betaij(i) = betaij(i) + 1; % end %end betaij = abs( betaij ); alphaij = nonzerosign( repmat( Zn, M, 1 ).*H - Lrji ); % ----- Horizontal and Vertical step ----- for i = 1:M % Find non-zeros in the column c1 = find(H(i, :)); for k = 1:length(c1) % Maximum betaij\c1(k) - beta beta_row = betaij(i, c1); beta_row(k) = realmax; minOfbetaij = min( beta_row ) - beta; minOfbetaij = max( [minOfbetaij 0] ); % Multiplication alphaij\c1(k) (use '*' since alphaij are -1/1s) prodOfalphaij = prod(alphaij(i, c1))*alphaij(i, c1(k)); % Update L(rji) Lrji(i, c1(k)) = prodOfalphaij*( minOfbetaij ); Zn_inc = Lrji(i, c1(k)) - Lrji_prev(i, c1(k)); if ( Zn_inc > max_val ) Zn_inc = max_val; end if ( Zn_inc < min_val ) Zn_inc = min_val; end Zn( c1(k) ) = Zn( c1(k) ) + Zn_inc; if ( Zn( c1(k) ) > max_val ) Zn( c1(k) ) = max_val; end if ( Zn( c1(k) ) < min_val ) Zn( c1(k) ) = min_val; end end % for k end % for i %check parity if ( n ~= 1 ) bits = ( nonzerosign( Zn_prev ) - 1 ) / -2; if ( sum(mod(H*bits',2)) == 0 ) break; end end Zn_prev = Zn; end % for n for i=1:length(Zn) if( (Zn(i)) < 0 ) vHat(i) = 1; else vHat(i) = 0; end end %nn = n_last; Мягкие решения делятся на delta=0.075, beta = 2. Ну этот алгоритм для фиксированной точки с ограничением динамическим диапазоном.
  13. Алгоритм декодирования MIN-SUM, такой же как в DVB-S2, только нет коррекции. Ну еще он с одним проходом по строкам кодовой матрице. У меня он есть на матлабе, на си нет. Вам исходник нужен, я правильно понял?
  14. А весят одинаково из-за того что все равно умножитель использован под мю? хотя логики будет немного меньше для 4 бит чем для 18, хотя наверное это не существенно. А вы не в таблице коэффициенты для интерполятора храните? сразу из мю вычисляете коэффициенты?
×
×
  • Создать...