中南大学信号与系统matlab实验报告.docx
《中南大学信号与系统matlab实验报告.docx》由会员分享,可在线阅读,更多相关《中南大学信号与系统matlab实验报告.docx(26页珍藏版)》请在冰豆网上搜索。
中南大学信号与系统matlab实验报告
中南大学-信号与系统matlab实验报告
————————————————————————————————作者:
————————————————————————————————日期:
ﻩ
实验一 基本信号的生成
1.实验目的
●学会使用MATLAB产生各种常见的连续时间信号与离散时间信号;
●通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用信号的理解;
●熟悉MATLAB的基本操作,以及一些基本函数的使用,为以后的实验奠定基础。
2.实验内容
⑴运行以上九个例子程序,掌握一些常用基本信号的特点及其MATLAB实现方法;改变有关参数,进一步观察信号波形的变化。
⑵在范围内产生并画出以下信号:
a);
b);
c);
d)。
源程序:
k=-10:
10;
f1k=[zeros(1,10),1,zeros(1,10)];
subplot(2,2,1)
stem(k,f1k)
title('f1[k]')
f2k=[zeros(1,8),1,zeros(1,12)];
subplot(2,2,2)
stem(k,f2k)
title('f2[k]')
f3k=[zeros(1,14),1,zeros(1,6)];
subplot(2,2,3)
stem(k,f3k)
title('f3[k]')
f4k=2*f2k-f3k;
subplot(2,2,4)
stem(k,f4k)
title('f4[k]')
⑶在范围内产生并画出以下信号:
a);
b);
c)。
请问这三个信号的基波周期分别是多少?
源程序:
k=0:
31;
f1k=sin(pi/4*k).*cos(pi/4*k);
subplot(3,1,1)
stem(k,f1k)
title('f1[k]')
f2k=(cos(pi/4*k)).^2;
subplot(3,1,2)
stem(k,f2k)
title('f2[k]')
f3k=sin(pi/4*k).*cos(pi/8*k);
subplot(3,1,3)
stem(k,f3k)
title('f3[k]')
其中f1[k]的基波周期是4,f2[k]的基波周期是4,f3[k]的基波周期是16。
实验二信号的基本运算
1.实验目的
●学会使用MATLAB完成信号的一些基本运算;
●了解复杂信号由基本信号通过尺度变换、翻转、平移、相加、相乘、差分、求和、微分及积分等运算来表达的方法;
●进一步熟悉MATLAB的基本操作与编程,掌握其在信号分析中的运用特点与使用方式。
2.实验内容
⑴ 运行以上三个例题程序,掌握信号基本运算的MATLAB实现方法;改变有关参数,考察相应信号运算结果的变化特点与规律。
⑵已知信号如下图所示:
a)用MATLAB编程复现上图;
%作业题2a:
t=-6:
0.001:
6;
ft1=tripuls(t,6,0.5);
subplot(2,1,1)
plot(t,ft1)
title('f(t)')
b)画出的波形;
%b
t=-6:
0.001:
6;
ft1=tripuls(2*(1-t),6,0.5);
%subplot(1,1,1)
plot(t,ft1)
title('f(2*(1-t)')
c)画出的波形;
%c
h=0.001;t=-6:
h:
6;
yt=tripuls(t,6,0.5);
y1=diff(yt)*1/h;
plot(t(1:
length(t)-1),y1)
title('df(t)/dt')
d)画出的波形。
%d
t=-6:
0.1:
6;
forx=1:
length(t)
y2(x)=quad('tripuls(t,6,0.5)',-3,t(x));
end
plot(t,y2)
title('integraloff(t)')
实验三系统的时域分析
1.实验目的
●学习并掌握连续时间系统的零状态响应、冲激响应和阶跃响应的MATLAB求解方法;
●学习并掌握离散时间系统的零状态响应、冲激响应和阶跃响应的MATLAB求解方法;
●进一步深刻理解连续时间系统和离散时间系统的系统函数零极点对系统特性的影响;
学习并掌握卷积的MATLAB计算方法。
2.实验内容
⑴运行以上五个例题程序,掌握求解系统响应的MATLAB分析方法;改变模型参数,考察系统响应的变化特点与规律。
⑵设离散系统可由下列差分方程表示:
计算时的系统冲激响应。
源程序:
k=-20:
100;
a=[1 -10.9];
b=[1];
h=impz(b,a,k);
stem(k,h);
xlabel('Time(sec)')
ylabel('y(t)')
⑶设,输入,求系统输出。
(取)
源程序:
k=-10:
50;
uk=[zeros(1,10),ones(1,51)];
u1k=[zeros(1,20),ones(1,41)];
hk=0.9.^k.*uk;
fk=uk-u1k;
yk=conv(hk,fk);
stem(0:
length(yk)-1,yk);
⑷已知滤波器的传递函数:
输入信号为为随机信号。
试绘出滤波器的输出信号波形。
(取)
源程序:
R=101;
d=rand(1,R)-0.5;
t=0:
100;
s=2*sin(0.05*pi*t);
f=s+d;
subplot(2,1,1);
plot(t,d,'g-.',t,s,'b--',t,f,'r-');
xlabel('Timeindext');
legend('d[t]','s[t]','f[t]');
title('处理前的波形')
b=[0.220];a=[1-0.8];
y=filter(b,a,f);
subplot(2,1,2);
plot(t,s,'b--',t,y,'r-');
xlabel('Timeindext');
legend('s[t]','y[t]');
title('滤波器输出波形')
实验四 周期信号的频域分析
1.实验目的
●掌握周期信号傅立叶级数分解与合成的计算公式
●掌握利用MATLAB实现周期信号傅立叶级数分解与综合方法
●理解并掌握周期信号频谱特点
2.实验内容
1、仿照例程,实现下述周期信号的傅立叶级数分解与合成:
1
-3
-4
5
4
1
O
要求:
(a)首先,推导出求解,,的公式,计算出前10次系数;
(b)利用MATLAB求解,,的值,其中,求解前10次系数,并给出利用这些系数合成的信号波形。
(a)设周期信号的周期为,角频率,且满足狄里赫利条件,则该周期信号可以展开成傅立叶级数。
(1)三角形式傅立叶级数
(2)指数形式傅立叶级数
(b)求解,,及合成信号波形所用程序:
function [A_sym,B_sym]=CTFShchsym
%采用符号计算求一个周期内连续时间函数f的三角级数展开系数,再用这些
% 展开系数合成连续时间函数f.傅立叶级数
%函数的输入输出都是数值量
%ﻩNf=6ﻩ谐波的阶数
%Nnﻩ输出数据的准确位数
%ﻩA_sym第1元素是直流项,其后元素依次是1,2,3...次谐波cos项展开系数
%ﻩB_sym第2,3,4,...元素依次是1,2,3...次谐波sin项展开系数
% tao=1 tao/T=0.2
symstnkx
T=4;
tao=T/4;
a=-1.5;
ifnargin<4
Nf=10;
end
ifnargin<5
Nn=32;
end
x=time_fun_x(t);
A0=int(x,t,a,T+a)/T; %求出三角函数展开系数A0
As=2/T*int(x*cos(2*pi*n*t/T),t,a,T+a); %求出三角函数展开系数As
Bs=2/T*int(x*sin(2*pi*n*t/T),t,a,T+a); %求出三角函数展开系数Bs
A_sym(1)=double(vpa(A0,Nn)); %获取串数组A0所对应的ASC2码数值数组
fork=1:
Nf
A_sym(k+1)=double(vpa(subs(As,n,k),Nn)); %获取串数组A所对应的ASC2码数值数组 B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn)); %获取串数组B所对应的ASC2码数值数组
end;
if nargout==0
c=A_sym;
disp(c); %输出c为三角级数展开系数:
第1元素是直流项,其后元素依次是1,2,3...次谐波cos项展开系数
d=B_sym;
disp(d);%输出d为三角级数展开系数:
第2,3,4,...元素依次是1,2,3...次谐波sin项展开系数
t=-3*T:
0.01:
3*T;
f0=c
(1); %直流
f1=c(2).*cos(2*pi*1*t/T)+d
(2).*sin(2*pi*1*t/T); %基波
f2=c(3).*cos(2*pi*2*t/T)+d(3).*sin(2*pi*2*t/T); % 2次谐波
f3=c(4).*cos(2*pi*3*t/T)+d(4).*sin(2*pi*3*t/T); %3次谐波
f4=c(5).*cos(2*pi*4*t/T)+d(5).*sin(2*pi*4*t/T); %4次谐波
f5=c(6).*cos(2*pi*5*t/T)+d(6).*sin(2*pi*5*t/T); %5次谐波
f6=c(7).*cos(2*pi*6*t/T)+d(7).*sin(2*pi*6*t/T); %6次谐波
f7=c(8).*cos(2*pi*7*t/T)+d(8).*sin(2*pi*7*t/T); %7次谐波
f8=c(9).*cos(2*pi*8*t/T)+d(9).*sin(2*pi*8*t/T); % 8次谐波
f9=c(10).*cos(2*pi*9*t/T)+d(10).*sin(2*pi*9*t/T); %9次谐波
f10=c(11).*cos(2*pi*10*t/T)+d(11).*sin(2*pi*10*t/T); %10次谐波
f11=f0+f1+f2; %直流+基波+2次谐波
f12=f11+f3; %直流+基波+2次谐波+3次谐波
f13=f12+f4+f5+f6;%直流+基波+2次谐波+3次谐波+4次谐波+5次谐波+6次谐波
f14=f13+f7+f8+f9+f10; %0~10次
subplot(2,2,1)
plot(t,f0+f1),holdon
y=time_fun_e(t); %调用连续时间函数-周期矩形脉冲
plot(t,y,'r:
')
title('直流+基波')
a