Create a function that generates different periodic signals

This is what I tried so far, but my solution doesnt seen to be working, in a plot it gives me 4 straight lines. Can someone help me find my mistake ? Thank you so so much!
function[f]=signal(s,t,A,M,T,N)
switch s
case 'Carre'
for n=1:N
S=S+(((4*A)/(N*pi))*sin((N*pi)/2)*cos(((2*N*pi)*t)./T));
end
f=M+S;
case 'Triangle'
for n=1:N
S=S+(((8*A)/(N^2*pi^2))*cos(((2*N*pi)*t)./T));
end
f=M+S;
case 'Scie'
for n=1:N
S=S+(((-1)^(N+1))*((2*A)/(N*pi))*sin(((2*N*pi)*t)./T));
end
f=M+S;
case 'Cosinus'
for n=1:N
S=S+(A*cos(((2*N*pi)*t)./T));
end
f=M+S;
otherwise
disp('Error. Name of the signal incorrectly entered.')
end
end

 채택된 답변

KSSV
KSSV 2022년 2월 22일
편집: KSSV 2022년 2월 22일
I will show one, you may try the others. Check the code though. Is the plot looks like is what you expected?
t = 0:0.01:10 ; % time
A = 2 ;
M = 1; % MEan value
N = 10 ;
n = 1:N ;
T = 4 ;
nt = length(t) ;
F = zeros(nt,1) ;
for i = 1:nt
f = 4*A./(n*pi).*sin(n*pi/2).*cos(2*n*pi*t(i)/T) ;
F(i) = M+sum(f) ;
end
plot(t,F)

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품

질문:

2022년 2월 22일

편집:

2022년 3월 4일

Community Treasure Hunt

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

Start Hunting!

Translated by