Octave 绘制两个相同的函数,但看起来不同

Octave 绘制两个相同的函数,但看起来不同,octave,Octave,我的学习计划有问题。 以下是公式 ,我必须用八度音阶来实现。 第一个叫做FCzase,第二个叫做FSzereg。两者应该给出相同的输出,但正如您在这里看到的 在情节上,它们是不同的。FSzereg有点问题。有人能帮我找到我的错误吗 U = 1; #voltage T = 0.1; #period f = 1/T; #frequency n = 30; #number of samples m = 30; #number of components in Fourier fun

我的学习计划有问题。 以下是公式 ,我必须用八度音阶来实现。 第一个叫做FCzase,第二个叫做FSzereg。两者应该给出相同的输出,但正如您在这里看到的 在情节上,它们是不同的。FSzereg有点问题。有人能帮我找到我的错误吗

U = 1;    #voltage
T = 0.1;    #period
f = 1/T;  #frequency
n = 30;   #number of samples
m = 30;  #number of components in Fourier function
F1 = 0;
F2 = 0;

t= -T/2: T/n :T/2 - T/n + 2*T;
w = 2*pi*f;

for i = 1 : n
  if t(i) < 0
    FCzasu(i) = -4*U*t(i)^2/T^2;
  else
    FCzasu(i) = 4*U*t(i)^2/T^2;
  endif
endfor

FCzasu = [FCzasu FCzasu FCzasu];

for i = 2 : m
  F1 = F1 + (-1)^(i-1) * sin(i*w*t)/i;
endfor
for i = 1 : 2*m : 2
  F2 = F2 + sin(i*w*t)/i^3;
endfor

FSzereg = (2*U/pi)*(sin(w*t) + F1) - (8*U/(pi^3))*F2;

FFTSzereg = abs(fft(FSzereg));
FFTCzasu = abs(fft(FCzasu));

k=0 : 1 : 3*n-1 ;
fre = k * f/3;

subplot(2,2,1)
plot(t, FCzasu)
xlabel('Czas [s]'); 
ylabel('Napiecie [V]')

subplot(2,2,2)
stem(fre, FFTCzasu,'.')
title('{\bf Widmo}');
grid on;
xlabel('Czestotliwosc [Hz]'); 
ylabel('Amplituda [V]')

subplot(2,2,3)
plot(t, FSzereg)
xlabel('Czas [s]'); 
ylabel('Napiecie [V]')

subplot(2,2,4)
stem(fre, FFTSzereg,'.')
title('{\bf Widmo}');
grid on;
xlabel('Czestotliwosc [Hz]'); 
ylabel('Amplituda [V]')
U=1#电压
T=0.1#时期
f=1/T#频率
n=30#样本数量
m=30#傅里叶函数中的分量数
F1=0;
F2=0;
t=-t/2:t/n:t/2-t/n+2*t;
w=2*pi*f;
对于i=1:n
如果t(i)<0
FCzasu(i)=-4*U*t(i)^2/t^2;
其他的
FCzasu(i)=4*U*t(i)^2/t^2;
恩迪夫
外循环
FCzasu=[FCzasu FCzasu FCzasu FCzasu];
对于i=2:m
F1=F1+(-1)^(i-1)*sin(i*w*t)/i;
外循环
对于i=1:2*m:2
F2=F2+sin(i*w*t)/i^3;
外循环
FSzereg=(2*U/pi)*(sin(w*t)+F1)-(8*U/(pi^3))*F2;
FFTSzereg=abs(fft(FSzereg));
FFTCzasu=abs(fft(FCzasu));
k=0:1:3*n-1;
fre=k*f/3;
子地块(2,2,1)
地块(t、FCzasu)
xlabel('Czas[s]”);
ylabel('Napiecie[V]”)
子地块(2,2,2)
茎(fre,FFTCzasu,“.”)
标题(“{\bf Widmo}”);
网格化;
xlabel('Czestotliwosc[Hz]”);
ylabel('Amplituda[V]”)
子地块(2,2,3)
绘图(t、FSzereg)
xlabel('Czas[s]”);
ylabel('Napiecie[V]”)
子地块(2,2,4)
阀杆(fre,FFTSzereg,“.”)
标题(“{\bf Widmo}”);
网格化;
xlabel('Czestotliwosc[Hz]”);
ylabel('Amplituda[V]”)

那里有漂亮的图形,但从编程的角度来看,
FSzereg
并没有什么问题,它输出的是您编写的代码。不熟悉这个问题的人很难理解为什么这两个周期应该用相同的值填充数组。关于这件事,你们可能应该请教老师。作为猜测,我假设你们正试图用
FSzereg
中的正弦和余弦复制一个不连续的信号
FCzasu
。这种方法总是会产生一定程度的错误。试着增加hamonics
m
的数量。你是对的,我咨询了老师,他说一切正常,这种“问题”是正常的。谢谢:)