信号与系统实验三

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学院:信息学院专业:通信工程(武警国防生) 指导教师:肖琦

姓名:梁由勇学号:094 成绩:

实验目的:1.用MATLAB实现周期信号的傅利叶级数;

2.用MATLAB实现周期信号(包括典型周期信号)的频谱分析;

3.观察利用MATLAB生成的图形及结果,与信号与系统理论知识相连系,加深对信号与

系统理论知识的深入理解。

已知周期半波余弦信号和周期全波余弦信号的波形分别如图所示(图略),用MATLAB编程求出

它们的傅里叶系数,绘出其直流、一次、二次、三次、四次及五次谐波叠加后的波形图,并将

其与原周期信号的时域波形进行比较,观察周期信号的分解与合成过程。

解:

% 观察周期余弦半波信号的分解和合成

% m:傅立叶级数展开的项数

display('Please input the value of m (傅立叶级数展开的项数)');

m=input('m = ');

t=*pi::*pi;

t1=*pi::*pi;

n=round(length(t)/5);

f=[cos(t1)';zeros(n-1,1);cos(t1)';zeros(n-1,1);cos(t1)'];

y=zeros(m+1,max(size(t)));

y(m+1,:)=f';

subplot((m+2),1,1)

plot(t/pi,y(m+1,:));

grid;

axis([ ]); title('周期半波余弦信号'); xlabel('t/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)=;

for k=2:m

an(k+1)=double(vpa(subs(An,n,k),Nn));

bn(k+1)=double(vpa(subs(Bn,n,k),Nn));

end

%计算直流分量

pause;

x=an(1)*cos(0*t)/2;

plot(t/pi,y(m+1,:));

hold on;

plot(t/pi,x);

grid;

hold off;

axis([ ]); title('直流分量');

xlabel('t/pi','Fontsize', 8);

%各次谐波叠加

for k=1:m

pause;

x=x+an(k+1).*cos(k*t);

y(k,:)=x;

subplot((m+2),1,k+1); plot(t/pi,y(m+1,:));

hold on;

plot(t/pi,y(k,:));

hold off;

grid;

axis([ ]); title(strcat('第',kk,'次谐波叠加'));

xlabel('t/pi','Fontsize', 8);

kk=strcat(kk,'、',num2str(k+1));

end

pause;

subplot((m+2),1,m+2)

plot(t/pi,y(1:m+1,:));

grid;

axis([ ]);

title('各次谐波叠加波形');

xlabel('t/pi','Fontsize', 8);

% End

% 观察周期余弦全波信号的分解和合成

% m:傅立叶级数展开的项数

display('Please input the value of m (傅立叶级数展开的项数);

t = *pi::*pi;

t1=*pi::*;

n = round(length(t)/5);

f = [cos(t1)';cos(t1)';cos(t1)';cos(t1)';cos(t1)';0];

y = zeros(m+1,max(size(t)));

y(m+1,:) = f';

subplot(m+2,1,1)

plot(t/pi,y(m+1,:));

grid on;

axis([ ]); title('周期全波余弦信号'); xlabel('t/pi','Fontsize', 8); x=zeros(size(t));

%计算系数

syms tx n

T=pi;

fx=sym('cos(tx)');

Nn=32;

an=zeros(m+1,1);

bn=zeros(m+1,1);

A0 =2*int(fx,tx,-T/2,T/2)/T;

An=2*int(fx*cos(2*pi*(n+eps/2)*tx/T),tx,-T/2,T/2)/T;

Bn=2*int(fx*sin(2*pi*(n+eps/2)*tx/T),tx,-T/2,T/2)/T;

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

for k=1:m

an(k+1)=double(vpa(subs(An,n,k),Nn));

bn(k+1)=double(vpa(subs(Bn,n,k),Nn));

end

%求直流信号

pause;

x=an(1)*cos(0*t)/2;

subplot(m+2,1,1)

plot(t/pi,y(m+1,:));

hold on;

plot(t/pi,x);

grid on;

hold off;

axis([ ]);

title('周期全波余弦信号');

xlabel('t/pi','Fontsize', 8);

%各次谐波叠加

for k=1:m

pause;

x=x+an(k+1).*cos(2*k*t);

y(k,:) = x;

subplot(m+2,1,k+1)

plot(t/pi,y(m+1,:));

hold on;

plot(t/pi,y(k,:));

hold off;

grid on;

axis([ ]); title(strcat('第',kk,'次谐波叠加'));

xlabel('t/pi','Fontsize', 8);

kk = strcat(kk,'、',num2str(k+1));

end

pause;

subplot(m+2,1,m+2)

plot(t/pi,y(1:m+1,:));

相关文档
最新文档