数字信号处理翻转课堂笔记1——基本概念、离散LTI系统及matlab实现

数字信号处理第一次翻转课堂

Flipped Classroom1 of DSP

对应教材:《数字信号处理(第五版)》西安电子科技大学出版社,高西全,丁玉美著

一、要点

1、了解数字信号处理的基本概念、实现方法和特点
2、回顾离散时间信号(序列)的基本概念,进一步加深对序列线性卷积的概念及其计算方法的理解
3、离散LTI系统的一些基本概念及其时域求解方法
4、离散LTI系统时域特性与其差分方程特征根之间的关系
5、熟悉一些离散信号和系统时域分析MATLAB函数的用法:conv、filter、filtic等

二、问题与解答

1、在教材绪论的基础上,进一步从互联网查阅有关数字信号处理的概述性介绍,理解并总结:
①什么是信号处理?什么是数字信号处理(侧重阐述其中“数字”的概念体现在什么方面)?
②数字信号处理的实现方法主要有哪些?各种实现方法分别有何优缺点?
③相对于模拟的信号处理方式,数字信号处理具有哪些突出的优势?

2、任意给出一个正弦序列,分别选择不同的数字频率(分别取2π/ω为整数、有理分数、无理数等情形),用MATLAB画出该序列在不同数字频率的波形,根据绘图结果,分析讨论正弦序列的周期性。

3、利用conv函数计算有限长序列的线性卷积。
①任意取若干个有限长序列,设计适当的方案,验证卷积的结合律和分配律。
②如果求卷积的两个序列,其中一个为无限长序列,用conv函数求线性卷积时,必须进行截断处理。例如,设f(n)为长度为10的矩形序列,u(n)为单位阶跃序列,用conv函数求y(n)=f(n)*u(n),如果要计算出n=0:100的y(n)卷积结果,应该如何处理,才能得到正确的卷积结果。请设计适当的方案,并用MATLAB编程进行验证。(可参考上学期信号课实验四的相关内容)

4、任意给定一个二阶离散LTI系统、初始状态、外加激励,利用MATLAB的filter函数求解该系统的零输入响应、零状态响应、全响应并画出各响应的波形。改变系统参数(差分方程的系数),分别取系统稳定和不稳定两种情形进行求解,比较稳定和不稳定条件下系统时域响应的特点。

5、针对上一题给出的系统,改变系统参数,在保持系统稳定的条件下,分别求解系统特征根为两个正实数、两个负实数和一对共轭复数时的响应,并画出时域响应波形(备注特征根的值),比较其响应特性的区别,总结特征根对系统时域响应特性的影响。

6、分析信号与系统课程综合实验参考程序的结果,着重注意以下一些问题:
①根据问题分析的需要,如何合理地设计实验方案,包括系统和信号的模型、实验参数、实验的步骤和方法;
②在程序设计时,如何以合理有效的方式来展示实验结果,便于对实验结果进行对比分析;
③怎么结合相关理论知识,对实验结果及其得到的结论进行总结和概括;
④对于模拟信号,如果转换为离散信号,用数字(数值计算)的方法来进行分析和处理(比如分析信号的频谱、求信号的卷积),需要注意哪些问题,数值计算的结果如何与模拟信号、模拟系统的结果对应起来,两者之间是否会存在差异,这种差异是如何产生的。

1.数字信号处理概述性介绍

在教材绪论的基础上,进一步从互联网查阅有关数字信号处理的概述性介绍,理解并总结:
①什么是信号处理?什么是数字信号处理(侧重阐述其中“数字”的概念体现在什么方面)?
②数字信号处理的实现方法主要有哪些?各种实现方法分别有何优缺点?
③相对于模拟的信号处理方式,数字信号处理具有哪些突出的优势?

1.信号处理:按照一定的目的对信号进行加工和变换
数字信号处理:利用数字系统、采用数值运算的方式来对数字信号进行处理
2.数字信号处理(通常为数据和计算密集型)利用具有数字运算能力的软件或硬件系统来实现
软件实现:通用计算机、嵌入式计算机、DSP处理器。灵活,但处理速度相对较慢,成本较高。适用于小规模或者处理方式复杂但计算量相对较小的应用
硬件实现:专用芯片(功能单一,速度快,成本低,便于大规模应用),可编程逻辑芯片(兼具灵活性和速度,但成本较高,适用于小规模应用)
3.灵活性:可以很方便地通过改变数字系统的参数和结构、来得到具有不同特性的系统,从而实现不同的处理目的(例如软件无线电)高精度、高稳定性、高抗干扰能力、可重复性,便于大规模集成、成本逐步降低、性能逐步提升
可以实现很多模拟处理方式所无法实现的信号处理功能(几乎是想得到就能做到)

2.不同采样频率正弦序列的周期性

任意给出一个正弦序列,分别选择不同的数字频率(分别取2π/ω为整数、有理分数、无理数等情形),用MATLAB画出该序列在不同数字频率的波形,根据绘图结果,分析讨论正弦序列的周期性。

代码

t=0:20;

x1=sin(pi/10*t);
subplot(1,3,1)
stem(t,x1)
xlabel('n')
title('sin(\pi/10n)')

x2=sin(4*pi*t/5);
subplot(1,3,2)
stem(t,x2)
xlabel('n')
title('sin(4/5\pin)')

x3=sin(t);
subplot(1,3,3)
stem(t,x3)
xlabel('n')
title('sin(n)')

运行结果
在这里插入图片描述
第一个,周期为20
第二个,周期为5/2的分子,即周期为5
第三个,因为2π为无理数,所以不是周期函数

3.conv函数计算线性卷积

利用conv函数计算有限长序列的线性卷积。
①任意取若干个有限长序列,设计适当的方案,验证卷积的结合律和分配律。
②如果求卷积的两个序列,其中一个为无限长序列,用conv函数求线性卷积时,必须进行截断处理。例如,设f(n)为长度为10的矩形序列,u(n)为单位阶跃序列,用conv函数求y(n)=f(n)*u(n),如果要计算出n=0:100的y(n)卷积结果,应该如何处理,才能得到正确的卷积结果。请设计适当的方案,并用MATLAB编程进行验证。(可参考上学期信号课实验四的相关内容)

在这里插入图片描述
在这里插入图片描述
代码:

n=0:100;
un=stepfun(n,0);            %阶跃函数
xn=stepfun(n,10);
fn=un-xn;                   %阶跃函数相减得到长度为10的矩形序列
yn=conv(fn,un);
stem(yn);
axis([0 100 0 10]);

运行结果:
在这里插入图片描述

4.二阶离散LTI系统的时域响应

任意给定一个二阶离散LTI系统、初始状态、外加激励,利用MATLAB的filter函数求解该系统的零输入响应、零状态响应、全响应并画出各响应的波形。改变系统参数(差分方程的系数),分别取系统稳定和不稳定两种情形进行求解,比较稳定和不稳定条件下系统时域响应的特点。

稳定与否在于极点是否在单位圆内。
1、不稳定的情况
代码:

%%      任务1:求解一个不稳定系统的零输入、零状态、全响应
%%            其中2y(n)-y(n-1)-3y(n-2)=2x(n)-x(n-1)x(n)=u(n),y(-1)=1,y(-2)=3 
%%      代码:

clear all;
close all;
num=[2 -1 0];           %系统函数分子的系数
den=[2 -1 -3];          %系统函数分母的系数
n=0:50;

nl=length(n);           %求零输入响应
y01=[1 3];              %y的初始状态
x01=[0 0];              %x 的初始状态 
x1=zeros(1,nl);         %零输入响应的标志
zi1=filtic(num,den,y01,x01);        %为filter函数准备初始值
y1=filter(num,den,x1,zi1);          %求零输入响应
subplot(311);
stem(n,y1,'r.')
title('零输入响应');

grid on;                %求零状态响应
y02=[0 0];
x02=[0 0];
x2=ones(1,nl);          %此处与零输入响应不同
zi2=filtic(num,den,y02,x02);
y2=filter(num,den,x2,zi2);
subplot(312);
stem(n,y2,'r.')
title('零状态响应');

grid on;                %求全响应
y03=[1 3];
x03=[0 0];
x3=ones(1,nl);
zi3=filtic(num,den,y03,x03);
y3=filter(num,den,x1,zi3);
subplot(313);
stem(n,y3,'r.');
title('全响应');
grid on;

运行结果:
在这里插入图片描述
2、稳定的情况

代码:

%%      任务2:求解一个稳定系统的零输入、零状态、全响应
%%            其中4y(n)-y(n-2)=2x(n)-x(n-1)x(n)=u(n),y(-1)=1,y(-2)=3 
%%      代码:
clear all;
close all;
num=[2 -1 0];             %系统函数分子的系数
den=[4 0 -1];             %系统函数分母的系数
n=0:50;

nl=length(n);             %求零输入响应
y01=[1 3];                %y的初始状态
x01=[0 0];                %x 的初始状态 
x1=zeros(1,nl);           %零输入的标志
zi1=filtic(num,den,y01,x01);      %为filter函数准备初始值
y1=filter(num,den,x1,zi1);        %求零输入响应
subplot(311);
stem(n,y1,'r.')
title('零输入响应');

grid on;                  %求零状态响应
y02=[0 0];
x02=[0 0];
x2=ones(1,nl);            %注意与零输入区分
zi2=filtic(num,den,y02,x02);
y2=filter(num,den,x2,zi2);
subplot(312);
stem(n,y2,'r.')
title('零状态响应');

grid on;                  %求全响应
y03=[1 3];
x03=[0 0];
x3=ones(1,nl);
zi3=filtic(num,den,y03,x03);
y3=filter(num,den,x3,zi3);
subplot(313);
stem(n,y3,'r.');
title('全响应');
grid on;

运行结果:

特点:
稳定系统的响应是收敛的;
不稳定系统的响应是发散的。

5.特征根对二阶离散LTI系统时域响应的影响

针对上一题给出的系统,改变系统参数,在保持系统稳定的条件下,分别求解系统特征根为两个正实数、两个负实数和一对共轭复数时的响应,并画出时域响应波形(备注特征根的值),比较其响应特性的区别,总结特征根对系统时域响应特性的影响。

代码:

%%      任务
%       改变系统参数,在保持系统稳定的条件下,分别求解系统特征根为两个
%       正实数、两个负实数和一对共轭复数时的响应,并画出时域响应波形

%%      No.1特征根为两个正实数1/21/3
%%        其中6y(n)-5y(n-1)+y(n-2)=2x(n)-x(n-1)x(n)=u(n),y(-1)=1,y(-2)=3 
%%      代码:
% clear all;
% close all;
% num=[2 -1 0];         %系统函数分子的系数
% den=[6 -5 1];         %系统函数分母的系数
% n=0:50;
% nl=length(n);
% 
% grid on;              %求全响应
% y03=[1 3];
% x03=[0 0];
% x3=ones(1,nl);
% zi3=filtic(num,den,y03,x03);
% y3=filter(num,den,x3,zi3);
% stem(n,y3,'r.');
% title('全响应');
% grid on;

%%      No.2特征根为两个负实数-1/2-1/3
%%        其中6y(n)+5y(n-1)+y(n-2)=2x(n)-x(n-1)x(n)=u(n),y(-1)=1,y(-2)=3 
%%      代码:
% clear all;
% close all;
% num=[2 -1 0];         %系统函数分子的系数
% den=[6 5 1];          %系统函数分母的系数
% n=0:50;
% nl=length(n);
% 
% grid on;              %求全响应
% y03=[1 3];
% x03=[0 0];
% x3=ones(1,nl);
% zi3=filtic(num,den,y03,x03);
% y3=filter(num,den,x3,zi3);
% stem(n,y3,'r.');
% title('全响应');
% grid on;

%%      No.3特征根为一对共轭复数-1/2+1/2j和-1/2-1/2j
%%        其中2y(n)+2y(n-1)+y(n-2)=2x(n)-x(n-1)x(n)=u(n),y(-1)=1,y(-2)=3 
%%      代码:
clear all;
close all;
num=[2 -1 0];         %系统函数分子的系数
den=[2 2 1];          %系统函数分母的系数
n=0:50;
nl=length(n);

grid on;              %求全响应
y03=[1 3];
x03=[0 0];
x3=ones(1,nl);
zi3=filtic(num,den,y03,x03);
y3=filter(num,den,x3,zi3);
stem(n,y3,'r.');
title('全响应');
grid on;

运行结果:
No.1特征根为两个正实数1/2和1/3
在这里插入图片描述
No.2特征根为两个负实数-1/2和-1/3
在这里插入图片描述
No.3特征根为一对共轭复数-1/2+1/2j和-1/2-1/2j
在这里插入图片描述
在这里插入图片描述

6.课程实验一般步骤

分析信号与系统课程综合实验参考程序的结果,着重注意以下一些问题:
①根据问题分析的需要,如何合理地设计实验方案,包括系统和信号的模型、实验参数、实验的步骤和方法;
②在程序设计时,如何以合理有效的方式来展示实验结果,便于对实验结果进行对比分析;
③怎么结合相关理论知识,对实验结果及其得到的结论进行总结和概括;
④对于模拟信号,如果转换为离散信号,用数字(数值计算)的方法来进行分析和处理(比如分析信号的频谱、求信号的卷积),需要注意哪些问题,数值计算的结果如何与模拟信号、模拟系统的结果对应起来,两者之间是否会存在差异,这种差异是如何产生的。

答:
①在综合实验中,首先明确探究目的和已有条件,制定计划与设计实验的过程,据此需要构建出一个合理的实验模型,从零极点问题出发,构造出一个比较稳定的模型,考虑影响问题的主要因素,通过控制变量法、转换法、现象或数据归纳法来研究不同变量造成的不同结果,并以此进行实验结论的分析。
②程序设计中主要用到的比较差异的方法为控制变量法,将改变变量后的结果图形展示在依次进行比对。
③实验结果的表示,首先取决于实验的物理模式,通过被测量之间的相互关系,考虑实验结果的表示方法,常见的实验结果的表示方法是有图解法和方程表示法。通过图形和方程的方法,将我们所需要的结果以一种直观的方式表现出来,在此基础上进行实验的结论概括。
④有差异,从模拟信号转变为数字信号分为三大步骤:一、采样,二、量化,三,编码。量化会有信息的丢失,量化实质上是规定一个最小刻度,基于这个刻度,使用一些手段将连续的信号值转换为离散的信号值。

三、反思总结

疑惑:不太理解第5题稳定后冲激序列的高度由什么决定。
第一次写博客,请大家批评指正!

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暗然而日章

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值