MATLAB--数字信号实验
前言
MATLAB 是一套功能强大的工程计算及数据处理软件,广泛应用于工业,电子,医疗和建筑等众多领域。它是一种面向对象的,交互式程序设计语言,其结构完整又优良的可移植性。它在矩阵运算,数字信号处理方面有强大的功能。另外,MATLAB提供了方便的绘图功能,便于用户直观地输出处理结果。
本课程实验要求学生运用MATLAB编程完成一些数字信号处理的基本功能,加深对教学内容的理解。
实验1 常见离散信号的MATLAB产生和图形显示和离散系统的差分方程、冲激响应和卷积分析
实验目的:1、加深对常用离散信号的理解;
2、加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。
3、验证线性系统的线性
实验原理:(一)常用的离散信号
单位抽样序列
在MATLAB中可以利用zeros()函数实现。
如果在时间轴上延迟了k个单位,得到即:
2.单位阶跃序列
在MATLAB中可以利用ones()函数实现。
3.正弦序列
在MATLAB中
4.复正弦序列
在MATLAB中
5.指数序列
在MATLAB中
(二)离散系统的差分方程
离散系统
其输入、输出关系可用以下差分方程描述:
输入信号分解为冲激信号,。记系统单位冲激响应
,则系统响应为如下的卷积计算式:
当时,h[n]是有限长度的(n:[0,M]),称系统为FIR系统;反之,称系统为IIR系统。
在MATLAB中,可以用函数y=Filter(p,d,x) 求解差分方程,也可以用函数 y=Conv(x,h)计算卷积。
实验内容:1、编制程序产生上述5种信号(长度可输入确定),并绘出其图形。
2、编制程序求解下列两个系统的单位冲激响应和阶跃响应以及输入信号为,并绘出其图形。(利用递推解法和MATLAB提供的FILTER函数和CONV函数)
3、计算下列卷积,并图示各序列及其卷积结果。
4、编制程序验证系列系统的线性性质。
输入序列可采用
实验要求:(1)预先阅读附录(MATLAB基础介绍);
(2)讨论复指数序列的性质。
(3)给出理论计算结果和程序计算结果并讨论。
附录:近似程序
1、clear,n0=0;nf=10;ns=3;
n1=n0:nf;
x1=[zeros(1,ns-n0),1,zeros(1,nf-ns)];%单位脉冲序列的产生
%用逻辑试产生单位脉冲序列更为简洁n1=n0:nf;x1=[(n1-ns)==0]
n2=n0:nf;x2=[zeros(1,ns-n0),ones(1,nf-ns+1)];%单位阶跃序列的产生
%用逻辑试产生单位阶跃序列语句n1=n0:nf;x1=[(n1-ns)>=0]
n3=n0:nf;x3=exp((-0.2+0.5j)*n3);%复指数序列
subplot(2,2,1),stem(n1,x1);title('单位脉冲序列');
subplot(2,2,3),stem(n2,x2);title('单位阶跃序列');
subplot(2,2,2),stem(n3,real(x3));line([0,10],[0,0]);
title('复指数序列'),ylabel('实部');
subplot(2,2,4),stem(n3,imag(x3));line([0,10],[0,10]),%画横坐标
ylabel('虚部')
2、clear;close all;
N=64;n=0:N-1;m=10;
B=[1,0.66,0.5,0.3,0.4,4,1];
A=[1,3,4,4,1,22,2];
x1=[n==0];
y1=filter(B,A,x1);
x2=[(n-m)==0];
y2=filter(B,A,x2);
x3=[n>=0];
y3=filter(B,A,x3);
x4=[(n>=0)&(n<32)];
y4=filter(B,A,x4);
x5=exp(j*pi*n/8);
y5=filter(B,A,x5);
subplot(3,2,1),stem(n,y1);title('y1');
subplot(3,2,2),stem(n,y2);title('y2');
subplot(3,2,3),stem(n,y3);
title('y3');
subplot(3,2,4),stem(n,y4);title('y4');
subplot(3,2,5),stem(n,y5);title('y5');
3、clear;close all;
Nx=20;Nh=10;m=5;
n=0:Nx-1;
x1=(0.9).^n