北邮数字信号处理实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011级数字信号处理实验报告
实验名称:实验一数字信号的产生和基本运算
1.实验要求
因为现实世界里存在的是模拟信号,因此数字信号处理的第一个问题是将信号离散化,得到一个数字信号,然后再进行数字处理。
(1) 常用数字信号序列的产生:
熟悉Matlab 产生数字信号的基本命令,加深对数字信号概念的理解,并能够用Matlab 产生和绘制出一些常用离散信号序列。请用Matlab 画出下列序列的波形(-10 a) δ(n) b) 单位阶跃序列2 u(n-5) c) 矩形序列R(n) d) y(n)=2sin(0.3πn)+ 0.5cos(0.6πn) (2) 数字信号的基本运算: a) 加、减、尺度(乘除)和移位是数字信号处理中最基本的算术运算,将上述基本序列进行这些基本运算,得到多个序列构成的组合序列。 b) 请用您的计算机声卡采用一段您自己的声音x(n),长度为45秒,单声道,取样频率44.1kHz,16bit/样值,然后与给定的一段背景音乐y(n) 按下式叠加为一个声音信号z(n): z(n) = 0.7x(n) + 0.3y(n) 要求: 在同一个Figure 中,画出采集声音x(n)、背景音乐y(n)和混音z(n) 的时域波形; 提交实验报告时,请把声音文件转换为mp3 格式,图像转换为JPEG 格式,以节省存储空间。 通过本次实验,掌握Matlab 中这些基本运算命令,对数字信号处理有一个基本概念,为后面的数字信号分析和滤波打下基础。 2. 程序分析 第一部分: 1、δ(n)函数实现 % create impulse function function[x,n]=impseq(n0,n1,n2) %This function should be used to create a impseq array %It return 1 at n0 ,and return 0 at other place %You should set the arguments as: n1 if((n0 error('Arguments must satisfy n1<=n0<=n2') end n=[n1:n2]; x=[(n-n0)==0]; 2、阶跃函数u(n)的实现 %create u(n) function [x,n]=stepseq(n0,n1,n2) %This function should be used to create a u(n) array %It return 1 when n>=n0 ,and return 0 at other place %You should set the arguments as: n1 if((n0 error('Arguments must satisfy n1<=n0<=n2') end n=[n1:n2]; x=[(n-n0)>=0]; 3, 窗函数R(n)的实现 %create R(n) function [y,n]=R(n1,left,right,n2) %This function should be used to create a R(n) array %It return 1 when left<=n error('Arguments must satisfy ns<=left<=right<=nf') end n=[n1:n2]; y=[n>=left]-[n>=right]; 4、程序主代码 < y1=impseq(0,-10,10); y2=stepseq(5,-10,10)*2; y3=R(-10,-5,5,10); n=-10:1:10;temp=-10:0.1:10; y4=2*sin(0.3*pi*n)+0.5*cos(0.6*pi*n); y5=2*sin(0.3*pi*temp)+0.5*cos(0.6*pi*temp); subplot(2,2,1),stem(n,y1),title('δ(n)'); subplot(2,2,2),stem(n,y2),title('u(n)'); subplot(2,2,3),stem(n,y3),title('R(n)'); subplot(2,2,4),stem(n,y4),hold on, plot(temp,y5,':'),title('2sin(0.3pi*n)+0.5cos(0.6pi*n)'); 5、运行结果 第二部分: 1、各个函数求和 >>clear y1=impseq(0,-10,10); y2=stepseq(5,-10,10)*2; y3=R(-10,-5,5,10); n=-10:1:10; y4=2*sin(0.3*pi*n)+0.5*cos(0.6*pi*n); z1=y1+y2; z2=y3+y4; z3=y1*2;