help with matlab code!
3 ビュー (過去 30 日間)
古いコメントを表示
The code below is what im using and i am trying to have y2 match up to the original square waveform, im not too sure why y2 isnt showing up
%% Square Waveform Fourier Series Representation
%%Please do not change the following code%%
fs = 44100; % Sampling frequency
Ts = 1/fs; % Time step
t1 = 0 : Ts : 2 - Ts; % 0 - 2s with time step Ts
x1 = square((1000*pi*t1) + pi/2); % Original Square Waveform
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Enter the DC constant
T0 = 1; f0 = 1/T0;
y1 = 0;
for i = 1:8;
% Use your Fourier Series calculation result in the following
y1 = y1+sin(2*pi*t1(2*i-1))/(2*i-1);
end
% Plot the time domain figure x1 and y1 in the following
figure(1);
plot(t1, x1, t1, y1);
xlim([0 6e-3]);
0 件のコメント
回答 (1 件)
chicken vector
2023 年 5 月 3 日
編集済み: chicken vector
2023 年 5 月 3 日
fs = 44100; % Sampling frequency
Ts = 1/fs; % Time step
t1 = 0 : 2*pi*Ts : 2*pi;
x1 = square(t1);
y1 = 0;
for i = 1 : 8
% Use your Fourier Series calculation result in the following
y1 = y1+sin(t1*(2*i-1))/(2*i-1);
end
% Plot the time domain figure x1 and y1 in the following
figure;
hold on;
plot(t1, x1,'LineWidth',2);
plot(t1, y1,'.-','LineWidth',2);
hold off;
You can scale the time axis by dividing t1 and you can equalise the square waves with a factor of 4/5:
period = 5e-3;
t1 = t1*period/(2*pi);
y1 = 5*y1/4;
figure;
hold on;
plot(t1, x1,'LineWidth',2);
plot(t1, y1,'.-','LineWidth',2);
hold off;
xlabel('Time [s]');
ylabel('Current [A]');
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Waveform Generation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!