当前位置:文档之家› 信号处理实验指导

信号处理实验指导

目录绪论 (1)1离散时间信号和系统分析1.1 离散时间信号产生与运算 (2)1.2 离散时间系统的时域分析 (9)1.3 离散时间系统的频域分析 (13)1.4 离散时间系统频响的零极点确定 (14)2快速傅立叶变换的应用2.1 FFT的计算 (17)2.2 利用FFT进行谱分析 (18)2.3利用FFT实现快速卷积 (19)3数字滤波器的设计3.1数字滤波器的结构 (23)3.2无限冲激响应(IIR)数字滤波器的设计 (25)3.3有限冲激响应(FIR)数字滤波器的设计 (27)4综合应用举例4.1 语音信号处理 (32)4.2 电话拨号音的合成与识别 (32)绪论数字信号处理主要研究如何对信号进行分析、变换、综合、估计与识别等加工处理的基本理论和方法。

随着计算机技术和大规模集成电路技术的发展,数字信号处理以其方便、灵活等特点引起人们越来越多的重视。

在40多年的发展过程中,这门学科基本形成了一套完整的理论体系,其中也包括各种快速、优良的算法,而且数字信号处理的理论和技术也在不断、快速地丰富和完善,新理论和新技术也层出不穷。

学习这门课程的过程中,容易使人感到数字信号处理的概念抽象难懂,其中的分析方法与基本理论不容易很好地理解与掌握。

因此,如何理解与掌握课程中的基本概念、基本原理、基本分析方法以及综合应用所学知识解决实际问题的能力,是本课程学习中所要解决的关键问题。

Matlab是一种面向科学和工程的高级语言,现已成为国际上公认的优秀的科技界应用软件,在世界范围内广为流行和使用。

在欧美高等院校里,Matlab已成为大专院校学生、教师的必要基本技能,广泛应用于科学研究、工程计算、教学等。

上世纪90年代末和本世纪初Matlab在我国也被越来越多地应用于科研和教学工作中。

Matlab是一套功能强大的工程计算及数据处理软件,在工业,电子,医疗和建筑等众多领域均被广泛运用。

它是一种面向对象的,交互式程序设计语言,其结构完整又具有优良的可移植性。

它在矩阵运算,数字信号处理方面有强大的功能。

另外,Matlab提供了方便的绘图功能,便于用户直观地输出处理结果。

本文通过Matlab系列仿真,旨在掌握基本的数字信号处理的理论和方法,提高综合运用所学知识,提高Matlab计算机编程的能力。

进一步加强独立分析问题、解决问题的能力、综合设计及创新能力的培养,同时注意培养实事求是、严肃认真的科学作风和良好的实验习惯。

1. 离散时间信号和系统分析1.1 离散时间信号产生与运算本节的目的是使读者熟悉Matlab 中离散时间信号产生和信号运算的基本命令。

几种常用的序列如下: (1)单位抽样序列⎩⎨⎧=01)(n δ 00≠=n n在MATLAB 中可以利用zeros()函数实现:;1)1();,1(==x N zeros x例如,下列程序N = input ('Type in length of sequence = ');n=0:N-1; x=zeros(1,N); x(1)=1; stem(n,x);xlabel('n');ylabel('x(n)'); title('单位抽样序列 N 取10');输入Type in length of sequence = 10,可产生(2)单位阶跃序列⎩⎨⎧01)(n u00<≥n n 在MATLAB 中可以利用ones()函数实现:);,1(N ones x =例如,下列程序N = input ('Type in length of sequence = ');n=0:N-1; x=ones(1,N); stem(n,x);xlabel('n');ylabel('x(n)');title('单位阶越序列 N 取10');输入Type in length of sequence = 10,可产生(3)正弦序列)/2sin()(ϕπ+=Fs fn A n x在MATLAB 中:)/***2sin(*1:0fai Fs n f pi A x N n +=-=例如,下列程序a = input('Type in a = ');b = input('Type in b = ');A = input('Type in the gain constant = '); N = input ('Type in length of sequence = ');n = 0:N; x = A*sin(a*pi*n+pi/b); stem(n,x); title('正弦序列');xlabel('Time index n');ylabel('Amplitude');输入Type in a = 0.1,Type in b = 2,Type in the gain constant = 3,Type in length of sequence = 40,可产生(4)指数序列n a n x =)(在MATLAB 中:na x N n .^1:0=-=例如,下列程序a = input('Type in exponent = ');K = input('Type in the gain constant = '); N = input ('Type in length of sequence = '); n = 0:N; x = K*a.^n; stem(n,x);xlabel('Time index n');ylabel('Amplitude'); title([' 指数序列 alpha = ',num2str(a)]);输入Type in exponent = 2,Type in the gain constant = 1,Type in length of sequence = 20,可产生如下结果(5)复指数序列n j e n x ϖ=)(在MATLAB 中:)**ex p(1:0n w j x N n =-=例如,下列程序a = input('Type in real exponent = ');b = input('Type in imaginary exponent = ');c = a + b*i;K = input('Type in the gain constant = '); N = input ('Type in length of sequence = '); n = 1:N; x = K*exp(c*n);subplot(211); stem(n,real(x));ylabel('Amplitude'); title('复指数序列 Real part'); subplot(212); stem(n,imag(x)); xlabel('Time index n'); ylabel('Amplitude');title('复指数序列 Imaginary part');输入Type in real exponent = 0.2,Type in imaginary exponent = 0.2,Type in the gain constant = 2,Type in length of sequence = 40,可产生如下结果(6)Sinc 函数{0,)sin(0,1)(≠==t tt t t Sinc nππ在MATLAB 中:),()(sin 10:01.0:10x t plot t c x t =-=例如,下列程序t=-10:0.01:10;x=sinc(t); plot(t,x);xlabel('t');ylabel('x(t)'); title('Sinc 函数');可产生(7)随即序列例如,下列程序clf;R=51;d=0.8*(rand(R,1)-0.5);m=0:R-1;stem(m,d','b');title('随机序列');xlabel('k');ylabel('f(k)');可产生序列的基本运算有:(1)序列加法和乘法在MATLAB中:x= c+ b;y= c.* b;例如,下列程序%取a=[2,1, 3, 4],b=[0,1,2, 3, 1]m=1:4;a=[2 1 3 4];c=[2 1 3 4 0];n=1:5;b=[0 1 2 3 1];c=[a zeros(1)];x=c+b;y=c.*b;subplot(4,1,1); stem(m,a);xlabel('m');ylabel('a(m)');subplot(4,1,2); stem(n,b);xlabel('n');ylabel('b(n)');subplot(4,1,3); stem(n,x);xlabel('n');ylabel('x(n)');title('序列的加法');subplot(4,1,4); stem(n,y);xlabel('n');ylabel('y(n)') ;title('序列的乘法');可产生(2)序列的卷积在MATLAB中:c=conv(a,b);例如,下列程序a=input('Type in the first sequence =');b=input('Type in the second sequence =');c=conv(a,b);M=length(c)-1; n=0:1:M;disp('output sequence ='); disp(c);stem(n,c);xlabel('Time index n'); ylabel('Amplitude');title('序列的卷积');输入Type in the first sequence =[1 2 3],Type in the second sequence =[4 5 6],可产生:output sequence =4 13 28 27 181.2 离散时间系统的时域分析对线性离散时间系统,若y1[n]和y2[n]分别是输入序列x1[n]和x2[n]的响应,则输入x[n]=ax1[n]+bx2[n]的输出响应为y[n]=ay1[n]+by2[n]式中叠加性质对任意常数a和b以及任意输入x1[n]和x2[n]都成立。

相关主题