实验一 离散时间信号和系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

18
解差分方程 :调用filter
函数的调用方式为
y = filter(b,a,x); 输入参数b、 a为差分方程的系数, b=[b0, b1, …, bM] a=[a0, a1, …, aN] 输入参数x是输入序列 求得的输出序列y和输入x的长度一样 系数a0必须不为零。

19


conj求共轭复数 sum求总和
E = sum(x.*conj(x)); abs求幅值 sum求总和 E = sum(abs(x).^2);

15
卷积和:调用conv


x = [3,-3,7,0,-1,5,2]; % 序列x的非零区间-4≤n≤2 h = [2,3,0,-5,2,1]; % 序列x的非零区间-1≤n≤4
1、典型序列的实现
impseq(n0,n1,n2) stepseq(n0,n1,n2) a.^n exp((a+bj)*n) sin or cos
2、序列的运算
sigadd(x1,n1,x2,n2) sigmult(x1,n1,x2,n2) a*x sigshift(x,m,n0) sigfold(x,n)
离散时间信号和系统的matlab 描述与实现
一、实验目的
1、熟悉MATLAB的软件环境,学习MATLAB 的编程方法 2、学习离散时间典型信号及其运算的 Matlab实现。 3、学习离散时间系统的Matlab实现并掌 握求解系统对输入的响应的方法
2
二、实验原理
1、典型序列 单位抽样序列 单位阶跃序列 实数指数序列 复数指数序列 正余弦序列
例:解差分方程
已知线性常系数差分方程y(n)-y(n-1)+0.75y(n-2)= x(n), 求输入x(n)= δ(n)时系统的输出序列。 (1) 求单位脉冲响应h(n) b= 1; a= [1,-1,0.75]; x= impseq(-10,0,50); % 生成单位脉冲序列 h= filter(b,a,x); % 计算单位抽样响应 n= [-10:50];stem(n,h); %单位抽样响应曲线 axis([-10,50,-1,1.5]) % 标出坐标 title('Impulse Response'); xlabel('n'); ylabel('h(n)');
stem(n,x);axis([-3,3,0,1.5]);
% 生成位置向量 % 生成阶跃序列
8
矩形序列生成函数


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]; % 生成矩形脉冲序列
3、系统的实现及响应的求解
6
单位脉冲序列δ(n-1)



n = [-3:3]; x = [(n-1) == 0]; stem(n,x); axis([-3,3,0,1.5]);
% 生成位置向量 % 生成单个脉冲序列 % 标示坐标
7
单位阶跃序列 u (n-1)


n = [-3:3]; x = [(n+1) >= 0];
13
翻转: 调用fliplr


n = [-3:3]; %生成一个序列 x = [0,0,1,0.5,0.25,0.125,0];stem(n,x); x = fliplr(x); %x排列次序左右翻转 n = -fliplr(n); %向量n对n= 0翻转 stem(n,x);
14
序列的能量
3
2、序列的运算


信号加 信号乘 改变比例 移位 折叠 卷积运算
4
3、系统的实现及响应的求解
y(n) bm x(n m) ak y(n k ) 差分方程:
m 0 k 1 M N


在Matlab中: y(n)
filter(b, a, x)
5
三、实验内容
23
9
矩形序列


[x,n] = rectseq(-3,-1,4,5); stem(n,x); axis([-3,5,0,1.5]);
10
实指数序列


n = [0:10]; x = (0.6).^n; stem(n,x); axis([0,10,0,1.5]Fra Baidu bibliotek;
% 生成位置向量 % 生成实指数序列
17
卷积和:包含位置向量



x = [3,-3,7,0,-1,5,2]; nx = [-4:2]; % 给定输入序列 h = [2,3,0,-5,2,1]; nh = [-1:4]; % 给定脉冲响应序列 [y,ny] = convextd(x,nx,h,nh); % 带位置序列的卷积结果 运行结果:有位置信息 y = 6 3 5 6 19 -31 30 18 -27 -1 9 2 ny = -5 -4 -3 -2 -1 0 1 2 3 4 5 6
% 调用conv计算卷积和 y = conv(x,h);
运行结果:无位置信息
y = 6 3 5 6 19 -31 30 18 -27 -1 9 2
16
卷积和函数:convextd.m




function [y,ny] = convextd(x,nx,h,nh) % 序列y为序列x和序列h的卷积 % ny,nx,nh 分别为序列y,x和h的位置向量 % 调用方式 [y,ny] = convextd(x,nx,h,nh) ny1 = nx(1)+nh(1); % 计算卷积后的起点位置 ny_end = nx(end) + nh(end); % 计算卷积后的终点位置 y = conv(x,h); % 计算卷积和序列的数值 ny = [ny1:ny_end]; % 计算卷积和序列的位置向量
11
正弦序列 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]);
% 生成位置向量 % 生成正弦序列

12
复指数序列




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])
20
例:判断系统稳定
(2) 求得单位抽样响应的和 sum(abs(h)); 程序的运行结果为

% 计算单位抽样响应的和 ans = 6.1718
绝对可和,说明系统是稳定的。
21
完成下列题目的matlab实现
22
实验报告的要求



实验目的 实验原理 实验内容及结论:要求有程序并指出各函 数功能,有结果,有图形(坐标要标识 清楚)。 仔细观察上机操作时出现的各种现象, 记录主要情况,作出必要说明和分析。
相关文档
最新文档