如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
数字信号处理实验
实验一、离散时间信号和系统
实验目的:
熟悉MATLAB的软件环境,学习MATLAB的编程方法
学习离散时间典型信号及其运算的Matlab实现
学习离散时间系统的Matlab实现并掌握求解系统对输入的响应方法
实验原理:
典型序列
单位抽样序列
单位阶跃序列
实数指数序列
复数指数序列
正余弦序列
序列的运算
信号加
信号乘
改变比例
位移
折叠
卷积运算
系统的实现及响应的求解
差分方程:
差分方程在Matlab中:y(n)=filter(b,a,x)
实验内容:
1、典型序列的实现
impseq(n0,n1,n2)stepseq(n0,n1,n2)a.^nexp((a+bj)*n)sinorcos
2、序列的运算
sigadd(x1,n1,x2,n2)sigmult(x1,n1,x2,n2)a*xsigshift(x,m,n0)sigfold(x,n)
系统的实现及响应的求解
单位脉冲序列δ(n-1)
n=[-3:3];%生成位置向量
x=[(n-1)==0];%生成单个脉冲序列
stem(n,x);
axis([-3,3,0,1.5]);%标示坐标
单位阶跃序列u(n-1)
n=[-3:3];%生成位置向量
x=[(n+1)>=0];%生成阶跃序列
stem(n,x);
axis([-3,3,0,1.5]);
矩形序列生成函数
function[x,n]=rectseq(n0,n1,n2,N)%单位矩形序列生成函数
%调用方式[x,n]=rectseq(n0,n1,n2,N)
n=[n0:n2];%生成位置向量
x=[(n-n1)>=0&((n1+N-1)-n)>=0];%生成矩形脉冲序列
矩形序列
[x,n]=rectseq(-3,-1,4,5);
stem(n,x);
axis([-3,5,0,1.5]);
实指数序列
n=[0:10];%生成位置向量
x=(0.6).^n;%生成实指数序列
stem(n,x);
axis([0,10,0,1.5]);
正弦序列3sin(0.1πn+π/3)
n=[0:1:20];%生成位置向量
x=3*sin(0.1*pi*n+pi/3);%生成正弦序列
stem(n,x);
axis([0,20,-4,4]);
复指数序列
n=[-2:10];
x=exp((0.2-0.5j)*n);%复指数序列
subplot(1,2,1),stem(n,real(x));%用空心圆画点
line([-5,10],[0,0]);%画横坐标
subplot(1,2,2),stem(n,imag(x),'filled');%用实心圆画点
%line([-5,10],[0,0])
序列的能量
conj求共轭复数
sum求总和
E=sum(x.*conj(x));
abs求幅值
sum求总和
E=sum(abs(x).^2);
完成下列题目的matlab实现
A.
n=[-5:5];%生成位置向量
x1=[(n+2)==0];%生成单位脉冲序列
x2=[(n-4)==0];%生成单位脉冲序列
x=2*x1-x2;
subplot(3,1,1)
stem(n,x);
axis([-5,5,-1.5,2.5]);%标示坐标
title('x(n)=2δ(n+2)-δ(n-4)');
xlabel('n');ylabel('x(n)');
B.
n=[0:20];%生成位置向量
x1=[(n>=0&n<10)];%生成矩形脉冲序列
x2=[(n>=10&n<20)];%生成矩形脉冲序列
x=n.*x1+10*exp(-0.3*(n-10)).*x2;
subplot(3,1,2)
stem(n,x);
axis([0,20,0,11]);%标示坐标
title('x(n)=n[u(n)-u(n-10)]+10exp(-0.3*(n-10))[u(n-10)-u(n-20)]');
xlabel('n');ylabel('x(n)');
C.
n=[0:50];%生成位置向量
w=normrnd(0,1);%生成具有零均值及单位方差的高斯随机序列
x=cos(0.04*pi*n)+0.2*w;
subplot(3,1,3)
stem(n,x);
axis([0,50,-2,2]);
title('x(n)=cos(0.04πn)+0.2ω(n)');
xlabel('n');ylabel('x(n)');
A.
b=[1];a=[1,-1,0.9];
x=impseq(0,-20,100);%生成单位脉冲序列
n=[-20:100];%生成位置向量
h=filter(b,a,x);%差分方程系数
subplot(2,1,1)
stem(n,h);
axis([