Лабораторочки / ЦОС 5 ориг
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра ТОР
отчЕт
по лабораторной работе №5
по дисциплине «Цифровая обработка сигналов»
Тема: Эффекты квантования и округления
фыв
Студенты гр. фыв |
|
фыв фыв |
Преподаватель |
|
фыв |
Санкт-Петербург
фыв
Цели работы:
Исследование свойств шума квантования.
Исследование влияния округления коэффициентов фильтра на его параметры.
Исследование собственного шума цифрового фильтра.
Индивидуальное задание:
Параметры гармонического сигнала являются индивидуальными.
Вариант |
Параметры гармонического сигнала |
Параметры фильтра |
|||||
Амплитуда А |
Частота |
Начальная
фаза
|
Тип фильтра |
Частота среза |
Пульсации в полосе пропускания Apass, дБ |
Подавление в полосе задерживания Astop, дБ |
|
10 |
0.86 |
0.64 |
3.69 |
Elliptic |
0.20 |
1.0 |
40 |
Таблица 1 – Исходные данные
Ход работы:
clear all;
close all;
clc;
%% Параметры сигнала (Вариант 10)
A = 0.86; % Амплитуда
w0 = 0.64; % Нормированная частота (рад/отсчёт)
phi0 = 3.69; % Начальная фаза (рад)
N = 1e5; % Количество отсчётов
k = 0:N-1; % Вектор отсчётов
%% 1. Гармонический сигнал с шагом квантования 1/256
x = A*cos(w0*k + phi0);
x_q256 = round(x*256)/256;
noise256 = x_q256 - x;
figure;
plot(noise256(1:200));
title('Шум квантования (1/256)');
xlabel('k');
ylabel('Уровень шума квантования');
grid on;
figure;
hist(noise256, 100);
title('Гистограмма шума квантования (1/256)');
xlabel('Уровень шума квантования');
ylabel('Количество отсчётов шума с таким значением');
grid on;
figure;
[Rx, dk] = xcorr(noise256, 100, 'unbiased');
plot(dk, Rx);
title('АКФ шума квантования (1/256)');
xlabel('Сдвиг (в отсчётах)');
ylabel('Rx');
grid on;
figure;
pwelch(noise256, 256);
title('СПМ шума квантования (1/256)');
xlabel('Нормированная частота');
ylabel('Мощность/Частота');
grid on;
%% 2. Гармонический сигнал с шагом квантования 1/16
x_q16 = round(x*16)/16;
noise16 = x_q16 - x;
figure;
plot(noise16(1:200));
title('Шум квантования (1/16)');
xlabel('k');
ylabel('Уровень шума квантования');
grid on;
figure;
hist(noise16, 100);
title('Гистограмма шума квантования (1/16)');
xlabel('Уровень шума квантования');
ylabel('Количество отсчётов шума с таким значением');
grid on;
figure;
[Rx, dk] = xcorr(noise16, 100, 'unbiased');
plot(dk, Rx);
title('АКФ шума квантования (1/16)');
xlabel('Сдвиг (в отсчётах)');
ylabel('Rx');
grid on;
figure;
pwelch(noise16, 256);
title('СПМ шума квантования (1/16)');
xlabel('Нормированная частота');
ylabel('Мощность/Частота');
grid on;
%% 3. Гармонический сигнал с шагом квантования 1
x_q1 = round(x*1)/1;
noise1 = x_q1 - x;
figure;
plot(noise1(1:200));
title('Шум квантования (1)');
xlabel('k');
ylabel('Уровень шума квантования');
grid on;
figure;
hist(noise1, 100);
title('Гистограмма шума квантования (1)');
xlabel('Уровень шума квантования');
ylabel('Количество отсчётов шума с таким значением');
grid on;
figure;
[Rx, dk] = xcorr(noise1, 100, 'unbiased');
plot(dk, Rx);
title('АКФ шума квантования (1)');
xlabel('Сдвиг (в отсчётах)');
ylabel('Rx');
grid on;
figure;
pwelch(noise1, 256);
title('СПМ шума квантования (1)');
xlabel('Нормированная частота');
ylabel('Мощность/Частота');
grid on;
%% 4. Белый гауссов шум с шагом квантования 1/256
x_gauss = randn(1, N);
x_gauss = x_gauss/max(abs(x_gauss));
x_gauss_q256 = round(x_gauss*256)/256;
noise_gauss256 = x_gauss_q256 - x_gauss;
figure;
plot(noise_gauss256(1:200));
title('Дискретный БГШ (1/256)');
xlabel('k');
ylabel('Уровень шума');
grid on;
figure;
hist(noise_gauss256, 100);
title('Гистограмма БГШ (Δ=1/256)');
xlabel('Уровень шума');
ylabel('Количество отсчётов шума с таким значением');
grid on;
figure;
[Rx, dk] = xcorr(noise_gauss256, 100, 'unbiased');
plot(dk, Rx);
title('АКФ БГШ (1/256)');
xlabel('Сдвиг (в отсчётах)');
ylabel('Rx');
grid on;
figure;
pwelch(noise_gauss256, 256);
title('СПМ БГШ (1/256)');
xlabel('Нормированная частота');
ylabel('Мощность/Частота');
grid on;
%% 5. Речевой сигнал с шагом квантования 1/256
load mtlb;
x_speech = mtlb/max(abs(mtlb));
x_speech_q256 = round(x_speech*256)/256;
noise_speech256 = x_speech_q256 - x_speech;
figure;
plot(noise_speech256(1:200));
title('Шум речевого сигнала (1/256)');
xlabel('k');
ylabel('Уровень шума речевого сигнала');
grid on;
figure;
hist(noise_speech256, 100);
title('Гистограмма шума речевого сигнала (1/256)');
xlabel('Уровень шума речевого сигнала');
ylabel('Количество отсчётов шума с таким значением');
grid on;
figure;
[Rx, dk] = xcorr(noise_speech256, 100, 'unbiased');
plot(dk, Rx);
title('АКФ шума речевого сигнала (1/256)');
xlabel('Сдвиг (в отсчётах)');
ylabel('Rx');
grid on;
figure;
pwelch(noise_speech256, 256);
title('СПМ шума речевого сигнала (1/256)');
xlabel('Нормированная частота');
ylabel('Мощность/Частота');
grid on;
Исследование шума квантования
Шум квантования с шагом квантования 1/256
Рисунок 1 – Шум
Рисунок 2 – Гистограмма
Рисунок 3 – АКФ
Рисунок 4 – СПМ
Шум квантования с шагом квантования 1/16
Рисунок 5 – Шум
Рисунок 6 – Гистограмма
Рисунок 7 – АКФ
Рисунок 8 – СПМ
Шум квантования с шагом квантования 1
Рисунок 9 – Шум
Рисунок 10 – Гистограмма
Рисунок 11 – АКФ
Рисунок 12 – СПМ
Дискретный белый гауссов шум
Рисунок 13 – БГШ
Рисунок 14 – Гистограмма
Рисунок 15 – АКФ
Рисунок 16 – СПМ
Речевой сигнал
Рисунок 17 – ШРС
Рисунок
18 – Гистограмма
Рисунок 19 – АКФ
Рисунок 20 – СПМ
Исследование влияния округления коэффициентов фильтра на его параметры
Рисунок 21 – Графики АЧХ исходного и квантованного фильтров
Рисунок 22 – График расположения нулей и полюсов исходного и квантованного фильтров
Выполним преобразование фильтров к каскаду секций второго порядка:
Рисунок 23 – Графики АЧХ исходного и квантованного фильтров.
Исследование собственного шума цифрового фильтра
Рисунок 24 – СПМ собственного шума фильтра
Рисунок 25 – Значения коэффициентов числителя и знаменателя функции передачи.
clear; close all; clc;
b = [0.009765625, -0.0400390625, 0.06005859375, -0.0400390625, 0.009765625];
a = [1, -4, 6, -4, 1];
B = 16;
delta = 2^(-(B-1));
sigma2 = delta^2 / 12;
M = 5;
A = M * sigma2 / (2*pi);
w = 0:pi/1000:pi;
denom = a(1) + a(2)*exp(-1i*w) + a(3)*exp(-1i*w*2) + a(4)*exp(-1i*w*3) + a(5)*exp(-1i*w*4);
Wn = A ./ (abs(denom)).^2;
figure;
plot(w, 10*log10(Wn), 'b-', 'LineWidth', 1.5);
xlabel('Нормированная частота (рад/отсчёт)');
ylabel('СПМ собственного шума (дБ)');
title('Теоретическая СПМ собственного шума цифрового фильтра ');
grid on;
disp('=== Параметры расчёта ===');
disp(['Разрядность: ' num2str(B) ' бит']);
disp(['Шаг квантования Δ = ' num2str(delta)]);
disp(['Дисперсия одного источника σ^2 = ' num2str(sigma2)]);
disp(['Количество умножителей M = ' num2str(M)]);
disp(['Масштабный коэффициент A = ' num2str(A)]);
disp(' ');
disp('Коэффициенты знаменателя a:');
disp(a);
Рисунок 26 – График теоретической СПМ собственного шума цифрового фильтра
Вывод:
В ходе выполнения лабораторной работы были исследованы эффекты квантования и округления при цифровой обработке сигналов. Установлено, что с увеличением шага квантования растёт дисперсия шума квантования, а его корреляционная функция для гармонического сигнала сохраняет периодический характер. При исследовании влияния округления коэффициентов фильтра на его параметры было выявлено, что 8-битное квантование коэффициентов эллиптического фильтра 4-го порядка приводит к значительным искажениям АЧХ и потере устойчивости (полюса фильтра оказались на единичной окружности). Преобразование фильтра к каскаду секций второго порядка позволило устранить эти различия и восстановить устойчивость, что подтверждает эффективность каскадной формы реализации для рекурсивных фильтров высокого порядка. Также было установлено, что спектральная плотность мощности собственного шума фильтра повторяет форму его АЧХ, причём при 16-битном квантовании уровень шума существенно ниже, чем при 8-битном

,
рад/отсчёт
,
рад