путаница с matlab fdatool FIR расчетные выходные коэффициенты с фиксированной точкой? - PullRequest
0 голосов
/ 09 октября 2019

Я использую Matlab R2018a fdatool для разработки FIR-фильтра с фиксированной точкой. Есть несколько способов вывести рассчитанные коэффициенты фильтра, например, создать заголовок C, файл Xilinx .coe или рабочую область экспорта. Но результаты, похоже, масштабируются по-разному среди различных методов вывода.

  1. экспорт рабочей области формирует коэффициенты в десятичном
  2. c заголовком в s16,17 -> [-2.500000e-01 2.500000e-01)
    например, 11117/2 ^ 18 = 0,042407989501953, что в 4 раза меньше, чем 0,169631958007813

    /* 
    * Discrete-Time FIR Filter (real)
    
    * Numerator         : s16,17 -> [-2.500000e-01 2.500000e-01)    
    * Input             : s16,15 -> [-1 1)
    */
    
    const int16_T B[51] = {
       27,    -23,   -180,   -114,    337,    425,   -373,   -832,    163,
     1050,    147,   -824,    -93,    266,   -830,     -1,   2676,    876,
    -4738,  -3311,   5788,   6774,  -4836,  -9872,   1890,  11117,      .....
    };
    
  3. Xilinx .coe в гексе в два раза больше, чем заголовок c

0035, ffd3, fe98, ff1c, 02a2, 0351, fd16,f981, 0145,

Пожалуйста, помогите уточнить мои выводы (и объяснить, почему Matlab работает на своем пути).

Заранее спасибо

Майк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...