matlab画出周期为2的方波图形 傅立叶级数_第二部分 周期信号的傅里叶级数的MATLAB实现...

采用符号计算求[0,T]内时间函数的三角级数展开系数。

函数的输入输出都是数值量

Nf 谐波的阶数

Nn 输出数据的准确位数

A_sym 第1元素是直流项,其后元素依次是1,2,3...次谐波cos 项展开系数

B_sym 第2,3,4,...元素依次是1,2,3...次谐波sin 项展开系数

syms t n k y

创建符号函数,相当于y=f(x)中的x

T=5;

周期T=5

Nf=60;

谐波的阶数

Nn=32;

输出数据的准确位数,就是有效位数

y=time_fun_s;

调用time_fun_s 函数,和C 语言相当

A0=2*int(y,t,0,T)/T;

计算0a ,int 为积分函数,格式为int (需要积分的函数,积分变量,下线,上线) As=int(2*y*cos(2*pi*n*t/T)/T,t,0,T);

计算n a

Bs=int(2*y*sin(2*pi*n*t/T)/T,t,0,T);

计算n b

A_sym(1)=double(vpa(A0,Nn));

vpa:计算变量的精度,就是有效位数

double :强制转换为双精度浮点型

for k=1:Nf

A_sym(k+1)=double(vpa(subs(As,n,k),Nn));

B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));

end

for 循环,计算n a ,n b 的精度值

subs 是将符号函数转换为数值计算,调用格式subs(转换函数,转换的变量,将要计算变量)

k=Nf;

S1=fliplr(A_sym);

对A_sym 阵左右对称交换,fliplr 为左右对称交换函数,相当于y=[1 2 3 4],fliplr(y)=[-4 -3 -2 -1]

S1(1,k+1)=A_sym(1);

上面两句语句相当于将A_sym 的1*k 阵扩展为1*(k+1)阵

S2=fliplr(1/2*S1);

S3=fliplr(1/2*B_sym);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值