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

2 次查看(过去 30 天)
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 中查找有关 Fourier Analysis and Filtering 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by