卷积和及采样定理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SarahZhang0104/article/details/51315317
  • 离散时间系统:

     y(n)=m=1x(m)h(nm)=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(nj)Ni=1aiy(ni)

    由上式可以看出,求n时刻的输出 y(n) ,需要知道系统n时刻及n时刻以前的输入序列值,及n时刻以前的输出序列值。n时刻以前的输出信号值就是求解差分方程的初始条件,级零输入响应。

    迭代版:

    y(n)=y(n1)+x(n)

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

一个频带限制在 (0,fc) 赫兹内的模拟信号 m(t) ,若以采样频率 fs2fc 对模拟信号 m(t) 进行采样,得到最终的采样值,则可无混叠失真地恢复原始模拟信号 m(t)

其中,无混叠失真地恢复原始模拟信号 m(t) 是指被恢复信号与原始模拟信号在频谱上无混叠失真,并不是说被恢复信号与原始信号在时域上完全一样。由于采样和恢复器件的精度限制以及量化误差等存在,两者实际是存在一定误差或失真的。

奈奎斯特频率:通常把最低允许的采样频率 fs=2fc 称为奈奎斯特频率。

采样定理的几点小结:
1. 一个带限模拟信号 xa(t) ,其频谱的最高频率为 fc ,以间隔 Ts 得到采样信号 x̂ a(t) ,当且仅当 fs2fc 时, x̂ a(t) 才可不失真的恢复 xa(t)
2. x̂ a(t) 的频谱 X̂ a(jΩ) 是模拟信号 xa(t) 的频谱 Xa(jΩ) Ω=2πfs 为周期进行周期延拓得到的。
3. 一般称 fs/2 为折叠频率,只要信号的最高频率不超过这个频率,就不会出现频谱混叠现象,否则,超过 fs/2 的频谱会“折叠”回来形成混叠现象。

分析连续时间信号的时域波形及其幅频特性曲线,原信号:
f(x)=0.5sin(2π65t)+0.8cos(2π40t)+0.7cos(2π30t)
对原信号进行采样,得到采样序列,对不同采样频率下的采样序列进行频谱分析,由采样序列恢复出连续时间信号,画出其时域波形,对比与原连续时间信号的时域波形。

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

程序结果如下:
原信号及原信号频谱图

fs<2fmax 时,为原信号的欠采样信号和恢复,即不满足采样定理,出现频谱混叠现象。

这里写图片描述

猜你喜欢

转载自blog.csdn.net/SarahZhang0104/article/details/51315317