《MATLAB信号处理超级学习手册》——2.6 离散时间系统

简介:

本节书摘来自异步社区《MATLAB信号处理超级学习手册》一书中的第2章,第2.6节,作者:MATLAB技术联盟 , 史洁玉著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.6 离散时间系统

MATLAB信号处理超级学习手册
离散时间系统还可分成线性和非线性两种。同时具有叠加性和齐次性(均匀性)的系统,通常称为线性离散系统。当若干个输入信号同时作用于系统时,总的输出信号等于各个输入信号单独作用时所产生的输出信号之和,这个性质称为叠加性。齐次性是指当输入信号乘以某常数时,输出信号也相应地乘以同一常数。

不能同时满足叠加性和齐次性的系统称为非线性离散系统。如果离散系统中乘法器的系数不随时间变化,这种系统便称为时不变离散系统;否则就称为时变离散系统。

2.6.1 离散时间系统的含义
线性系统(Linear System):满足叠加性和齐次性的系统。

线性系统用数学语言描述如下:

若序列y 1(n)和y 2(n)分别是输入序列x 1(n)和x 2(n)的输出响应,即:
screenshot

式中a是任意常数。满足上面第一个式子的称系统具有叠加性(Superposition Property);满足后面式子的称系统具有比例性或齐次性(Homogeneity)。将两式结合起来表示为:

screenshot

式中a和b均为任意常数。

如果系统的输出响应随输入的移位而移位,即若

screenshot

那么称这样的系统为时不变系统(Time-Invariant System)。式中k为任意整数。

系统的因果性(Causality)是指如果系统n时刻的输出只取决与n时刻以及n时刻以前的输入序列,而和n时刻以后的输入无关。这样的系统称为因果系统,因果系统是物理可实现系统。如果系统n时刻的输出还与n时刻以后的输入序列有关,则这样的系统称为非因果系统。

系统的稳定性(Stability)是指系统对于每一个有界的输入都产生一个有界的输出。这样的系统称为稳定系统。

2.6.2 离散时间系统的描述方法
描述一个线性时不变离散时间系统,有以下两种常用方法。

(1)用单位冲激响应来表征系统;

(2)用差分方程(Difference Equation)来描述系统输入和输出之间的关系。

设系统的初始状态为零,若输入信号x(n)=δ(n),这种条件下系统的输出称为系统的单位脉冲响应,用h(n)表示。

系统的单位脉冲响应的实质:是系统对于δ(n)的零状态响应,用公式表示为:
screenshot

式中“*”代表卷积运算,式(2-35)称为卷积和(Convolution Sum)公式;此类卷积运算中的主要运算是反折,移位,相乘和相加,故此类卷积又称为线性卷积。

上式表明线性时不变系统的输出等于输入序列与该系统的单位冲激响应的卷积,因此只要知道线性时不变系统的单位冲激响应,对于任意输入都可以求出该系统的输出。由此我们可以认为任何线性时不变系统都可由单位冲激响应h(n)来表征。

如果序列x(n)和h(n)的长度分别是N和M,卷积结果的长度为N+M-1。

用线性常系数差分方程表示线性时不变系统,一个N阶线性常系数差分方程用下式表示:
screenshot

式中a i、b j均为常数,x(n-j)、y(n-i)都是一次幂,也不存在彼此相乘的项,所以上式称为线性常系数差分方程。

差分方程的阶数是用y(n-i)项中i的最大值与最小值之差确定的。

若x(n)和y(n)分别表示系统的输入和输出序列,则方程的两边分别为输出序列y(n)和输入序列x(n)的移位的线性组合,方程描述的就是系统输入和输出之间的关系,系数a i、b j表示系统的特性或结构。

将方程改写成为下式:
screenshot

由式可以看出,如果计算n时刻的输出,需要知道系统n时刻以及n时刻以前的输入序列值,还要知道n时刻以前的输出信号值。而n时刻以前的输出信号值就是求解差分方程必须的初始条件,初始条件不同,差分方程的解也不同。

2.6.3 采样定理
所谓模拟信号的数字处理方法就是将待处理模拟信号经过采样、量化和编码形成数字信号,并利用数字信号处理技术对采样得到的数字信号进行处理。

采样定理:一个频带限制在(0,fC)赫兹内的模拟信号m(t),如果以f s≥2f C的采样频率对模拟信号m(t)进行等间隔采样,则m(t)将被采样得到的采样值所确定,也即可以利用采样值无混叠失真地恢复原始模拟信号m(t)。

其中:“利用采样值无失真恢复原始模拟信号”,这里的无失真恢复是指被恢复信号与原始模拟信号在频谱上无混叠失真;并不是说被恢复的信号就与模拟信号在时域完全一样。由于采样和恢复器件的精度限制以及量化误差等的存在,被恢复信号与原始信号之间实际上是存在一定误差或失真的。

关于采样定理的几点总结如下:

(1)一个带限模拟信号x a (t),其频谱的最高频率为f c,以间隔T s对它进行等间隔采样得采样信号hat x_a (t) ,只有在采样频率f_s = (1/T_s ) geqslant 2f_c 时,hat x_a (t)

才可不失真地恢复x_a (t) 。

(2)上述采样信号hat x_a (t) 的频谱hat X_a (jOmega ) 是原模拟信号x_a (t) 的频谱X_a (jOmega ) 以Omega _s ( = 2pi f_s ) 为周期进行周期延拓而成的。

(3)一般称f s/2为折叠频率,只要信号的最高频率不超过该频率,就不会出现频谱混叠现象,否则超过f s/2的频谱会“折叠”回来形成混叠现象。

通常把最低允许的采样频率f_s ( = 1/T_s ) = 2f_c 称为奈奎斯特(Nyquist)频率,最大允许的采样间隔T s=1/2f c称为奈奎斯特间隔。

在介绍采样定理时,已经讲到对模拟信号x_a (t) 采样时只要采样频率满足f_s ( = 1/T_s ) geqslant 2f_c ,采样信号的频谱 hat X_a (jOmega ) 就不会发生频谱混叠现象。在这种情况下,可以采用理想低通滤波器G(jOmega ) 对采样信号hat x_a (t) 进行滤波,可以得到不失真的原模拟信号x_a (t) 。

下面用数学表达式表示恢复过程。理想低通可表示为:
screenshot

理想低通的时域表示为:
screenshot
screenshot

对信号进行采样,得到采样序列,对不同采样频率下的采样序列进行频谱分析,由采样序列恢复出连续时间信号,画出其时域波形,对比与原连续时间信号的时域波形。

实现程序如下:

clear
f1='0.5*sin(2*pi*65*t)+0.8*cos(2*pi*40*t)+0.7*cos(2*pi*30*t)'; %输入一个信号
fs0=cy(f1,60);
%欠采样
fr0=hf(fs0,60);
fs1=cy (f1,130);
%临界采样
fr1=hf (fs1,130);
fs2=cy(f1,170);
%过采样
fr2=hf (fs2,170);

程序过程中用到的两个子程序,采样程序如下:

%实现采样频谱分析绘图函数
function fz=cy(fy,fs) 
%第一个输入变量是原信号函数,信号函数fy以字符串的格式输入
%第二个输入变量是采样频率
fs0=10000;
tp=0.1;
t=[-tp:1/fs0:tp];
k1=0:999;  k2=-999:-1;
m1=length(k1);  m2=length(k2);
f=[fs0*k2/m2,fs0*k1/m1];    %设置原信号的频率数组
w=[-2*pi*k2/m2,2*pi*k1/m1];
fx1=eval(fy);
FX1=fx1*exp(-j*[1:length(fx1)]'*w);  %求原信号的离散时间傅里叶变换
figure       % 画原信号波形
subplot(2,1,1),plot(t,fx1,'r')
title('原信号');
xlabel('时间t(s)'); ylabel('y(t)')
axis([min(t),max(t),min(fx1),max(fx1)])
grid on
% 画原信号频谱
subplot(2,1,2)
plot(f,abs(FX1),'r')
title('原信号频谱') , 
xlabel('频率f (Hz)'); ylabel('FX1')
axis([-100,100,0,max(abs(FX1))+5])
grid on
% 对信号进行采样
Ts=1/fs;       %采样周期
t1=-tp:Ts:tp;      %采样时间序列
f1=[fs*k2/m2,fs*k1/m1];    %设置采样信号的频率数组
t=t1;        %变量替换
fz=eval(fy);      %获取采样序列
FZ=fz*exp(-j*[1:length(fz)]'*w);   %采样信号的离散时间傅里叶变换
figure
% 画采样序列波形
subplot(2,1,1)
stem(t,fz,'.'),
title('取样信号') , 
xlabel('时间t (s)'); ylabel('y(t)')
line([min(t),max(t)],[0,0])
grid on
% 画采样信号频谱
subplot(2,1,2)
plot(f1,abs(FZ),'m')
title('取样信号频谱');
xlabel('频率f (Hz)'); ylabel('FZ')
grid on

恢复子程序如下:

%信号的恢复及频谱函数
function fh=hf(fz,fs) 
%第一个输入变量是采样序列
%第二个输入变量是得到采样序列所用的采样频率
T=1/fs; dt=T/10; tp=0.1;
t=-tp:dt:tp;n=-tp/T:tp/T;
TMN=ones(length(n),1)*t-n'*T*ones(1,length(t));
fh=fz*sinc(fs*TMN);
%由采样信号恢复原信号
k1=0:999; k2=-999:-1;
m1=length(k1); m2=length(k2);
w=[-2*pi*k2/m2,2*pi*k1/m1];
FH=fh*exp(-j*[1:length(fh)]'*w);   % 恢复后的信号的离散时间傅里叶变换
figure
% 画恢复后的信号的波形
subplot(2,1,1)
plot(t,fh,'g');
st1=sprintf('由取样频率fs=%d',fs);
st2='恢复后的信号';
st=[st1,st2];
title(st);
xlabel('时间t (s)'); ylabel('y(t)')
axis([min(t),max(t),min(fh),max(fh)])
line([min(t),max(t)],[0,0])
grid on
%画重构信号的频谱
f=[10*fs*k2/m2,10*fs*k1/m1];   %设置频率数组
subplot(2,1,2),plot(f,abs(FH),'g')
title('恢复后信号的频谱');
xlabel('频率f (Hz)'); ylabel('FH')
axis([-100,100,0,max(abs(FH))+2]);
grid on

运行程序后,原信号的结果如图2-31所示。

screenshot

频率f s<2f max时,为原信号的欠采样信号和恢复,采样频率不满足时域采样定理,那么频移后的各相临频谱会发生相互重叠,这样就无法将它们分开,因而也不能再恢复原信号。频谱重叠的现象被称为混叠现象。欠采样信号的离散波形及频谱,恢复后信号如图2-32、图2-33所示。

screenshot

频率f s=2f max时,为原信号的临界采样信号和恢复,只恢复低频信号,高频信号未能恢复,如图2-34、图2-35所示。

screenshot

频率f s>2f max时,为原信号的过采样信号和恢复,如图2-36和图2-37所示。可以看出,采样信号的频谱是原信号频谱进行周期延拓形成的,并且原信号误差很小,说明恢复信号的精度已经很高。

screenshot

相关文章
|
23天前
OFDM深入学习及MATLAB仿真(二)
OFDM深入学习及MATLAB仿真
22 1
|
1月前
|
机器学习/深度学习 数据采集 人工智能
m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
41 0
|
1月前
|
索引
matlab日常学习-------矩阵
matlab日常学习-------矩阵
23 0
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的火焰烟雾检测系统matlab仿真
基于yolov2深度学习网络的火焰烟雾检测系统matlab仿真
|
1月前
|
机器学习/深度学习 算法 计算机视觉
m基于深度学习网络的性别识别系统matlab仿真,带GUI界面
m基于深度学习网络的性别识别系统matlab仿真,带GUI界面
29 2
|
1月前
|
机器学习/深度学习 并行计算 算法
m基于深度学习网络的瓜果种类识别系统matlab仿真,带GUI界面
m基于深度学习网络的瓜果种类识别系统matlab仿真,带GUI界面
32 0
|
1月前
|
机器学习/深度学习 算法
m基于深度学习的64QAM调制解调系统相位检测和补偿算法matlab仿真
MATLAB 2022a仿真实现了基于深度学习的64QAM相位检测和补偿算法,有效应对通信中相位失真问题。通过DNN进行相位检测和补偿,降低解调错误。核心程序生成随机信号,模拟AWGN信道,比较了有无相位补偿的误码率,结果显示补偿能显著提升性能。
27 8
|
1月前
|
机器学习/深度学习 算法
m基于深度学习的32QAM调制解调系统相位检测和补偿算法matlab仿真
m基于深度学习的32QAM调制解调系统相位检测和补偿算法matlab仿真
26 1
|
1月前
|
机器学习/深度学习 数据采集 算法
m基于深度学习网络的花朵种类识别系统matlab仿真,包含GUI界面
m基于深度学习网络的花朵种类识别系统matlab仿真,包含GUI界面
30 6
|
1月前
|
机器学习/深度学习 算法 数据可视化
基于深度学习的红肉新鲜过期判决系统matlab仿真
基于深度学习的红肉新鲜过期判决系统matlab仿真

热门文章

最新文章