离散时间系统:
y(n)=∑∞m=1x(m)h(n−m)=x(n)∗h(n)∀m∈ℕ 式中“ * ”代表卷积运算,
h(n) 为该系统的单位冲激响应。此类卷积运算的步骤为:1.反折
2.移位
3.相乘
4.相加卷积长度
若x(n) 和h(n) 的长度分别为N和M,则卷积结果的长度为N+M-1。N阶线性常系数差分方程:
y(n)=∑Mj=0bjx(n−j)−∑Ni=1aiy(n−i) 由上式可以看出,求n时刻的输出
y(n) ,需要知道系统n时刻及n时刻以前的输入序列值,及n时刻以前的输出序列值。n时刻以前的输出信号值就是求解差分方程的初始条件,级零输入响应。迭代版:
y(n)=y(n−1)+x(n) 采样定理
所谓模拟信号的数字处理方法就是将待处理模拟信号经过采样、量化和编码形成数字信号,再利用数字信号处理技术对采样得到的数字信号进行处理。
一个频带限制在
(0,fc) 赫兹内的模拟信号m(t) ,若以采样频率fs≥2fc 对模拟信号m(t) 进行采样,得到最终的采样值,则可无混叠失真地恢复原始模拟信号m(t) 。
其中,无混叠失真地恢复原始模拟信号
奈奎斯特频率:通常把最低允许的采样频率
fs=2fc 称为奈奎斯特频率。
采样定理的几点小结:
1. 一个带限模拟信号
2.
3. 一般称
分析连续时间信号的时域波形及其幅频特性曲线,原信号:
对原信号进行采样,得到采样序列,对不同采样频率下的采样序列进行频谱分析,由采样序列恢复出连续时间信号,画出其时域波形,对比与原连续时间信号的时域波形。
MATLAB代码如下:
function fz = cy(fy,fs)
%实现采样频谱分析绘图函数
%fy:原信号函数,fy以字符串的格式输入
%fs:采样频率
fs0 = 1e4;
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(211),plot(t,fx1,'r')
title('原信号');
xlabel('t(s)'),ylabel('y(t)');
axis([min(t),max(t),min(fx1),max(fx1)])
grid on
%画原信号频谱
subplot(212),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(211),stem(t,fz,'.');
title('取样信号')
xlabel('t(s)'),ylabel('y(t)')
line([min(t),max(t)],[0,0]);
grid on
%画采样信号频谱
subplot(212),plot(f1,abs(FZ),'m');
title('取样信号频谱')
xlabel('f(Hz)'),ylabel('FZ')
grid on
end
function fh = hf(fz,fs)
%信号的恢复及频谱函数
%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));%t-nT
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(211),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(212),plot(f,abs(FH),'g')
title('恢复后信号的频谱');
xlabel('f(Hz)'),ylabel('FH');
axis([-100 100 0 max(abs(FH))+2]);
grid on
end
程序结果如下:
原信号及原信号频谱图