实验三周期信号的傅里叶级数分析及MATLAB实现
一、实验目的:
1.利用MATLAB实现周期信号的分解与合成,并图示仿真结果;
2.用MATLAB实现周期信号的频谱,画图观察和分析周期信号的频谱;
3.通过MATLAB对周期信号频谱的仿真,进一步加深对周期信号频谱理论知识的理解。
二、实验内容
9.1(a):程序:
display('Please input the value of m(傅里叶级数展开项数)');
m=input('m=');
t=-3*pi:0.01:3*pi;
n=round(length(t)/4);
f=cos(t).*(heaviside(t+2.5*pi)-heaviside(t+1.5*pi)+heaviside(t+0.5*pi)-heaviside(t-0.5 *pi)+heaviside(t-1.5*pi)-heaviside(t-2.5*pi));
y=zeros(m+1,max(size(t)));
y(m+1,:)=f';
figure(1);
plot(t/pi,y(m+1,:));
grid;
axis([-3 3 -1 1.5]);
title('半波余弦');
xlabel('单位:pi','Fontsize',8);
x=zeros(size(t));
kk='1';
syms tx n
T=2*pi;
fx=sym('cos(tx)');
Nn=30;
An=zeros(m+1,1);
Bn=zeros(m+1,1);
a0=2*int(fx,tx,-T/4,T/4)/T
an=2*int(fx*cos(2*pi*(n+eps/2)*tx/T),tx,-T/4,T/4)/T
bn=2*int(fx*sin(2*pi*(n+eps/2)*tx/T),tx,-T/4,T/4)/T
An(1)=double(vpa(a0,Nn));
An(2)=0.5;
for k=2:m
An(k+1)=double(vpa(subs(an,n,k),Nn));
Bn(k+1)=double(vpa(subs(bn,n,k),Nn));