Практическая работа №2
по дисциплине «Системы и обработка сигналов»
ТАШКЕНТ-2022
Теоретическая часть
где
Обратное преобразование массива коэффициентов в массив из
чисел выполняется с помощью соотношений вида
где
В двумерном случае обратное ДКП матрицы коэффициентов T в
матрицу Vразмером N выполняется с помощью соотношений вида
,
где – значение кванта.
Для выполнения обратного вычисления используется формула вида
.
Для определения значений квантов в формате JPEG используется массив
из 64 элементов, называемый таблицей квантования. Каждое значение этой
таблицы используется для квантования соответствующего коэффициента
ДКП. Стандарт JPEG для примера предоставляет две таблицы квантования
(табл. 8.6 и 8.7), которые показали хорошие результаты [13].
Таблица 8.6
ТаблицаквантованиякомпонентаY
16 11 10 16 24 40 51 61
12 2 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 62
18 22 37 56 68 109 103 77
24 35 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99
Таблица 8.7
Таблица квантования компонентов Cb и Сr
17 18 24 47 99 99 99 99
18 21 26 66 99 99 99 99
24 26 56 99 99 99 99 99
47 66 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
В табл. 8.8 для примера приведены результаты квантования дискретных
значений коэффициентов ДКП для фотографии [13].
Таблица 8.8
Результатыквантованиядискретныхзначений
-38 18 1 -3 -1 0 0 0
-9 -8 1 3 1 0 0 0
4 4 0 -1 0 0 0 0
-2 -1 0 0 0 0 0 0
-1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Замечание. Чтобы сгруппировать максимально возможное число
квантованных нулевых коэффициентов для создания наиболее длинных
серий нулевых значений, эти коэффициенты кодируют с использованием
зигзагообразного пути. Этот путь ведется от верхнего левого угла таблицы к
нижнему правому углу.
Это значит, что если мы подадим на вход АЦП реальный сигнал из смеси
двух синусоид, то мы получим аналогичный спектр, состоящий из двух
гармоник.
Во, говорят, что в конец выборки надо добавить нули и спектр будет
рисоваться нормальный.
(1), где:
Что значит «представить функцию в виде суммы ряда»? Это значит, что,
сложив в каждой точке значения гармонических составляющих ряда Фурье,
мы получим значение нашей функции в этой точке.
(2),
или
(3)
и
Отметим, что все эти три представления ряда Фурье совершенно
равнозначны. Иногда при работе с рядами Фурье бывает удобнее
использовать вместо синусов и косинусов экспоненты мнимого аргумента, то
есть использовать преобразование Фурье в комплексной форме. Но нам
удобно использовать формулу (1), где ряд Фурье представлен в виде суммы
косинусоид с соответствующими амплитудами и фазами. В любом случае
неправильно говорить, что результатом преобразования Фурье
действительного сигнала будут комплексные амплитуды гармоник. Как
правильно говорится в Вики «Преобразование Фурье (ℱ) — операция,
сопоставляющая одной функции вещественной переменной другую
функцию, также вещественной переменной.»
Итого:
Математической основой спектрального анализа сигналов является
преобразование Фурье.
Таким образом:
Далее.
видим, что они совпадают, за исключением того, что время в ДПФ имеет
дискретный характер и число гармоник ограничено величиной N/2 —
половиной числа отсчетов.
Как видно на рис.12 функция f(x) периодическая с периодом Т0. Однако из-за
того, что длительность измерительной выборки Т не совпадает с периодом
функции Т0, функция, получаемая как ряд Фурье, имеет разрыв в точке Т. В
результате спектр данной функции будет содержать большое количество
высокочастотных гармоник. Если бы длительность измерительной выборки Т
совпадала с периодом функции Т0, то в полученном после преобразования
Фурье спектре присутствовала бы только первая гармоника (синусоида с
периодом равным длительности выборки), поскольку функция f(x)
представляет собой синусоиду.
Другими словами, программа ДПФ «не знает», что наш сигнал представляет
собой «кусок синусоиды», а пытается представить в виде ряда
периодическую функцию, которая имеет разрыв из-за нестыковки отдельных
кусков синусоиды.
Преобразование Адамара
H m = 1 2 (H m - 1 H m - 1 H m - 1 - H m - 1) {\ displaystyle H_ {m} = {\
frac {1} {\ sqrt {2} }} {\ begin {pmatrix} H_ {m-1} H_ {m-1} \\ H_ {m-1}
k = ∑ i = 0 m - 1 ki 2 i = km - 1 2 m - 1 + км - 2 2 м - 2 + ⋯ + k 1 2 + k 0 n
= ∑ i = 0 m - 1 ni 2 i = nm - 1 2 m - 1 + nm - 2 2 m - 2 + ⋯ + n 1 2 + N 0 {\
Displaystyle {\ begin {выровнено} k = \ sum _ {i = 0} ^ {m-1} {k_ {i} 2 ^
{i}} = k_ {m-1} 2 ^ {m -1} + k_ {m-2} 2 ^ {m-2} + \ cdots + k_ {1} 2 + k_
{0} \\ n = \ sum _ {i = 0} ^ {m-1} { n_ {i} 2 ^ {i}} = n_ {m-1} 2 ^ {m-1} +
{j}}}
Это как раз многомерный 2 × 2 × ⋯ × 2 × 2 {\ Displaystyle \ scriptstyle 2 \, \
times \, 2 \, \ times \, \ cdots \, \ times \, 2 \, \ times \, 2} ДПФ,
нормализованное до унитарного, если входы и выходы рассматриваются как
многомерные массивы, индексированные n j и k j соответственно.
H 0 = + (1) H 1 = 1 2 (1 1 1 - 1) H 2 = 1 2 (1 1 1 1 1 - 1 1 - 1 1 1 - 1 - 1 1 - 1
- 1 1) H 3 = 1 2 3 2 (1 1 1 1 1 1 1 1 1 - 1 1 - 1 1 - 1 1 - 1 1 1 - 1 - 1 1 1 - 1 - 1
1-1-111-1-111111-1-1-1-11-11-1-11-1111-1-1-1-
1 1 1 1 - 1 - 1 1 - 1 1 1 - 1) (ЧАС N) я, J знак равно 1 2 N 2 (- 1) я ⋅ J {\
Displaystyle {\ begin {align} H_ {0} = + {\ begin {pmatrix} {\ begin
{array} { r} 1 \ end {array}} \ end {pmatrix}} \\ H_ {1} = {\ frac {1} {\ sqrt
{2}}} {\ begin {pmatrix} {\ begin {array} { rr} 1 1 \\ 1 -1 \ end {array}} \
end {pmatrix}} \\ H_ {2} = {\ frac {1} {2}} {\ begin {pmatrix} {\ begin
{array} {rrrr} 1 1 1 1 \\ 1 -1 1 -1 \\ 1 1 -1 -1 \\ 1 -1 -1 1 \ end {array}} \ end
{pmatrix}} \\ H_ {3} = {\ frac {1} {2 ^ {\ frac {3} {2}}}} {\ begin
{pmatrix} {\ begin {array} {rrrrrrrr} 1 1 1 1 1 1 1 1 1 1 \\ 1 -1 1 -1 1 -1 1 -
1 \\ 1 1 -1 -1 -1 1 1 -1 -1 \\ 1 -1 -1 1 1 -1 -1 1 \\ 1 1 1 1 -1 -1 -1 -1 \\ 1 -1 1 -1
-1 1 -1 1 \\ 1 1 -1 -1 -1 -1 1 1 \\ 1 -1 -1 1 -1 1 1 -1 \ end {array}} \ end
{pmatrix}} \\\ left (H_ {n} \ right) _ {i, j} = {\ frac {1} {2 ^ { \ frac {n}
Задание
n=512;
x1=-3;
x2=6;
x3=(x2-x1)/n;
x=x1:x3:x2-x3;
m=length(x);
a=zeros(1,m);
for i=1:m
a(i)= power((power(x(i),2)+1),cos(x(i)));
end
% % DCT
a_dct=dct(a);
b_dct=idct(a_dct);
subplot(411);
figure(1)
plot(x,a);title("Main signal");
subplot(412);plot(x,a_dct);title("Spektr");
subplot(413);stem(x,a_dct);title("Diskret value");
subplot(414);plot(x,b_dct);title("Signal again");
% % Diskret Furye
dft_matrix=dftmtx(n);
a_dft=a*dft_matrix;
b_dft=a_dft*dft_matrix';
figure(2)
subplot(412);plot(x,a_dct);title("Spektr");
subplot(413);stem(x,a_dct);title("Diskret value");
subplot(414);plot(x,b_dct);title("Signal again");
% Adamar
matrix=hadamard(n);
a_hadmar=a*matrix;
b_hadmar=a_hadmar*matrix;
figure(3)
subplot(411);plot(x,a);title("main signal");
subplot(412);plot(x,a_hadmar);title("Spektr");
subplot(413);stem(x,a_hadmar);title("Diskret value");
subplot(414);plot(x,b_hadmar);title("Signal again");
График 1
График 2
График 3