信号与线性系统上机实习报告
学生姓名:
班号:
学号:
指导老师:
中国地质大学(武汉)机械与电子信息学院
2014 年4月
实验一波形发生
一、实验目的:
了解一些常见的波形的程序产生,及函数特性。
二、设计方法:
利用matlab给定的一些自带函数产生。
三、实验内容:
1、矩形波:产生宽度为1的矩形波;
源程序:
x=-2:0.01:2;
y=rectpuls(x);
plot(x,y);
title(‘方波’);
波形图:
2、锯齿和三角波发生
源程序:
x=-4*pi:0.03:4*pi;
y=sawtooth(x,0.1);
plot(x,y);
xlabel(‘幅值’);
ylabel(‘时间’);
title(‘三角波’);
波形图:
3、产生一个30HZ方波信号,幅度为1
源程序:
x=0:0.0003:0.2;
y=square(2*pi*30*x);
plot(x,y);
xlabel(‘幅值’);
ylabel(‘时间’);
title(‘周期方波信号’);
波形图:
4、产生一频率为10kHz的周期高斯脉冲信号,其带宽为50%。脉冲重复的
频率为1kHz,采样率为50kHz,脉冲序列的长度为10ms。重复时幅度每次衰减为原来的0.8倍;
源程序:
x=0:0.00002:0.01;
d=[0:0.001:0.01;0.8.^(0:10)]';
y=pulstran(x,d,'gauspuls',10000,0.5);
plot(x,y)
波形图:
实验二信号的卷积
一、实验目的:
对卷积有一定的认识,了解卷积的波形图。
二、算法概要:
表示卷积计
求两个信号卷积的公式:y(n)=x(n) h(n)=
三、实验内容:
(t)=ε (t-1)- ε(t-2)
1. 已知两个信号:?
1
(t)=ε (t-2)- ε(t-3)
?
2
求卷积:C(t)=?1(t)* ?2(t),并画出?1(t),?2(t),C(t)的波形。
我们利用matlab程序来设计。
这里,ε (t-1)- ε(t-2),ε (t-2)- ε(t-3),分别表示两个门函数。源程序:
t1=1:0.01:2
f1=ones(size(t1)).*(t1>1);
t2=2:0.01:3;
f2=ones(size(t2)).*(t2>2);
c=conv(f1,f2);
t3=3:0.01:5;
subplot(3,1,1),plot(t1,f1);
subplot(3,1,2),plot(t2,f2);
subplot(3,1,3),plot(t3,c);t1=1:0.01:2;
波形图:
2、已知两个信号:?
(t)=tε(t)
1
求其卷积:C(t)=?1(t)* ?2(t) 的波形。
源程序:
t1=0:0.01:1;
f1=t1.*(t1>0);
t2=-1:0.01:2;
f2=t2.*exp(-t2).*(t2>0)+exp(t2).*(t2<0);
c=conv(f1,f2);
t3=-1:0.01:3;
subplot(3,1,1),plot(t1,f1);title('f1(t)');
subplot(3,1,2),plot(t2,f2);title('f2(t)');
subplot(3,1,3),plot(t3,c);title('c(t)');
波形图:
3、离散卷积和卷积序号
把x[n]={2,-1,3}送到一个冲激响应为h[n]={1,2,2,3}的滤波器中,找出响应y[n]并绘制所有信号。
开始的序号是x[n]中n=-1,h[2]中n=-2,因此y[n]中的n=-3。
源程序:
x=[2 -1 3];h=[1 2 2 3];
y=conv(x,h);
nx=-1:1;nh=-2:1;
ns=nx(1)+nh(1);
ne=nx(length(nx))+nh(length(nh));
ny=ns:ne;
figure;
subplot(311);
stem(nx,x); title('x[n]');
subplot(312);
stem(nh,h); title('h[n]');
subplot(313);
stem(ny,y); title('y[n]');
波形图:
实验三信号的分解
一、实验目的:
1.观察方波信号的分解;
2.观察基波与各次谐波的合成;
3.熟悉matlab函数的编写以及调用。
二、实验原理
任何信号都是由各种不同频率、幅度和初相的正弦波叠加而成的。对于周期信号由它的傅里叶级数展开式可知,各次谐波的频率为基波频率的整数倍。
而费周期信号包含了从零到无穷大额所有频率成分,每一频率成分的幅度均趋向无穷小,但其相对大小事不同的。
三、实验内容:
1)画对称方波通过正交展开的前N次波形:fangbofj1(N);
画对称方波通过正交展开的前N次波形,并与原方波信号叠加显示对比逼近结果。参数表:(N),其中N为需要展开的阶次;
源程序:
function fangbofj(N)
N=double(N);
t=-1:0.01:1;
w=2*pi;
y=square((t+1/4)*2*pi,50);
for(k=1:2:1+N)
n=1:2:k;
b=4./(pi*n);
x=b*sin(w*n'*(t+1/4));
figure;
plot(t,y);
hold on;
plot(t,x);
hold off;
xlabel('t');ylabel('部分波形');
axis([-1 1 -1.5 1.5]);
grid on;
title(['最大谐波数',num2str(k)]);
end
波形图:
2)画对称方波通过正交展开的第N次波形:fangbofj1(N);
区别画出的是第N次波形,其余同上。
源程序:
function fangbofj1(N)
N=double(N);
t=-1:0.01:1;
w=2*pi;
y=square((t+1/4)*2*pi,50);
n=1:2:N;
b=4./(pi*n);
x=b*sin(w*n'*(t+1/4));
figure;
plot(t,y);
hold on;
plot(t,x);
hold off;
xlabel('t');ylabel('部分波形');
axis([-1 1 -1.5 1.5]);
grid on;
title(['最大谐波数=',num2str(N)]);
波形图: