📄 fzzyquad.m
字号:
function [t,y,S,A,B]=fzzyquad(a,T,Nf,K)
% 用数值积分求Fourier级数展开系数A,B和近似波形S 。如调用本指令时,没有任何
% 输出宗量,那么将自动随积分进程动态地画出原波形和各阶近似波形。
% a 是被展开函数的时间区间的左端。
% T 是被展开函数的周期。
% Nf 是所需展开的最高谐波阶次
% K 绘波形图所采用的数据长度
% t,y 是被展开的时间函数数据。
% S 是一个矩阵。它每行的长度与t,y相同。
% 它的第(n+1)行是所有n次及更低次谐波迭加生成的近似波形。
% A,B 是展开系数向量。A(n+1),B(n+1)分别存放cos,sin项n次谐波的展开系数。
% A(1)是直流项
if nargin<4;K=200;end
if (nargin<3|isempty(Nf));Nf=15;end
k=1:K;
t=a+k*T/length(k);
y=time_fun(t,T); %调用函数文件,产生被展开函数。
S=zeros(Nf+1,length(k));
a0=mean(y);
S(1,:)=a0;
A=zeros(1,Nf+1);B=zeros(1,Nf+1);
A(1)=a0;
for n = 1:Nf
A(n+1) = quadl(@cos_y,a,a+T,[],[],n,T)/T*2;
B(n+1) = quadl(@sin_y,a,a+T,[],[],n,T)/T*2;
S(n+1,:)=S(n,:)+A(n+1)*cos(2*n*pi*t/T)+B(n+1)*sin(2*n*pi*t/T);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -