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





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



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

y ( n ) = ∑ i = 0 M b i x ( n − i ) − ∑ i = 1 N a i y ( n − i ) y(n) = \sum_{i = 0}^M b_i x(n - i) - \sum_{i = 1}^N a_i y(n - i) y(n)=i=0Mbix(ni)i=1Naiy(ni)

其中 ,
M = 2 M = 2 M=2 , N = 2 N = 2 N=2 ,
b 0 = 0.0223 b_0 = 0.0223 b0=0.0223 , b 1 = 0.01 b_1 = 0.01 b1=0.01 , b 2 = 0.0223 b_2 = 0.0223 b2=0.0223 ,
a 1 = − 1.7007 a_1 = -1.7007 a1=1.7007 , a 2 = 0.7613 a_2 = 0.7613 a2=0.7613 ,


输入序列 : f 1 = 0.4 k H z f_1 = 0.4kHz f1=0.4kHz , f 2 = 2.45 k H z f_2 = 2.45kHz f2=2.45kHz , F s = 10 k H z F_s = 10kHz Fs=10kHz

x ( n ) = sin ⁡ ( 2 π f 1 n F s ) + sin ⁡ ( 2 π f 2 n F s )     0 ≤ n ≤ 127 x(n) = \sin(\cfrac{2 \pi f_1 n} {F_s}) + \sin(\cfrac{2 \pi f_2 n} {F_s}) \ \ \ 0 \leq n \leq 127 x(n)=sin(Fs2πf1n)+sin(Fs2πf2n)   0n127


边界条件 / 初始条件 :

y ( − 1 ) = 0 y(-1) = 0 y(1)=0

求该 LTI 系统的 输出序列 ;



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

y ( n ) = ∑ i = 0 M b i x ( n − i ) − ∑ i = 1 N a i y ( n − i )         n ≥ M y(n) = \sum_{i = 0}^M b_i x(n - i) - \sum_{i = 1}^N a_i y(n - i) \ \ \ \ \ \ \ n \geq M y(n)=i=0Mbix(ni)i=1Naiy(ni)       nM


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


讨论 B B B 向量 , B B B 向量是 x ( n ) x(n) x(n) 的参数 , 有几个 x ( n ) x(n) x(n) 项 , B B B 向量 就有几个元素 ;

b 0 = 0.0223 b_0 = 0.0223 b0=0.0223 , b 1 = 0.01 b_1 = 0.01 b1=0.01 , b 2 = 0.0223 b_2 = 0.0223 b2=0.0223 ;

% 线性常系数差分方程 中的 x(n) 项系数
B=[0.0223 ,0.001, 0.0223];

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


下面讨论 A A A 向量 , A A A 向量是 y ( n ) y(n) y(n) 的参数 , 有几个 y ( n ) y(n) y(n) 项 , A A A 向量 就有几个元素 ;

线性常系数差分方程 :

y ( n ) = ∑ i = 0 M b i x ( n − i ) − ∑ i = 1 N a i y ( n − i ) y(n) = \sum_{i = 0}^M b_i x(n - i) - \sum_{i = 1}^N a_i y(n - i) y(n)=i=0Mbix(ni)i=1Naiy(ni)

a 1 = − 1.7007 a_1 = -1.7007 a1=1.7007 , a 2 = 0.7613 a_2 = 0.7613 a2=0.7613 , 再加上左侧的 y ( n ) y(n) y(n) 系数 , 将所有的 y ( n ) y(n) y(n) 项 , 移到等式左侧 , 系数如下 :

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

3、输入序列


输入序列 : f 1 = 0.4 k H z f_1 = 0.4kHz f1=0.4kHz , f 2 = 2.45 k H z f_2 = 2.45kHz f2=2.45kHz , F s = 10 k H z F_s = 10kHz Fs=10kHz

x ( n ) = sin ⁡ ( 2 π f 1 n F s ) + sin ⁡ ( 2 π f 2 n F s )     0 ≤ n ≤ 127 x(n) = \sin(\cfrac{2 \pi f_1 n} {F_s}) + \sin(\cfrac{2 \pi f_2 n} {F_s}) \ \ \ 0 \leq n \leq 127 x(n)=sin(Fs2πf1n)+sin(Fs2πf2n)   0n127

对应的 matlab 代码为 :

x=sin(2 * pi * 0.4 * (0:127)/10) + sin(2 * pi * 2.45 * (0:127) / 10);

4、matlab 代码


matlab 代码 :

% 输入序列
x=sin(2 * pi * 0.4 * (0:127)/10) + sin(2 * pi * 2.45 * (0:127) / 10);

% 线性常系数差分方程 中的 x(n) 项系数
B=[0.0223 ,0.001, 0.0223];

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

% 输出序列
y=filter(B,A,x);

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

% 打开网格
grid on;

绘图效果 :

在这里插入图片描述

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值