数字信号处理学习笔记--Chapter 1.3 常系数线性差分方程

1 线性常系数差分方程的表达形式

  • 常系数:是指方程中ak和bm为常数;
  • 阶数:y(n)项中变量序号的最高值与最低值之差;
  • 线性:y(n-k)与x(n-m)项都只有一次幂,且不存在相乘项

2 线性常系数差分方程的求解方法

  • 经典解法:类似于模拟系统求解微分方程的方法,要求齐次解、特解,并由边界条件求待定系数。由于计算复杂,较少使用。
  • 递推(迭代)法:简单、适于用计算机进行求解。但只能得到一系列数值解,不易得到封闭式(公式)解答。
  • 变换域法:将差分方程变换到Z域求解。
  • 卷积法:由差分方程求出系统的h(n),再与已知的x(n)进行卷积,得到y(n)。

例:用迭代法求解差分方程,求单位抽样响应h(n)

设系统差分方程为:y(n) - ay(n-1) = x(n),求h(n)

解1:设x(n) = δ(n),对因果系统,且有当n<0时,y(n)=h(n)=0

h(0) = ah(-1) + δ(0) = 0 + 1 = 1

h(1) = ah(0) + δ(1) = a + 0 = a

h(2) = ah(1) + δ(2) = a^2 + 0 = a^2

......

h(n) = ah(n-1) + δ(n) = a^n + 0 = a^n

因此系统的单位抽样响应为h(n) = a^nu(n),这个系统显然是因果系统,当|a| < 1时,它还是稳定系统。

注意:一个常系数线性差分方程,并不一定代表因果系统。如果边界条件假设不同,可以得到非因果系统

解2: 设x(n) = δ(n),且有当n>0时,y(n)=h(n)=0

往之前时刻进行推导,y(n-1)=a^(-1)y(n) - x(n)

h(0) = a^(-1)h(1) - δ(1) = 0

h(-1) = a^(-1)h(0) - δ(0) = -a^(-1)

h(-2) = a^(-1)h(-1) - δ(-1) = -a^(-2)

......

h(-n) = a^(-1)h(-n+1) - δ(-n+1) = -a^(-n)

因此系统的单位抽样响应为h(n) = -a^(-n)u(-n-1)。显然这个系统是非因果系统。

差分方程表示法优点:可以直接得到系统的结果。

例:差分方程

该差分方程所表示的结果如下:

消耗2个乘法器、1个加法器、1个延迟单元(存储单元Z^(-1),用于存储上一时刻的值y(n-1))

3 MATLAB中实现差分方程递推解的filter函数

函数形式为y = filter(b, a, x),其中b = b0, b1, ..., bM,a = a0, a1, ..., aN,且a0 != 0,x为输入序列,y为输出序列

例:y(n) - 0.5y(n - 1) = 0.5x(n)

Matlab 复制代码
%% 方法1:使用filter函数
% 定义系统系数
% 标准形式: a(1)*y(n) + a(2)*y(n-1) + ... = b(1)*x(n) + b(2)*x(n-1) + ...
% 原方程: y(n) - 0.5y(n-1) = 0.5x(n)
% 所以: a = [1, -0.5], b = [0.5]

a = [1, -0.5];  % 分母系数(y的系数)
b = [0.5];      % 分子系数(x的系数)

% 生成输入信号
N = 50;  % 信号长度
n = 0:N-1;

% 测试不同输入信号
% 1. 单位脉冲信号
x1 = [1, zeros(1, N-1)];

% 2. 单位阶跃信号
x2 = ones(1, N);

% 3. 正弦信号
x3 = sin(2*pi*0.1*n);

%% 计算响应
% filter(b, a, x, ic) - ic是初始条件
% 零初始条件
y1 = filter(b, a, x1);
y2 = filter(b, a, x2);
y3 = filter(b, a, x3);
相关推荐
小弥儿4 小时前
开源 VoiceStudio,声音克隆|配音|有声书一站式本地完成
学习·开源·github
点心的游戏开发世界7 小时前
Unity C# 脚本学习笔记:命名空间与 using
学习·unity·c#
香芋芋圆8 小时前
AI 冲击内卷之下,普通前端如何破局?WebGIS—— 低门槛突围赛道
前端·javascript·人工智能·学习·职场发展
INS_KF9 小时前
【编程笔记】成员函数中两个 const 的区别(const Data &getData() const;)
前端·javascript·笔记
点心的游戏开发世界9 小时前
Unity C# 脚本学习笔记:泛型
学习·unity·c#
tju新生代魔迷10 小时前
Verilog HDL 学习笔记(十三)| 第13章 编程语言接口(PLI)
笔记·学习
搞科研的小刘选手11 小时前
【西安石油大学、中海油田服务股份有限公司主办 | 北京举办】第八届智能控制、测量与信号处理国际学术会议 (ICMSP 2026)
信号处理·测量·智能控制·学术会议·会议推荐
点心的游戏开发世界11 小时前
UnityShaderGraph滚动UV笔记
笔记·uv
瑞码空间12 小时前
git知识点黄金笔记
笔记·git·elasticsearch
我爱cope13 小时前
【计算机网络 | 网络层11:ICMP 协议:Ping 和 Traceroute 的底层原理】
网络·学习·计算机网络