- •Лабораторная работа №1.
- •5. Воспроизвести с помощью звуковой платы сигнал X(t) с различными частотами дискретизации
- •4. Выполнить оптимальное квантование сигналов x1(k) иx2(k), используя от 1 до 4 бит на отсчет. Для сигналаx1(k) использовать как вычисленные в п. 6 пороги и уровни, так и указанные в приложении
- •5. Для каждого из проквантованных сигналов (всего их должно быть три: x1(k) в
4. Выполнить оптимальное квантование сигналов x1(k) иx2(k), используя от 1 до 4 бит на отсчет. Для сигналаx1(k) использовать как вычисленные в п. 6 пороги и уровни, так и указанные в приложении
Запустим task3_1.m, этот файл также выводит нужные графики, вот пример:
Эти графики иллюстрируют оптимальное квантование с использованием функции lloyds( + заранее вычисленные значения дляx1(k)) и нашей функцииoquant.
Да, не стоит волноваться по поводу того что task3_1.mмедленно работает, это связано с тем что внутри происходит большое к-во символических вычислений, в частности вычисление оценки (6), но об этом позже.
5. Для каждого из проквантованных сигналов (всего их должно быть три: x1(k) в
И вновь запускаем task3_1.m, последняя часть его вывода содержит нужную информацию:
comparison:
For x1 signal:
M error:
using uniform quantation: 1.080 0.231 0.059 0.013
using optimal quantation (lloyds): 0.439 0.154 0.040 0.010
using optimal quantation (precalc): 0.442 0.165 0.055 0.013
ThM error:
using uniform quantation: 0.906 0.227 0.057 0.014
using optimal quantation (lloyds): 0.365 0.066 0.004 0.001
using optimal quantation (precalc): 0.363 0.066 0.011 0.002
SNR:
using uniform quantation: 0.267 6.973 12.903 19.430
using optimal quantation (lloyds): 4.172 8.734 14.603 20.761
using optimal quantation (precalc): 4.150 8.415 13.171 19.341
For x2 signal:
M error:
using uniform quantation: 2.351 0.469 0.111 0.028
using optimal quantation (lloyds): 0.541 0.190 0.065 0.025
ThM error:
using uniform quantation: 1.640 0.410 0.103 0.026
using optimal quantation (lloyds): 0.375 0.106 0.023 0.010
SNR:
using uniform quantation: 0.578 7.579 13.841 19.808
using optimal quantation (lloyds): 6.959 11.504 16.145 20.321
Тут ошибки (2) - M, (6) -ThMиSNRсчитаются с помощью функций:error_m,error_dиsnrсоответственно. Особое внимание стоит уделить функцииerror_d, которая символически вычисляет ошибку (6), внутри неё вычитывается большое к-во интегралов в цикле, поэтому её выполнение может затянуться на слабых машинах. Также скрипт выводит следующие графики зависимостей:
Итак, имея таблицу и графики всех способов квантования, мы можем сделать вывод, что оптимальное квантование зовётся таким по праву, хотя и не даёт особый выигрыш (разница всего в 1 децибел в SNR). Заранее вычисленные значенияlloydsпочему-то не дают особого преимущества, разве что:
Не нужно затрачивать время на вычисление levelsиvalues.
Не нужно передавать levelиvaluesпо каналу связи, т.к они заранее известны (savebandwidth)
P.S: Все файлы .mи .aviв архиве, вместе с этим отчётом.
Работу выполнил: Воробьёв Станислав, МП-40.