1楼:匿名用户
如果没有具体表达式只能通过拟合了。下面是帮助文档里的一个例子: load enso; f = fit(month,pressure,'fourier8') plot(f,month,pressure)
matlab怎么进行傅里叶级数
2楼:毛职汗和玉
你上面的程序,f_series函数是否有定义?若无定义,或定义不准确都有可能出错
将傅里叶系数的计算(输出a0,an,bn)以及函数图像的绘制编到m文件中
function
[a0,an,bn]=fly(f,l,k)
%f为一个周期内的分段函数(分两段,对分两段以上的函数可类似处理)
%2l为周期
%k为近似项数,k≥1
%计算傅里叶系数
symsxn
la0=1/l*int(f(1),-l,0)+1/l*int(f(2),0,l);
an=1/l*int(f(1)*cos(n*pi*x/l),-l,0)+1/l*int(f(2)*cos(n*pi*x/l),0,l);
bn=1/l*int(f(1)*sin(n*pi*x/l),-l,0)+1/l*int(f(2)*sin(n*pi*x/l),0,l);
%选择作图步长p
ifk>=4
p=fix(k/4);
else
p=1;
end%绘制4个近似子图
fori=1:4
f=a0/2+symsum(an*cos(n*pi*x/l)+bn*sin(n*pi*x/l),n,1,i*p);
f=subs(f,l,l);
subplot(2,2,i),ezplot(f,[-3*l,3*l]),title(['n=',int2str(i*p)])
end输入:
f=sym('[x,0]');
[a0,an,bn]=fly(f,pi,32)
输出:a0
=-1/2*lan=
-l*(cos(n*pi)+sin(n*pi)*n*pi-1)/n^2/pi^2bn=
-l*(-sin(n*pi)+cos(n*pi)*n*pi)/n^2/pi^2
显然以上结果并未化简(例如,sin(n*pi)=0)
有了傅里叶系数,利用公式f(x)=a0/2+∑{1,∞}[an*cos(n*pi*x/l)+bn*sin(n*pi*x/l)],即得到式
输出图像:
3楼:匿名用户
我会一点点傅里叶变换给你编一段,你做一些修改试试吧>>y=fft(y,512);pyy=y.*conj(y)/512;f=1000*(0:256)/512;plot(f,pyy(1:
257))title('你的程序’)xlabel(‘频率(hz)’)
用matlab求傅里叶级数。。
4楼:匿名用户
fsin=@(n,x)pi/4*sign(x).*sin(n*x);
fcos=@(n,x)pi/4*sign(x).*cos(n*x);
n=20;
fsin=zeros(1,n+1);
fcos=zeros(1,n+1);
forn=0:n
fsin(n+1)=quad(@(x)fsin(n,x),-pi,pi,1e-8)/pi;
fcos(n+1)=quad(@(x)fcos(n,x),-pi,pi,1e-8)/pi;
endsubplot(211),stem(0:n,fsin);title('sin');
subplot(212),stem(0:n,fcos);title('cos');
原来的信号可以表示为[-pi,pi]内的pi/4*sign(x)
反正就是根据傅立叶的公式,求原来函数和sinkx,coskx的乘积的积分
上述程序里fsin 就是 bk
fcos 就是 ak最后
用matlab对周期函数进行傅里叶如何做?
5楼:匿名用户
用电子词典查傅立叶的英文名称,再到matlab的帮助文件里找一下就行了,我身旁没词典
如何用matlab实现离散傅里叶级数?是级数,不是仅仅求出最大频率。
6楼:匿名用户
如果没有具体表达式只能通过拟合了。下面是帮助文档里的一个例子:
load enso;
f = fit(month,pressure,'fourier8')plot(f,month,pressure)
matlab的fourier()函数和fft()函数有什么区别? 20
7楼:匿名用户
fourier是符号函数,用于符号运算。例如:fourier(exp(-x^2),x,t)返回 pi^(1/2)*exp(-1/4*t^2)
fft为快速傅里叶变换,专门用于离散信号