Issue with Fourier Series Stair Step Function

2 次查看(过去 30 天)
I am supposed to be seeing a stair step function, but I get a striaght line instread. I am seeing this warning "Warning: Imaginary parts of complex X and/or Y arguments ignored ". What could be causing this?
Code:
n_count = 400;
t_count = [0:0.01:24];
y_count = Fourier_Function(n_count, t_count);
figure;
plot(t_count, y_count);
title("Stair Step Function for Problem 4");
xlabel("Time (s)");
ylabel("Signal Magnitude (v)");
function [ff] = Fourier_Function(n, t)
ff = 1; %Ao term acting as 1 and allowing sum functionality
for i = 1:1:n %Acting as our n vairable
An = (-1/(-2j*pi*i)).*((exp((-2j*pi*i)/3) - 2.*(exp((-4j*pi*i)/3)))).*exp((-j*pi)/2);
An_Conj = conj(An);
ff = ff + An.*exp((2j*pi*i*t)/3).* An_Conj .*exp((-2j*pi*i*t)/3);
end
end

采纳的回答

VBBV
VBBV 2022-1-30
n_count = 400;
t_count = [0:1:24];
y_count = Fourier_Function(n_count, t_count);
figure;
plot(t_count, abs(y_count),'-.');
title("Stair Step Function for Problem 4");
xlabel("Time (s)");
ylabel("Signal Magnitude (v)");
function [Ff] = Fourier_Function(n, t)
ff = 1; %Ao term acting as 1 and allowing sum functionality
for k = 1:length(t)
for i = 1:1:n %Acting as our n vairable
An = (-1/(-2j*pi*i)).*((exp((-2j*pi*i)/3) - 2.*(exp((-4j*pi*i)/3)))).*exp((-j*pi)/2);
An_Conj = conj(An);
ff = real(ff) + An.*exp((2j*pi*i*t(k))/3)+An_Conj .*exp((-2j*pi*i*t(k))/3);
end
Ff(k,:) = ff;
end
Ff;
end
Do you mean this ? functions needs to be modified
  1 个评论
OvercookedRamen
OvercookedRamen 2022-1-31
I got it to work, sort of. This is what I meant as a stair step function. Except it should be even.
n_count = 400;
t_count = [0:0.01:24];
y_count = Fourier_Function(n_count, t_count);
figure;
plot(t_count, y_count);
title("Stair Step Function for Problem 4");
xlabel("Time (s)");
ylabel("Signal Magnitude (v)");
function [ff] = Fourier_Function(n, t)
ff = 1; %Ao term acting as 1 and allowing sum functionality
for i = 1:1:n %Acting as our n vairable
%An = (1/(2j*pi*i)) * (exp((-2j*pi*i)/3) - 2*exp((-4j*pi*i)/3) + 1) * exp((-1j*pi)/2);
An = (-1/(2j*pi*i)) * ((exp((-2j*pi*i)/3)-1)) - ((-1/(1j*pi*i))) * (exp((-4j*pi*i)/3) - exp((-2j*pi*i)/3));
An_Conj = conj(An);
ff = ff + An * exp((2j*pi*i*t)/3) + An_Conj *exp((-2j*pi*i*t)/3);
end
end

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Physics 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by