Перевод математической модели в программный код.
11.05.2021
Имеется формула матричного фотоприёмника и необходимо перевести её в программный код для проверки расхождения значений с другими видами математической модели фотоприёмника. Аналитически доказать получ...
Имеется формула матричного фотоприёмника и необходимо перевести её в программный код для проверки расхождения значений с другими видами математической модели фотоприёмника. Аналитически доказать получилось, что они разные и дают разные значения, а вот с программированием пока беда. Исходя из информации о языке MATLAB предположил, что он должен помочь мне с переводом, но пока что всё идёт тяжело, а время поджимает. Если есть свободный человек, то помогите с моим вопросом, очень сильно прошу. Знак X после I(x,y) обозначает свёртку. Все данные после знака равно известны.
Комментарии
1. Что означают все остальные ф-ции, дабы не было разночтений?
2. У вас есть разные виды умножений в формуле? Если да, то тоже стоило уточнить что да как.
3. Cвертка conv
rect - прямоугольная функция;
comb - Ш-функция, она же comb-функция,она же сумма дельта импульсов(comb(x/dx,y/dy) = Enδ(x-ndx,y-ndy), где En - знак суммы по n от минус до плюс бесконечнсоти. Не нашёл знак суммирования, извините.
всё, что указано функцией * - обозначает умножение;
знак X - обозначает свёртку, она же conv, как вы и сказали.
В прикреплённом уравнении энергия падающего излучения интенсивности I[x,y] падает на прямоугольные пиксели матрицы размером n,m(0<n<=N;0<m<=M) , которые поглощают эту энергию в определённой своей светочувствительной части прямоугольной формы(описывается функцией rect) размером ax, By. Далее интенсивность падающего излучения подвергается дискретизации с помощью умножения на цепочку дельта импульсов(функция comb) и обрезается по размерам матрицы, состоящей из пикселей(последняя функция rect(x/Lx, y/Ly)).
rectpuls
dirac
остальное вроде сами расписали
x = 0:0.1:10;
a = 0.5;
d_x = 1;
N = 6;
I_c = cos(2*pi*x/10);
m = rectpuls(x/(a*d_x));
p = conv(I_c, m);
b = rectpuls(x/(N*d_x));
syms n;
u = symsum(n, dirac(x-n*d_x), 0, 6);
I_s = p*u*b;
plot(I_s);
Вышел у меня вот такой вид уравнения в одномерном виде. Тут программа говорит следующее:
Summation index must be a symbolic variable.
Полагаю, что ему не нравится как я задал эту самую функцию u, но я пока не понимаю как правильно задать сумму дельта импульсов в подобном виде(прикрепляю ниже). Помогите, пожалуйста.
Срочно нужна помощь, помогите, пожалуйста.