МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра РС
отчет
по лабораторной работе №1
по дисциплине «Методы обработки сигналов в системах технического зрения»
Тема: МОДЕЛИРОВАНИЕ И АНАЛИЗ ШУМОВЫХ ПРОЦЕССОВ
И ПОЛЕЙ
Вариант 1
Студент гр. 0182 |
|
Бронников Д.Д. |
Преподаватель |
|
Волков В.Ю. |
Санкт-Петербург
2024
Цели работы
Исследовать модель поля с логнормальным распределением. Вычислить параметры поля и сравнить их с теоретическими. Изучить влияние количества выборок на параметры поля.
Теоретические сведения
В работе исследуется логарифмическое нормальное (логнормальное) распределение LN(xmed,σl), которое имеет плотность для положительных значений x ≥ 0:
где медиана xmed есть параметр масштаба, а σl – параметр формы. Оба параметра положительны. Для задания формы распределения также используется отношение:
Этот параметр всегда больше единицы. Еще один вариант описания формы плотности представляет задание коэффициента вариации плотности:
Здесь
σ есть СКО логнормальной СВ, тогда как
параметр σl
есть СКО порождающего нормального
распределения (ведь случайную величину
с логнормальным распределением можно
получить из гауссовской). Если
вместо параметров (xmed,σl)
использовать (m,
),
то плотность записывается в виде:
где математическое ожидание m играет роль параметра масштаба (а не положения, как можно было бы предположить). Любой кумулянтный коэффициент этого распределения выражается через отношение ρ либо через коэффициент вариации kv и не зависит от медианы:
Обработка результатов
Ввод исходных данных
% main_sum_lognorm_noise
close all
clc”
STEP = 1 %LogNormalNoise % Условные “шаги” программы
m = 256; n = 256; % Размеры поля
K = 1 % number of fields
% LOGNORMAL FIELD
med = 30 % Медиана, в формулах xmed
kv = 1.1 %parameters % Коэффициент вариации в соответствии с вариантом
Построение полей и вычисление их параметров
[g,ro,muln,sigmaln,m1,std,var]=func_sum_lognorm(m,n,med,kv,K);
ro = ro % expectation-to-median ratio
muln = muln % ln(med)
sigmaln = sigmaln %
m1 = m1 % expectation
std = std % standard deviation
var = var % variance
g3 = 3*kv+kv^3 % k3=4 for kv=1
g4 = 16*kv^2+15*kv^4+6*kv^6+kv^8 % k4=38 for kv=1
k3 = g3*std^3
k4 = g4*std^4
% Parameter of the initial field
Mu = K*m1
Variance = K*var
Stdev = sqrt(Variance)
G3 = k3*K/(Stdev^3)
G4 = k4*K/(Stdev^4)
% Parameters of the resulting field
figure(1000), imshow(g,[]), title('SumLogNormalNoise');
gu8 = uint8(g./K);
maxgu8 = max(gu8(:)) %max value
mingu8 = min(gu8(:)) %min value
Функция func_sum_lognorm формирует результирующее поле суммированием исходных полей с логнормальным распределением LN(med,kv). Выходное поле размером (m,n) в классе данных double получается суммированием K независимых реализаций поля с параметром масштаба med и параметром формы kv. Функция вычисляет также и другие параметры формы для исходного распределения: ρ – отношение математического ожидания к медиане; (muln,sigmaln) – математическое ожидание и дисперсия порождащего нормального распределения:
muln есть логарифм медианы, оказался равен 3.4012
sigmaln в квадрате есть 2ln(ρ), оказалось равно 0.8905
При суммировании K независимых полей кумулянты суммарного поля увеличиваются в K раз.
function[g,ro,muln,sigmaln,mu,std,var]=func_sum_lognorm(m,n,med,kv,K)
% sum of N Lognormal noises, kv - coeff. var
g = zeros([m,n],'double');
ro = sqrt(kv.^2+1); muln = log(med);
mu = ro*med; % Expectation
std = mu*kv; % Standard deviation
var = std.^2;
sigmaln = sqrt(2*log(ro));
for k = 1:K
g1 = randn(m,n);
g1 = g1*sigmaln + muln;
g1 = exp(g1); g = g + g1;
end;
Вычисленные программой параметры для 1 поля:
Математическое ожидание m1= 44.5982
СКО std = 49.0580
Дисперсия Var = 2.4067e+03
Кумулянтные коэффициенты: g3 = 4.6310; g4 = 54.0945
Кумулянты: k3 = 5.4677e+05; k4 = 3.1332e+08
Вычисленные программой параметры для K=3 полей:
Математическое ожидание Mu = 133.7946
СКО Stdev = 84.9710
Дисперсия Variance = 7.2201e+03
Кумулянтные коэффициенты: G3 = 2.6737; G4 = 18.0315
Диапазон принимаемых значений: maxgu8 = uint8 255; mingu8 = uint8 1
Рис. 1 – Результирующее поле, полученное суммированием исходных полей с логнормальным распределением LN(med,kv)
Для улучшения внешнего вида иcпользуется:
figure(100); imagesc(gu8); colorbar;
title('SumLogNormalNoise');
Рис. 2 – Результирующее поле с использованием всего цветового диапазона
Построение гистограмм для поля
Для построения гистограмм используются фрагменты кода:
figure(101), imhist(gu8), title('SumLogNormalHistogram'), grid;
Рис. 3 – Теоретическая плотность логнормального распределения LN(med,kv) при
K = 1
func_lognorm_hist_visual(gu8,muln,sigmaln,K,51); % nbins = 51
ts = input('STOP1','s');
Вызываемая функция:
function[g] = func_lognorm_hist_visual(Y,a,b,K,nbins)
% a = muln; b = sigmaln
% check Y - uint8
[counts,xn] = imhist(Y,nbins); % n - counts; xn - binLocations;
figure(1), stem(xn,counts), grid;
y1 = counts/(numel(Y)*(xn(2)-xn(1))); % считаем плотность по гистограмме
t = linspace(1,256,1000);
y2 = pdf('Lognormal',t,a,b);
figure(2), plot(t,y2,xn,y1,'r'), grid
legend('Теорет. LN плотность','Гистограмма полученных чисел')
xlabel('x'), ylabel('Histogram');
title(['muln = ', num2str(a),' sigmaln = ', num2str(b),' K = ', num2str(K)]);
Рис. 4 – Экспериментальная плотность логнормального распределения LN(med,kv) при
K = 1
Рис. 5 – Сравнение теоретических и экспериментальных зависимостей
