2014-09-18 5 views
1

시간 간격을두고 두 함수의 회선을 플롯하기 위해 matlab을 사용하려고 시도하고 있으며 플롯 기능을 사용할 수 없습니다.Matlab에서 회선을 그릴

내 코드는 지금까지이다

I 수단 판단 "값"3 개 변수 1x201 배 (t, F, G) 및 두 값 1x401이며 컨볼 루션을 생성
>> t = -10:.1:10 
>> f = heaviside(t)-heaviside(t-3) 
>> g = heaviside(t)-heaviside(t-1) 
>> y = conv(f,g) 

그것은 이전의 변수 포인트의 양이 두 배

내가이 명령을 사용하여, 이것이 내가 t에 대한 회선을 플롯하려고 플롯 명령을 사용하여 플롯로 이동합니다

>> plot(t,y) 

w을 hich는 "벡터는 같은 길이 여야합니다."라는 오류를 throw합니다. 내가 t에 관해 y를 그릴 수 있도록 어떻게 만들 수 있습니까?

답변

2

컨볼 루션에 대한 t의 범위는 원래 범위의 최소값의 두 배에서 원래 간격의 최대 값의 두 배인 동일한 간격이어야합니다. 따라서, 회선에 대한 t의 값의 수는 2*n - 1이고, n은 원래의 값인 t입니다. 따라서 요약하면 t = -20 : 0.1 : 20이라고 말하면 올바른 범위와 정확한 수의 값이 t이어야합니다. 편집 : 수정 된 단계 크기; 원래의 범위와 동일해야합니다 (즉, 0.1).

더 일반적으로 범위가 다른 두 시리즈를 컨볼 루션하는 경우 결과 범위의 최소값은 원래 범위의 최소값 합계이고 최대 값은 원래 범위의 합계입니다. 최대 값.