《计算机编程与数字信号处理实习》大作
业
一、从给定的程序(文件包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