实验指导材料-新
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 有限长序列的线性卷积的计算
一、实验目的
1、掌握有限长序列线性卷积的编程计算原理,并能利用C 语言或Matlab 编
写算法程序进行实现;
2、学会线性卷积函数的使用方法,并能利用其计算有限长序列的线性卷积。
二、实验内容及步骤
1、复习有限长序列线性卷积的算法原理,并掌握其编程实现方法。
2、用Matlab 生成两个有限长序列()()x n y n 、,其中:
113()0n x n n ≤≤⎧=⎨⎩其他,202()0n y n n
≤≤⎧=⎨⎩其他 分别显示序列()()x n y n 、的图形。
3、编写有限长序列线性卷积算法程序计算()x n 与()y n 的卷积,结果令为
1()c n ,即1()()*()c n x n y n =,绘制1()c n 的图形。
4、利用matlab 的conv 函数计算()x n 与()y n 的卷积,结果令为2()c n 即
2()()*()c n x n y n =,绘制2()c n 的图形。
5、将1()2()c n c n 、绘制在一幅图上,将步骤2、3、4所得到的结果进行对比
分析,并检验算法程序的正确性。
三、实验基本原理与方法
若序列)(n x 和序列)(n h 均是有限长序列,其中)(n x 的有限区间为[1N ,1M ],
)(n h 的有限区间为[2N ,2M ],两者之间的卷积)(n y 可按如下的方法进行计算:
第一步:确定)(n y 的有限区间为[21N N +,21M M +],这一步的工作是为了
决定)(n y 中的哪些序列值要计算,因为区间外的序列值都是0,无须计算。
第二步:把)(n x 和)(n h 的有限区间都变为0开始。
第三步:利用∑-=-=1
10
)()()(N M k k n h k x n y 计算序列值。计算)(n y 的n =0,1,2,……,
2121N N M M --+,所对应的)0(y ,)1(y ,……, )2121(N N M M y --+。求
一个序列值时,乘加运算的结束标志是)(k n h -的0<-k n 。
第四步:把)(n y 的序号由0开始变为由21N N +开始,其它序号依次变为
121++N N ,221++N N ,…,直到21M M +为止,就是真正的输出序列y(n)。
四、实验要求
1、独立完成实验,并进行结果分析;
2、将实验内容2、
3、4编写为一个程序(M 文件),图形分一栏从上到下顺
次显示。
五、思考题
1、无限长序列线性卷积的实现能否利用直接编程计算,为什么?
2、试从区间端点及长度两方面总结有限长序列线性卷积的结果序列的非零
值区间与做卷积的两个有限长序列非零值区间的关系。
六、实验报告要求
1、独立完成实验报告并进行结果分析,报告中要简单介绍实验目的及原理。
2、对实验过程中所得到的结果和图形进行分析,总结实验结论和问题。
3、实验报告要求附源程序(包括比较详细的注释)和实验结果、图形。
4、简要回答思考题。
七、实验用参考程序
%产生序列x1(n) 和x2(n),绘制图形
A=[1 1 1];na=[1:3];
B=[2 2 2]; nb=[0:2];
subplot(411); stem(na,A); title('x1(n)');
subplot(412); stem(nb,B); title('x2(n)');
%编程直接计算x1(n) 与x2(n)的线性卷积
ncb=na(1)+nb(1);
nce=na(length(A))+nb(length(B));
nc1=[ncb:nce];
C1=[zeros(1,nce-ncb+1)];
for i=0:length(A)+length(B)-2
for j=0:length(A)-1
if ((i-j>=0)&(i-j+1<=length(B)))
C1(i+1)=C1(i+1)+A(j+1)*B(i-j+1);
end
end
end
subplot(413); stem(nc1,C1); title('c1(n)');
%利用conv函数计算x1(n) 与x2(n)的线性卷积
C2=conv(A,B); nc2=[ncb:nce];
subplot(414); stem(nc2,C2); title('c2(n)');
实验用参考程序代码的运行结果如图1.1所示,本实验的编程可参考此代码进行。
图1.1 实验用参考程序运行结果
实验二 连续时间信号的采样及采样定理
一、实验目的
1、掌握连续时间信号离散化的方法(即采样),并能利用Matlab 编程加以
实现;
2、掌握连续时间傅立叶变换、离散时间傅立叶变换的计算机实现方法,能
够利用傅立叶变换的方法对连续时间信号、离散时间信号进行频谱的分析;
3、熟悉连续时间信号经理想采样前后的频谱变化关系,加深对时域采样定
理的理解。
二、实验基本原理与方法
采样是连续时间信号数字化处理的第一个关键环节。对采样过程的研究不仅
可以了解采样前后信号时域和频域特性发生的变化以及信号信息不丢失的条件,
而且可以加深对傅立叶变换、Z 变换和序列傅立叶变换之间关系的理解。
对一个连续时间信号()a x t 进行理想采样的过程可以用下面的公式来表示:
()()()()()s a T a n x t x t t x t t nT δδ∞
=-∞==-∑
其中()s x t 为()a x t 的理想采样,()T t δ为周期冲激脉冲。理想采样信号()s x t 的傅立
叶变换()s X j Ω可以表示为:12()() s a k X j X j jk T T
π∞=-∞Ω=Ω-∑ 上式表明,采样信号的频谱是连续时间信号频谱的周期延拓,其延拓周期为
采样角频率。采样前后信号的频谱示意图参看教材1.6节。只有满足采样定理时,
才不会发生频率混叠失真。
对信号进行频谱分析,从数学上讲就是进行傅立叶变换,对于连续时间信号,
变换公式如下:
()()j t X j x t e dt +∞
-Ω-∞Ω=⎰ 而对于离散时间信号(序列),变换公式如下:()()j j n n X e x n e ωω∞-=-∞=
∑
不管是连续时间信号还是离散时间信号,频谱都是关于频率的连续函数(连
续谱)。 三、实验内容及步骤
1、令连续时间信号1000()t a x t e -=,绘制其在-5ms 到+5ms 之间的波形,时间
轴间隔为0.05ms 。
2、参考例程,编程实现()a x t 的傅立叶变换(连续时间傅立叶变换),并绘
制其在-2KHz 到+2KHz 之间的幅频图,频率轴频率间隔为8Hz 。
3、编程实现用三个不同的采样频率对1000()t a x t e -=进行理想采样,分别绘制
出采样后的信号波形。三个采样频率分别为: