piecewise function Fourier seriers

9 ビュー (過去 30 日間)
KUN
KUN 2024 年 3 月 3 日
コメント済み: Paul 2024 年 3 月 3 日
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 件のコメント
Torsten
Torsten 2024 年 3 月 3 日
Maybe assuming 0 < Dp < 1 can help.
KUN
KUN 2024 年 3 月 3 日
Thank you for reminding me.

サインインしてコメントする。

回答 (1 件)

Paul
Paul 2024 年 3 月 3 日
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 件のコメント
KUN
KUN 2024 年 3 月 3 日
Thank you for your answer. I will try rectangularPulse.
Paul
Paul 2024 年 3 月 3 日
Feel free to post back here with updated code if you still have trouble after trying rectangularPulse.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMathematics and Optimization についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by