信号采样与sinc插值恢复MATLAB

信号采样与sinc插值恢复[MATLAB]

根据采样定理,若想无失真地从采样信号重建信号,需要满足:

  • 信号为频带有限信号。

  • f s ≥ 2 f m f_s \ge 2f_m fs2fm

令插值因子为sinc函数
h ( m ) = s i n c ( m ) = s i n ( π m ) π m h(m) = sinc(m) = \frac{sin(\pi m)}{\pi m} h(m)=sinc(m)=πmsin(πm)
则插值信号为
g ( m ) = ∑ i g d ( i ) s i n c ( m − i ) g(m) = \sum_i g_d(i)sinc(m-i) g(m)=igd(i)sinc(mi)
下面通过MATLAB进行仿真,代码如下:

%参数设定
T = 2;
f1 = 5;
f2 = 10;
fs = 40;
%可得参数
N = T * fs;
t = linspace(-T/2, T/2, 100*N);
f_ori = 0.5 * cos(2 * pi * f1 * t) - sin(2 * pi * f2 * t) + 1;
figure(1);
plot(t, f_ori);xlim([-T/10, T/10]);title('原始信号');
%采样
t2 = linspace(-T/2, T/2, N);
f_sam = 0.5 * cos(2 * pi * f1 * t2) - sin(2 * pi * f2 * t2) + 1;
figure(2);
stem(t2, f_sam);xlim([-T/10, T/10]);title('采样信号');
%恢复
y = [];
for i = 1 : length(t)
    x = t(i);
    h = sinc((x - t2).*fs);
    g = dot(f_sam, h);
    y = [y,g];
end
figure(3);
plot(t, y);xlim([-T/10, T/10]);title('恢复信号');

结果如下:
信号采样与sinc插值恢复MATLAB_第1张图片
信号采样与sinc插值恢复MATLAB_第2张图片
信号采样与sinc插值恢复MATLAB_第3张图片

你可能感兴趣的:(matlab,信号处理,数字信号处理)