Clear Filters
Clear Filters

Issue with Fourier Series Stair Step Function

2 views (last 30 days)
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

Accepted Answer

VBBV
VBBV on 30 Jan 2022
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 Comment
OvercookedRamen
OvercookedRamen on 31 Jan 2022
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

Sign in to comment.

More Answers (0)

Categories

Find more on Physics in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!