Мне нужно сгенерировать матрицу с гауссовым распределением (со значениями, разбросанными в основном от -5 до 5), матрицу Пуассона, смешать их и передать в качестве входных данных для Matlab FastICA .
Я новичок в Matlab, дистрибутивах и ICA, так что несколько указателей действительно помогут.Я очень старался, но не знаю, нахожусь ли я на правильном пути.
Чтобы сгенерировать матрицы Гаусса и Пуассона, я сгенерировал два массива:
s2 = poissrnd(2, 1, 40000); %Poisson distribution with lambda 2
s1 = rand(size(s2)) * 10 - 5; %Gaussian distribution and values ranging from -5 to 5
Затем я использую функцию reshape , чтобы сгенерировать две матрицы 200x200.При использовании image я получаю следующие изображения:
Мой 1-й вопрос заключается в следующем: это правильный способ генерации гауссова и пуассоновскогоматрицы в Matlab?Или есть какие-то встроенные функции, которые фактически генерируют матрицы вместо того, чтобы генерировать и изменять формы массивов?
Теперь вторая проблема: использование FastICA .
Ссылаясь на очень хороший ответ по адресу: Алгоритм быстрой фиксированной точки ICA (независимый анализ компонентов) , он упоминает, что FastICA нуждается в каждом сигнале подряд.
Поэтому я генерирую свою матрицу сигналовпо:
S(1,:) = s1; %row 1
S(2,:) = s2; %row 2
Затем я сгенерирую матрицу микширования, добавлю немного шума и дам результирующую матрицу в качестве входных данных для функции fastica ().
Мой вопрос: возможно липередать 2D данные напрямую в FastICA?Что если у вас есть изображение со множеством смешанных сигналов и вы хотите передать его в ICA, чтобы он мог найти независимые компоненты?
Ссылка на учебное пособие, объясняющее, как использовать FastICA на разных входах, была бы очень полезна.
Заранее спасибо всем, кто читает этот пост и пытается помочь.И извините за длинный вопрос, я хотел убедиться, что он хорошо понят!