为什么我的傅里叶不能正常工作?我在哪里弄错了?我写的时间域是否正确?我使用的信号方程是:

f = 5; %fixed signal frequency
fs = 100; %fixed sample frequency (100Hz)
A=1; %fixed amplitude (1)
l=1; % (sec) fixed signal length
k = app.FourierSerieslength.Value; %myFourier series length is 1 to 21
t = 0:1/fs:l-1/fs;
% y = A*sin(2*pi*f*t*k);
y = (4*A/pi)*1/k*sin(2*pi*f*t*k); %Fourier series for the square wave signal
plot(app.UIAxes,t,y);我对傅里叶长度3的结果是:

并给出了傅里叶级数长度为10的结果:

十长对吗?
为什么我没有方波?
另一个问题是,我使用这个Fourier级数进行向上/向下采样,而不改变时域视图?
以下是我的重采样代码:
up = app.UpSamplingSlider.Value;
y_up = zeros(1,length(y)*4);
y_up(1:4:4*length(y)) = y;
y_up = up*y_up;
stem(app.UIAxes3,y_up);发布于 2018-04-24 15:04:38
Y= (4*A/pi)*1/k*sin(2*pi*f*t*k);方波信号的%Fourier级数
不,这不是级数,是正弦波。当k=10时,这会减少到一些常数乘以sin(pi*(0:99)),它在任何地方都是零(直到数值精度)。每当你看到垂直轴有一个10E-14乘法器,你就可以相当肯定它只是零到浮点的精度。
要计算傅里叶级数,需要在方程中包含大的Σ符号:
y = zeros(size(t))
for k=1:2:21
y = y + (4*A/pi)*1/k*sin(2*pi*f*t*k);
end现在,当你绘制这个图的时候,你会看到方波波形的近似。求和上限越大,近似越好。
https://stackoverflow.com/questions/49991335
复制相似问题