北邮数字信号处理实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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((n0n2)|(n1>n2))

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((n0n2)|(n1>n2))

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<=nleft||left>right||right>n2)

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;

相关文档
最新文档