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

Бит ту бит модель Xilinx fft

Здравствуйте. Хочу написать в matlab модель с использованием бит ту бит модели fft xilinx. Однко испытываю некоторые трудности с пониманием кода, а именно:
В xilinx модели присутствуют следующие строки:
Код
% Create input data frame: constant data
  constant_input = 0.5 + 0.5j;
  input_raw(1:samples) = constant_input;
    
  if generics.C_USE_FLT_PT == 0
    % Set up quantizer for correct twos's complement, fixed-point format: one sign bit, C_INPUT_WIDTH-1 fractional bits
    q = quantizer([generics.C_INPUT_WIDTH, generics.C_INPUT_WIDTH-1], 'fixed', 'convergent', 'saturate');
    % Format data for fixed-point input
    input = quantize(q,input_raw);
  else
    % Floating point interface - use data directly
    input = input_raw;
  end

Понимаю, что здесь что то с квантованием, но вот что именно никак понять не могу. Читал, читал, уже голова не соображает..
Изменено пользователем Грендайзер

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


Ссылка на сообщение
Поделиться на другие сайты
В случае (generics.C_USE_FLT_PT == 0) производится квантование входного массива данных.
Параметры квантования рассчитываются функцией q = quantizer(); с заданными свойствами.
Само квантование осуществляется функцией input = quantize(q,input_raw);
Обе команды хорошо документированы, есть множество примеров в Сети.
Не очень понятна проблема. Зачем это делается? Физический смысл?

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Грендайзер @ Aug 15 2017, 14:56) <{POST_SNAPBACK}>
Здравствуйте. Хочу

Имхо теряете время.
Фурье слишком простая и "хорошо изученная" операция, чтобы непонятно во имя чего возиться с такой рутинно-геморной штукой как бит-аккуратная модель.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Dr.Alex @ Aug 22 2017, 03:54) <{POST_SNAPBACK}>
Имхо теряете время.
Фурье слишком простая и "хорошо изученная" операция, чтобы непонятно во имя чего возиться с такой рутинно-геморной штукой как бит-аккуратная модель.
Вообще-то, это есть стандартный способ верификации данного конкретного решения.
Ради него как раз и стоит возиться.

Не вдаваясь в суть задачи, просто реплика.

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


Ссылка на сообщение
Поделиться на другие сайты
x736C, Спасибо, уже сам разобрался sm.gif
Цитата
Имхо теряете время.

Нууу... как сказать...
Изменено пользователем Грендайзер

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


Ссылка на сообщение
Поделиться на другие сайты
Ещё раз здравствуйте. Снова упёрся. Понимаю, что где то рядом, но понять не могу. Вообщем в этой модели, значения входного вектора должны лежать в пределах -1=< 0 < 1, т.к. само ядро может работать с числами с плавающей точкой. Я работаю с фиксированой. И так. Я получил вектор входного воздействия (пусть входные числа знаковые и имеют 8 разрядов с учётом знака) x = [127, -127, 127, -127]. Что бы загнать их в заданный интервал я делю вектор на 128 тогда x_norm = [0,9921875, -0,9921875, 0,9921875, -0,9921875] далее числа квантуются. После того как я получил преобразование, я хочу умножить полученный спектр на некоторую ф-цию. Фу-ция так же отнормирована и квантована. И тут вопрос. Если значения преобразования функции например, такие же, как у сигнала, то в плисе у меня наступит переполнение. Но матлабе никакого переполнения не наступит, т.к. после преобразования, я хоть и получу числа < 1, но всё же достаточно большие что бы не вылезти за предел разрядной сетки. С другой стороны, если бы на входе fft были бы одни единицчы, то в плисе переполнение не наступило бы (1*1 = 1 < 127), а вот в матлабе на выходе FFT будут числа << 1, и тогда они, после перемножения на такие же малые числа, выскачат за предел разрядной сетки. Не могу понять, как в таком случае произвести верификацию кода для ПЛИС?

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


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

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Грендайзер @ Aug 27 2017, 22:42) <{POST_SNAPBACK}>
Не могу понять, как в таком случае произвести верификацию кода для ПЛИС?


Для понимния поможет сделать в симулинке простой проект с умножителем и различным положением точки в операндах, разобраться с блоком convert, типом fixdt(...), сгенерировать HDL умножителя.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата
Для понимния поможет сделать в симулинке...

Мда... наверное это самое правильное...

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


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

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

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

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

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

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

Войти

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

Войти
Авторизация