Приглашение разработать программу для оценки сверток. Это необходимо сделать, не используя MATLAB, встроенный в функцию conv. Поэтому, используя преобразование Фурье, умножая две функции вместе, а затем инвертируя Фурье, преобразуя произведение. Преобразование выполняется с помощью прямого интегрирования. Функция trapz рекомендуется для интеграции с этой функцией.Как сделать реальный сюжет похожим на правильный сюжет?
Я был бы благодарен ЛЮБОЙ отзыв о том, как улучшить мой код, пожалуйста, подробно объясните, какие улучшения и ссылки ссылка на то, как они работают.
Учитывая код:
t = -5:.1:5;
w = pi;
X = zeros(101,1);
H = zeros(101,1);
Y = zeros(101,1);
y = zeros(101,1);
if t >= 0
x = 0;
h = 0;
else
x = exp((-3.*t)+(-1i*w.*t));
h = exp((-2*t)+(-1i*w.*t));
end
for k=2:101
X(k)=trapz(t(1:k),x(1:k));
H(k)=trapz(t(1:k),h(1:k));
Y = (X.*H)*exp(1i*w.*t);
y(k) = (1/(2*pi))*trapz(t(1:k),Y(1:k));
end
disp (length(x))
disp (length(X))
disp (length(Y))
disp (length(y))
disp (y)
figure(1);
subplot(1,2,1),plot(t,real(y));grid on;
Так как я не хватает репутации непосредственно размещать изображения, фактический выход и желаемый результат следующим образом:
Мой главный вопрос: почему мой сюжет не работает?
Вторично: что в этом коде не указано? Что может сделать этот код более эффективным?
Я прокомментировал предварительное распределение для нулевых векторов, и это, похоже, не повлияло на результат, поэтому я не уверен, что тогда бесполезно иметь его там или нет. PS: Если вы вниз, пожалуйста, объясните, почему я могу улучшить качество будущих вопросов. – SolidusVerum