【数字信号处理】线性常系数差分方程 ( 使用 matlab 求解 “ 线性常系数差分方程 “ 示例 | A 向量分析 | B 向量分析 | 输入序列分析 | matlab 代码 )

2023-03-30 11:51:22 浏览数 (2)

文章目录

  • 一、使用 matlab 求解 “ 线性常系数差分方程 “ 示例
    • 1、B 向量元素 : x(n) 参数
    • 2、A 向量元素 : y(n) 参数
    • 3、输入序列
    • 4、matlab 代码

一、使用 matlab 求解 “ 线性常系数差分方程 “ 示例


描述 某个 " 线性时不变系统 " 的 " 线性常系数差分方程 " 如下 :

y(n) = 1.5x(n) 0.7y(n-1)

输入序列 :

x(n) = delta (n)

边界条件 / 初始条件 :

y(-1) = 1

求该 LTI 系统的 输出序列 ;

线性常系数差分方程 公式 :

y(n) = sum_{i = 0}^M b_i x(n - i) - sum_{i = 1}^N a_i y(n - i) n geq M

1、B 向量元素 : x(n) 参数

讨论

B

向量 ,

B

向量是

x(n)

的参数 , 有几个

x(n)

项 ,

B

向量 就有几个元素 ;

上式中

M = 0

,

x(n)

的项只有

1

项 ,

sum_{i = 0}^M b_i x(n - i)

只有一项 , 加和式只有一项 , 因此对应的

B

向量 , 只有

1

个元素 ;

代码语言:javascript复制
B = [1.5];

2、A 向量元素 : y(n) 参数

下面讨论

A

向量 ,

A

向量是

y(n)

的参数 , 有几个

y(n)

项 ,

A

向量 就有几个元素 ;

线性常系数差分方程 :

y(n) = 1.5x(n) 0.7y(n-1)

0.7y(n-1)

移到左边 , 得到 :

y(n) - 0.7y(n-1) = 1.5x(n)

这里有

2

y(n)

项 ,

A

向量的元素有两个 ,

1 , -0.7

;

代码语言:javascript复制
A = [1, -0.7];

3、输入序列

输入序列 :

x(n) = delta (n)

输入序列 的元素个数 , 等于 输出序列 的元素个数 ;

n = 0

时 ,

x(n) = 1

, 然后再次生成

30

0

元素 , 放到 输入序列 中 ;

输入序列为

{ 1, underbrace {0 , 0 , cdots , 0}_{30 个 0} }

, 共

31

个元素 ;

对应的 matlab 代码为

代码语言:javascript复制
xn=[1,zeros(1,30)]; 

4、matlab 代码

matlab 代码 :

代码语言:javascript复制
% 边界条件 y(-1) = 1 , 这里设置 ys = 1
ys = 1;

% 输入序列 为 单位脉冲序列
xn=[1,zeros(1,30)]; 

% 线性常系数差分方程 中的 x(n) 项系数
B=1.5;

% 线性常系数差分方程 中的 y(n) 项系数
A=[1, -0.7];

% 等效 初始条件 的 输入序列 xi
xi=filtic(B,A,ys);

% 输出序列
yn=filter(B,A,xn,xi); 

%建立幕布
figure;
%绘制 "输出序列" 图像 , 点用上三角表示
plot(yn, '^');

% 打开网格
grid on;

绘图效果 :

0 人点赞