Plot time continous singal by using a sum of time invariant signals

조회 수: 1 (최근 30일)
Jenny Sundström
Jenny Sundström 2022년 5월 20일
답변: Chandra 2022년 5월 23일
I want to make a plot of the following:
Where the input x(t) is given as:
and x[n] is the sampled signal of x(t). Below is the code of how I tried to solve it:
f_s = 2,1; Ts = 1/f_s;
t = -5:Ts:5; x = @(t)((3/2) + (3/10) sin(2pit) + sin(2pit/3) - sin(2pit/10)).sinc(t);
syms n
x_t = @(t) symsum(x(n/f_s)sinc((t-nTs)/Ts), n, -5, 5);
x_0 = x_t(t);
plot(x_0, t)
But I can't seem to make it work nor do I understand why. Below are error messages:
Error using symengin Division by zero.
Error in sym/symsum (line 70) rSym = mupadmex('symobj::map',fsym.s,'symobj::symsum',x.s,a.s,b.s);
Error in matlabasklol>@(t)symsum(x(n/f_s)sinc((t-nTs)/Ts),n,-5,5) (line 7) x_t = @(t) symsum(x(n/f_s)sinc((t-nTs)/Ts), n, -5, 5);
Error in matlabasklol (line 8) x_0 = x_t(t);
Would be very grateful for some help or pointers here, many thanks.

답변 (1개)

Chandra
Chandra 2022년 5월 23일
Hi,
Replace the “symsum” function with “for” loop and plot the signal
f_s = 2;
Ts = 1/f_s;
t = -5:Ts:5; % change the the interval of signal like -10:Ts/5:10
x = @(t)((3/2) + (3/10)*sin(2*pi*t) + sin(2*(pi)*t/3) - sin(2*pi*t/10)).*sinc(t);
x_0 = zeros(1,length(t));
for j = 1:length(t)
for i = -6:6
a = x(i)*sinc((j-i*Ts)/Ts);
x_0(j) = a + x_0(j);
end
end
plot(t,x_0)
Refer the below link for further reference about using the sin in degrees and radians

카테고리

Help CenterFile Exchange에서 Calculus에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by