convolute two functions(two signals)
이전 댓글 표시
hi everbody i'd like to make a script file which convolute to two function . so i started to code this but unfortunately it doesn't work can you help me thx in advanced
here is my source code.
function x = conv(t)
% x = 1 pour t compris en -pi/2 et pi/2 et 0 ailleurs
if (t<abs(pi/2))
x=1;
else
x=0;
end
y=conv(x,x);
plot(y)
채택된 답변
추가 답변 (3개)
Walter Roberson
2012년 5월 26일
0 개 추천
What are the two functions? You are convolving something with itself.
Is t a vector or a scalar? "if" applied to a vector is treated as if you had coded "if all(....)" and so is true only if the logical condition applies to all the logical vector values. As it probably does not, you are assigning the scalar 0 to x. Hint: read about logical indexing.
Image Analyst
2012년 5월 26일
Maybe you mean
x = t < pi/2; % x will be a logical matrix.
y = conv(double(x), double(x));
not really sure -- seems like a weird thing to want to do. You might also be interested in the xcorr() function.
taftoof
2012년 5월 26일
0 개 추천
댓글 수: 6
Walter Roberson
2012년 5월 26일
Take Image Analyst's code and add abs() around the t.
taftoof
2012년 5월 26일
Walter Roberson
2012년 5월 26일
Do not call your own routine "conv" ! You are clashing with MATLAB's "conv" routine, and your routine is trying to call itself!
taftoof
2012년 5월 26일
Image Analyst
2012년 5월 26일
Not to mention the fact that your original code, my code, and your second code here don't do that you asked for. Do you know that abs(pi/2) is the same as pi/2? Do you know that t<abs(pi/2) is the same as t<pi/2? But it appears NOW that you have a different condition and that is "-pi/2<t<pi/2" I hope you can figure out why that is NOT THE SAME as t<abs(pi/2). So, once you've understood that you can do
x = abs(t) < pi/2;
That will set x = 1 even if t = -1, whereas your and my original code won't (it does your original criteria instead, which is different).
Walter Roberson
2012년 5월 26일
Change your "function x = conv(t)" line to "function x = myconv(t)" and save the result in the file myconv.m and then delete the conv.m that you created.
카테고리
도움말 센터 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!