Динамическое квантование коэффициентов цифрового КИХ-фильтра

Все что касается фильтрации
Аватара пользователя
Анастасия
Сообщения: 6
Зарегистрирован: 14 фев 2021, 21:49

Динамическое квантование коэффициентов цифрового КИХ-фильтра

Сообщение Анастасия »

Здравствуйте, у меня задание по курсовой: нужно отквантовать коэффициенты цифрового КИХ-фильтра с разрядностью представления от 16 до 3 бит. И для оценки функциональные ошибки этого квантования. Подскажите, пожалуйста, как это сделать?

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Динамическое квантование коэффициентов цифрового КИХ-фильтра

Сообщение Бахурин Сергей »

Код: Выделить всё


% w - исходные к-ты

mw = max(abs(w))

% разрядность
bw = 8 

% квантование
wq = round(w / mw * 2^(bw-1))


Аватара пользователя
Анастасия
Сообщения: 6
Зарегистрирован: 14 фев 2021, 21:49

Re: Динамическое квантование коэффициентов цифрового КИХ-фильтра

Сообщение Анастасия »

У меня есть исходные неквантованные коэффициенты КИХ-фильтра высоких частот 56-ого порядка в последовательной SOS-форме. Мне необходимо получить квантованные коэффициенты в той же SOS-форме с разрядностью от 16 до 3 бит для дальнейшего расчета функциональной ошибки квантования. Я пытаюсь квантовать эти коэффициенты в матлабе по следующей программе. Правильно ли я поступаю?

Код: Выделить всё

%Din_Quant_FLOAT_start_opt.top_HEKBAHTOBAH_OPNBV_FIR_FV4
FIRHK = ...
[[  -0.071588    -0.360725    -0.869045   1.00   0.00   0.00]
[    0.986765    -0.518715    -0.144915   1.00   0.00   0.00]   
[   -0.230625    -0.325346    -0.826175   1.00   0.00   0.00]   
[    0.353737     0.891225    -0.999992   1.00   0.00   0.00]   
[    0.994392     0.277302    -0.019768   1.00   0.00   0.00]
[   -0.284679    -0.987887     0.967166   1.00   0.00   0.00]   
[    0.989225     -0.477768   -0.087970   1.00   0.00   0.00]   
[    0.973320     -0.694183   -0.276899   1.00   0.00   0.00]   
[    0.699314     0.472431     0.171550   1.00   0.00   0.00]    
[    0.930847     -0.437019   -0.216783   1.00   0.00   0.00]   
[    0.870865     -0.916046    0.160130   1.00   0.00   0.00]    
[    0.965147     -0.901802    0.224881   1.00   0.00   0.00]    
[    0.806828     -0.156378   -0.086951   1.00   0.00   0.00]   
[    0.917742     -0.544495   -0.033771   1.00   0.00   0.00]   
[    0.894470     -0.493591   -0.204972   1.00   0.00   0.00]   
[    0.941012     0.334978     0.157385   1.00   0.00   0.00]    
[    0.630024     -0.323000   -0.180356   1.00   0.00   0.00]   
[    0.856587     0.121003     0.002271   1.00   0.00   0.00]    
[    0.987566     0.427634     0.175502   1.00   0.00   0.00]    
[    0.965319     0.384359     0.101518   1.00   0.00   0.00]    
[    0.920878     0.070483    -0.040774   1.00   0.00   0.00]   
[    0.857104     -0.772873    0.241015   1.00   0.00   0.00]    
[   -0.289370    -0.804035     0.100329   1.00   0.00   0.00]    
[    0.870623     0.133400     0.240110   1.00   0.00   0.00]    
[    0.911626     0.076553     0.282537   1.00   0.00   0.00]    
[    1.000000    -0.160968    -0.062678   1.00   0.00   0.00]   
[    0.889717     -0.124430   -0.133349   1.00   0.00   0.00]   
[    0.928695     0.019325    -0.073175   1.00   0.00   0.00]];   


Fs=2000;
[b,a]=sos2tf(FIRHK); % SOS -> Direct
hq=qfilt('df1t', {b, a},'quantizer', [4 3]);
[H, f]=freqz(hq, 512, Fs); % H(z)
mag=(abs(H)); %Lin
figure
plot(f,mag)
xlabel('Frequency');
ylabel('Gain');
figure
phi=angle(H);
phi=unwrap(phi); %ckok
plot(f, phi/pi), grid on % Rad/pi
xlabel('Frequency');
ylabel('Phase response, rad/pi');

HellishRaccon
Сообщения: 3
Зарегистрирован: 28 мар 2021, 12:08

Re: Динамическое квантование коэффициентов цифрового КИХ-фильтра

Сообщение HellishRaccon »

Анастасия, подскажите, пожалуйста, что Вы подразумеваете под понятием "динамическое квантование"?
Последний раз редактировалось HellishRaccon 29 мар 2021, 12:20, всего редактировалось 1 раз.

Аватара пользователя
Анастасия
Сообщения: 6
Зарегистрирован: 14 фев 2021, 21:49

Re: Динамическое квантование коэффициентов цифрового КИХ-фильтра

Сообщение Анастасия »

HellishRaccon, под понятием "динамического квантования" я подразумеваю применение методов динамического программирования. Применение этих методов позволит уменьшить ошибку квантования

Аватара пользователя
Анастасия
Сообщения: 6
Зарегистрирован: 14 фев 2021, 21:49

Re: Динамическое квантование коэффициентов цифрового КИХ-фильтра

Сообщение Анастасия »

Отквантовав данные в FDA Tool, пользуясь следующей формулой для поиска функциональной ошибки:
, подразумевая, что - уже квантованные коэффициенты, – текущее значение характеристики фильтра на k-ой дискретной частоте диапазона определения для заданной разрядности R представления коэффициентов, а - неквантованное значение частотной характеристики КИХ-фильтра, я получила следующие значения:
изображение_2021-05-01_115408.png
изображение_2021-05-01_115408.png (10.98 КБ) 3844 просмотра
График соответствующей зависимости для наглядности представила в логарифмическом масштабе:
изображение_2021-05-01_115542.png
Также отразила модификацию АЧХ квантуемого цифрового КИХ-фильтра при понижении разрядности его коэффициентов в линейной и логарифмической шкале соответственно:
изображение_2021-05-01_115716.png
Какие выводы можно сделать?
Как можно увидеть, применяя алгоритмы классического квантования, возникает достаточно большая функциональная ошибка, считающаяся неустранимой. Однако её можно значительно (в несколько десятков раз!) уменьшить, применив методы квантования коэффициентов в концепции динамического программирования.

HellishRaccon
Сообщения: 3
Зарегистрирован: 28 мар 2021, 12:08

Re: Динамическое квантование коэффициентов цифрового КИХ-фильтра

Сообщение HellishRaccon »

Каким образом можно применить алгоритмы динамического программирования к квантованию коэффициентов фильтра?

HellishRaccon
Сообщения: 3
Зарегистрирован: 28 мар 2021, 12:08

Re: Динамическое квантование коэффициентов цифрового КИХ-фильтра

Сообщение HellishRaccon »

Подскажите, а как посчитать уменьшение разрядности на конкретной цифровой платформе?

Аватара пользователя
Анастасия
Сообщения: 6
Зарегистрирован: 14 фев 2021, 21:49

Re: Динамическое квантование коэффициентов цифрового КИХ-фильтра

Сообщение Анастасия »

HellishRaccon, можно рассмотреть способ квантования коэффициентов цифрового КИХ-фильтра в концепции динамического программирования, как динамического процесса пошагового квантования коэффициентов с их дискретной оптимизацией на каждом шаге по общей для всего процесса квантования целевой функции, причём результаты решения на одном этапе процесса квантования существенно влияют на последующие шаги. Принцип оптимальности Р. Беллмана, являющийся основным содержанием динамического программирования, гарантирует, что решение на любом шаге не локально лучше, а лучше с точки зрения процесса квантования коэффициентов в целом. Динамическое квантование позволяет в десятки раз уменьшить функциональную ошибку реализации требуемых характеристик малоразрядного цифрового фильтра в сравнении с классическим квантованием, т.е. позволит нам проектировать малоразрядные цифровые фильтры с максимальным быстродействием.

Аватара пользователя
Анастасия
Сообщения: 6
Зарегистрирован: 14 фев 2021, 21:49

Re: Динамическое квантование коэффициентов цифрового КИХ-фильтра

Сообщение Анастасия »

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

Ответить