Я новичок в матлабе. Я хочу сгенерировать образцы шума гауссовой смеси с PDF= sqrt((u.³)./pi).*exp(-u.*(x.²)) + sqrt((1-u)³/pi). *exp(-(1-u).*x.²);
Длина образца шума составляет (1200). Пожалуйста, помогите мне.
ПРИМЕЧАНИЕ.
Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech ,ME,M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.
Итак, вы сформулировали, как мне кажется, довольно странную смешанную модель.
У вас есть два режима с дисперсиями, которые связаны друг с другом, среднее значение обоих условий равно нулю.
Итак, если PDF:
PDF = sqrt((u.^3)./pi).*exp(-u.*(x.^2)) + sqrt((1-u)^3/pi).*exp(-(1-u).*x.^2)
Итак, у нас есть два термина.
syms u positive syms x real
Посмотрите на первый термин:
pdf1 = sqrt((u.^3)./pi).*exp(-u.*(x.^2)); int(pdf1,x,[-inf,inf]) ans = u
Итак, он интегрируется в вас. Второй термин аналогичен
pdf2 = sqrt(((1-u).^3)./pi).*exp(-(1-u).*(x.^2)); int(pdf2,x,[-inf,inf]) ans = piecewise([u == 1, 0], [1 < u, Inf*1i], [u < 1, 1 - u])
Для u ‹= 1 он интегрируется до 1-u.
Таким образом, интеграл суммы действительно равен 1, поэтому это действительная PDF.
По сути, у вас есть две гауссовские моды, так что дисперсии равны 2/u и 2/(1-u) соответственно. Вы выбрали параметр смеси как обратную величину этих отклонений. Фактически, когда u мало (или очень близко к 1), у вас есть смешанное распределение, которое редко приводит к большим выбросам. Когда u ровно 1/2, это сводится к стандартному нормальному распределению с единичной дисперсией.
Не знаю почему, но думаю, что это не так важно. Обычно выбирают смешанный параметр, не зависящий от дисперсий.
Решение простое.
1. Выберите какое-нибудь значение для u. u определяет обе дисперсии для каждой моды Гаусса, а также коэффициент смеси.
2. Для размера выборки N выберите N равномерно распределенных случайных чисел. Это определит, из какого режима вы будете сэмплировать. Затем просто используйте классический инструмент, такой как randn, чтобы сделать выборку.
Для размера выборки 1e7 и некоторого произвольного значения u, скажем, 1/100. Я выбрал крошечное значение для вас, чтобы сделать результат понятным. Я также выбрал большую выборку, чтобы ее было легче увидеть в виде гистограммы.
N = 10000000; u = 0.01; % random mixture selection % Here s will be 1 if the element is sampled from first pdf. % s will be 0 if the element is sampled from second pdf. s = rand(1,N) < u; % sample using randn, with a unit variance initially x = randn(1,N);; % now scale each element based on the desired variance x(s) = x(s)*sqrt(2/u); x(~s) = x(~s)*sqrt(2/(1-u)); hist(x,1000)
Итак, для этого довольно маленького значения u обратите внимание, что гистограмма очень похожа на традиционную гауссову, НО с очень широкими хвостами.
Затем я нанесу отдельные части PDF-файла, разделенные на две части. Здесь я выбрал u как 0,25.
СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ