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

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

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

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

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

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

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

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

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


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

mw = max(abs(w))

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

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


Аватара пользователя
Анастасия
Сообщения: 4
Зарегистрирован: 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
Сообщения: 1
Зарегистрирован: 28 мар 2021, 12:08

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

Сообщение HellishRaccon »

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

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

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

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

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

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

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

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

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

Ответить