필터 지우기
필터 지우기

How to create a function as sum of some sine functions?

조회 수: 29 (최근 30일)
Klaudjo Aliaj
Klaudjo Aliaj 2021년 1월 6일
댓글: Star Strider 2021년 1월 8일
I am trying to create a function which looks like:
,
but I am not finding the way how do it it. Can someone help me?

채택된 답변

Star Strider
Star Strider 2021년 1월 6일
A loop is not necessary.
If you have R2016b or later, try this (using your own variable vectors):
t = linspace(0, 2, 750); % Time Vector
a = 1:10; % Amplitude Vector
f = linspace(1000, 2000, numel(a)); % Frequency Vector
th = linspace(-pi, pi, numel(a)); % Phase Vector
y = sum(a(:).*sin(2*pi*f(:)*t + th(:))); % Compute Function, Then Take Sum Of Rows
figure
plot(t, y)
grid
This uses automatic implicit expansion, introduced in R2016b. If you have an earlier version:
y = sum(bsxfun(@times, a(:), sin(2*pi*f(:)*t + th(:)))); % Compute Function, Then Take Sum Of Rows
produces the same result.
.

추가 답변 (1개)

SHIVAM KUMAR
SHIVAM KUMAR 2021년 1월 6일
편집: SHIVAM KUMAR 2021년 1월 6일
This can be done like
y=0; %necessary to add the other things
for i=1:length(a)
y=y+a(i).*sind(2*pi*f(i).*t+theta(i));
end
If this works accept this answer but
if this does not work tell the error/other requirements in comment

카테고리

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by