Matlab output is not matching with the mathematics...
조회 수: 5 (최근 30일)
이전 댓글 표시
S1=cos(2*pi*f1*t);
S2=cos(2*pi*f2*t);
arg1=acos(S1)=2*pi*f1*t;
arg2=acos(S2)=2*pi*f2*t;
cos(arg1-arg2)=cos(2*pi*(f1-f2)*t);
But output is not coming as expected.if you observe the frequency spectrum of both they are not same.
Why it is happening ?
댓글 수: 2
per isakson
2019년 11월 25일
편집: per isakson
2019년 11월 25일
Which values do you use for f1, f2 and t ? What differences do you see? Are they large compared to the expected floating point error?
KALYAN ACHARJYA
2019년 11월 25일
arg1=acos(S1)=2*pi*f1*t;
This is not a valid Matlab statement.
채택된 답변
David Goodmanson
2019년 11월 25일
편집: David Goodmanson
2019년 11월 25일
Hi Hari,
the problem is that 2*pi*f*t is a nice linear function of t for all t, but the output of acos is restricted to the range
0<= acos <pi. With
t = 0:.001:5;
f1 =1;
S1 = cos(2*pi*f1*t);
arg1 = acos(S1)
figure(1)
plot(t,2*pi*f1*t,t,arg1)
grid on
you will see that the two quanities agree at the beginning, but acos gets chopped up as t increases.
If you compare the cosines of (2*pi*f1*t) and arg1, then those agree as they must. But with cos(arg1-arg2) you are taking the cosine of the difference of two chopped up quantities with different periods, and it doesn't work.
댓글 수: 4
Walter Roberson
2019년 11월 25일
i followed this process........x1=acos(Signal1)....acos------>gives inverse of the Signal1.......2*pi*fc*t
That process is incorrect. acos(cos(2*pi*fc*t)) does not give 2*pi*fc*t outside of t in [0, 1/(2*fc)]
추가 답변 (1개)
Walter Roberson
2019년 11월 25일
arg1=acos(S1)=2*pi*f1*t;
arg2=acos(S2)=2*pi*f2*t;
Not correct. As you increase t past one period, acos(cos(x)) becomes mod(x,period) rather than x. Those mod() of the two components interact with each other.
참고 항목
카테고리
Help Center 및 File Exchange에서 Signal Generation and Preprocessing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!