《
业
一、从给定的程序(文件包Friday.rar)中,选择一个源程序做详细标注。(目的:熟悉Matlab程序)
我选择的源程序是Spectrum_Showing_CFT.m(文件夹第一题)。此程序的功能是画出了频谱X(f)?sin(f)与频
X(f)?eif的频谱图,振幅谱图和相位
谱图。通过对程序的标注,不仅使我了解了matlab的工作流程,也使我更深刻的认识了数字信号的频谱。
二、能够利用Matlab熟悉地画图,内容包括:X、Y坐标轴上的label,每幅图上的title,绘画多条曲线时的legend,对图形进行适当的标注等。 (1)在一副图上画出多幅小图;(2)画出一组二维图形; (3)画出一组三维图形; (4)画出复数的实部与虚部。 (5)完成对一个源程序进行详细注释。
此题程序见文件夹第二题tu.m文件
(1) 在matlab上作多幅图,核心语句是subplot语句,如此题我用了 subplot(2,1,1),即实现了把图区分成2*2个小单元,并在第一个小单元内作图,如图1所示。
y=sin(x)10.50-0.5-105xy=tan(x)10yyy=tan(x)100500-5005xy=sin(x)1010050y10.50-0.505x10-105x10y0-50 图1:多幅图
(2) 画出一组二维图形,我选择用plot函数画二维曲线,并用hold on语句实现在多幅图在一个图区显示的效果,如图2所示。
二维图21.510.50-0.5-1-1.5-2 1y=*sin(x)y= *sin(x)y= *sin(x) y2345x678910 图2
(3)三维图的画法有很多函数,我选择了主流的mesh函数,其与二维画图的主要区别就是要事先网格化,即使用meshgrid函数,绘图效果如图3所示。
三维图100500-50-100-150-200105y002x图3
z46810
(4)对复数使用real和imag函数选取实部和虚部。分别画出了实部与虚部图像,如图4所示。
2000实部虚部0 -2000-4000-6000-8000-10000 12345678910
图4
(5)对程序的标注,我选择在绘制图1的时候进行标注,详见文件夹第二题tu.m文件。
三、计算普通褶积与循环褶积,分别使用时间域与频率域两种方法进行正、反演计算,指出循环褶积计算时所存在的边界效应现象;编写一个做相关分析的源程序。
此题程序见文件夹第三题zongjie.m文件。 (1)正演:
选取x1(i)?i?1,x2(j)?1j?1(i,j?[0,99])作褶积运算
1. 线性褶积的时间域法 利用矩阵
z(k)?x(k)?y(k)
00L00L0?x0
?xx00L00L0 ?1?x2x1x0L00L0
? MMMMMM?? ?xxn?1xn?2Lx00L0n? xnxn?1Lx1x0L0?0 ?MMMMMM?
00Lxmxm?1Lx1??0
(i)和x(i)求解。其中xi和yi相当于x。z120??y0??z0??????0z1y1?????0??y2??z2??????M??M??M??0??ym??zn??????0??0??zn?1?M??M??M??????x0??0??????zm?n??即是线性褶积的结果,其总长度为
m+n-1,m为x1的长度,n为x2的长度。求解结果用作图实现,如图5所示。横坐标为k,纵坐标为线性褶积的褶积值。
2.循环褶积时间域法 利用矩阵
xN?1xN?2?x2x1??y0??z0??x0
??????z1x1x0xN?1?x3x2y1 ?????? ?z2???x2x1x0xN?1?x3? ?y2???????
??????????????
?z?????x1x0??N?1??xN?1xN?2xN?3??yN?1?
(i)和x(i)求解。其中xi和yi相当于x。z即是循环褶积的结果,其总长度为N,12即选取的循环褶积的长度。求解结果用作图实现,如图5所示。横坐标为0—N-1,
纵坐标为循环褶积的褶积值。 3.循环褶积频率域法
先对x1和x2作DFT得到X1和X2,长度都为N,即循环褶积长度。公式为
?X(0)??11???X(1)W???12?X(2)??1W???????????X(N?2)??1W(N?2)???(N?1)?X(N?1)??1W1??????124WW?WWWWN?22(N?2)?(N?2)(N?2)(N?2)(N?1)WW2(N?2)2(N?1)??N?1W?2(N?1)?W???(N?2)(N?1)?W?(N?1)(N?1)W?1?x(0)???x(1)???x(2)???????x(N?2)????x(N?1)?其中W为e?i2?N,然后X1和X2两个频率域相乘,注意是X(i)=X(*X(。然i)i)12后对X(i)求IDFT,公式为
?1??X(0)?11?11 ?z(0)????????1?2?(N?2)?(N?1)1WW?WWX(1) ?z(1)??????2?4?2(N?2)?2(N?1)??X(2)? ?z(2)?WW?WW1?1?????? ?N?????????????? ?z(N?2)??1W?(N?2)W?2(N?2)?W?(N?2)(N?2)W?(N?2)(N?1)??X(N?2)?????? ??(N?1)?2(N?1)?(N?2)(N?1)?(N?1)(N?1)z(N?1)1WW?WWX(N?1)????? ?z即是循环褶积的结果,其总长度为N,即选取的循环褶积的长度。求解结果用作图实现,如图5所示。横坐标为0—N-1,纵坐标为循环褶积的褶积值。 4.线性褶积频率域法
当循环褶积频率域法选取的长度L=M+N-1时,线性褶积的结果等于循环褶积的结果,所以在L=M+N-1时,利用循环褶积频率域法即可求解出线性褶积。求解结果用作图实现,如图5所示。横坐标为0-L-1,纵坐标为线性褶积的褶积值。 5.边界效应
由图5的线性褶积与循环褶积对比可知,在边界附近褶积值存在差异,而在中间部分褶积值相同。 6.相关
线性相关的公式为:
M ?rxy(m)???x(n?m)y(n) n??N
00?000x0x1???0??r-M??0 ??????0???????????????? ?00x0x1x2?xN?1??0??r-1? ?0?????????0x0x1?xM?xN??y0??r0? ?00 ?0?0x0x1x2?xM?1?0??y1??r1??????? ??0????????0???????? ?xx1?xM?1xMxM?1??00??yM??rM?0????? ?x2?xMxM?1??000??0??rM?1??x ?1?????????????? ?????????xN00?00? ??0??????xN?2xN?1???rN??此公式中x的长度是M+1,y的长度是N+1。 循环相关的公式为
x1x2?xN?2xN?1??y0? ?z0??x0??? ?z1??x1x2x3?xN?1x0y1?????? ?z???xx3x4?x0x1? ?y2?22??? ???????????????? ??z??x??x0x1?xN?3xN?2???yN?1? ?N?1??N?1其中N为循环的长度。