Скачиваний:
0
Добавлен:
21.03.2026
Размер:
1.64 Mб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра РС

отчет

по лабораторной работе №1

по дисциплине «Методы обработки сигналов в системах технического зрения»

Тема: МОДЕЛИРОВАНИЕ И АНАЛИЗ ШУМОВЫХ ПРОЦЕССОВ

И ПОЛЕЙ

Вариант 1

Студент гр. 0182

Бронников Д.Д.

Преподаватель

Волков В.Ю.

Санкт-Петербург

2024

Цели работы

Исследовать модель поля с логнормальным распределением. Вычислить параметры поля и сравнить их с теоретическими. Изучить влияние количества выборок на параметры поля.

Теоретические сведения

В работе исследуется логарифмическое нормальное (логнормальное) распределение LN(xmedl), которое имеет плотность для положительных значений x ≥ 0:

где медиана xmed есть параметр масштаба, а σl – параметр формы. Оба параметра положительны. Для задания формы распределения также используется отношение:

Этот параметр всегда больше единицы. Еще один вариант описания формы плотности представляет задание коэффициента вариации плотности:

Здесь σ есть СКО логнормальной СВ, тогда как параметр σl есть СКО порождающего нормального распределения (ведь случайную величину с логнормальным распределением можно получить из гауссовской). Если вместо параметров (xmedl) использовать (m, ), то плотность записывается в виде:

где математическое ожидание m играет роль параметра масштаба (а не положения, как можно было бы предположить). Любой кумулянтный коэффициент этого распределения выражается через отношение ρ либо через коэффициент вариации kv и не зависит от медианы:

Обработка результатов

  1. Ввод исходных данных

% 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 % Коэффициент вариации в соответствии с вариантом

  1. Построение полей и вычисление их параметров

[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 – Результирующее поле с использованием всего цветового диапазона

  1. Построение гистограмм для поля

Для построения гистограмм используются фрагменты кода:

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 – Сравнение теоретических и экспериментальных зависимостей

Соседние файлы в предмете Методы обработки сигналов в системах технического зрения