piecewise function Fourier seriers

I want use matlab help to derive the Fourier series of a piecewise function. I write code like following:
syms t Vin Vout Dp Ds D T
assume(t>0);
Vp = piecewise( ...
t> 0 & t< Dp*T/2, Vin, ...
t> (Dp*T/2) & t< T/2,0, ...
t> T/2 & t< (1+Dp)*T/2, -Vin, ...
t> (1+Dp)*T/2 & t< T, 0)
Vpf = fourier(Vp)
assume(t,'clear');
and result is :
fourier(piecewise(t < (Dp*T)/2, Vin, t < T/2&(Dp*T)/2 < t, 0, t < (T*(Dp + 1))/2&T/2 < t, -Vin, t < T&(T*(Dp + 1))/2 < t, 0), t, w)
The result does not helpful for me.

2 Comments

Maybe assuming 0 < Dp < 1 can help.
Thank you for reminding me.

Sign in to comment.

Answers (1)

Paul
Paul on 3 Mar 2024
Hi KUN,
In the context of the Fourier transform, I'm not sure that the assumption on t makes sense, at least not in the context of fourier.
IIRC, fourier doesn't like piecewise. Instead, form Vp with terms using rectangularPulse and then find the Fourier transform.

2 Comments

Thank you for your answer. I will try rectangularPulse.
Feel free to post back here with updated code if you still have trouble after trying rectangularPulse.

Sign in to comment.

Categories

Find more on Just for fun in Help Center and File Exchange

Asked:

KUN
on 3 Mar 2024

Commented:

on 3 Mar 2024

Community Treasure Hunt

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

Start Hunting!