【 MATLAB 】MATLAB 实现模拟信号采样后的重建(三)应用三次样条函数spline实现内插
【摘要】 前三篇博文讲了三种方法进行内插重建信号:
sinc函数内插重建
零阶保持(ZOH)内插重建
一阶保持内插(FOH)重建
这篇文章使用三次样条函数spline来实现内插重建,并分析重建误差。
采用的案例依然是上篇博文中的案例:
模拟信号:
对该信号使用两种不同的采样频率采样。
a. 在 fs = 5000 对信号进行采样
b. 在 fs = 1000 对...
前三篇博文讲了三种方法进行内插重建信号:
这篇文章使用三次样条函数spline来实现内插重建,并分析重建误差。
采用的案例依然是上篇博文中的案例:
模拟信号:
对该信号使用两种不同的采样频率采样。
a. 在 fs = 5000 对信号进行采样
b. 在 fs = 1000 对信号采样
前面太多的文章作为铺垫,这里直接给出MATLAB脚本:
-
clc
-
clear
-
close all
-
-
% Analog signal
-
Dt = 0.00005;
-
t = - 0.005:Dt:0.005;
-
xa = exp(-1000 * abs(t));
-
-
subplot(3,1,1);
-
plot(1000*t,xa);
-
title('Analog signal');
-
xlabel('t in msec');
-
ylabel('xa');
-
-
%Fs = 5000,Ts = 0.0002
-
% Discrete-time signal
-
Ts = 0.0002;
-
Fs = 1/Ts;
-
n = -25:25;
-
nTs = n*Ts;
-
x = exp(-1000*abs(nTs));
-
-
subplot(3,1,2)
-
plot(1000*t,xa);
-
hold on
-
stem(n*Ts*1000,x);
-
title('Discrete-time signal');
-
hold off
-
-
% Analog signal reconstruction
-
subplot(3,1,3);
-
xa_r = spline(nTs,x,t);
-
plot(t*1000,xa_r);
-
title('Analog signal reconstruction');
-
xlabel('t in msec');
-
ylabel('xa after reconstruction');
-
hold on
-
stem(n*Ts*1000,x)
-
hold off
-
-
-
error1 = max(abs(xa_r - xa))
-
-
% Fs = 1000, Ts = 1ms
-
% Discrete-time signal
-
Ts = 0.001;
-
Fs = 1/Ts;
-
n = -5:5;
-
nTs = n*Ts;
-
x = exp(-1000*abs(nTs));
-
-
figure
-
-
subplot(3,1,1);
-
plot(1000*t,xa);
-
title('Analog signal');
-
xlabel('t in msec');
-
ylabel('xa');
-
-
subplot(3,1,2)
-
plot(1000*t,xa);
-
hold on
-
stem(n*Ts*1000,x);
-
title('Discrete-time signal');
-
hold off
-
-
% Analog signal reconstruction
-
subplot(3,1,3);
-
xa_r = spline(nTs,x,t);
-
plot(1000*t,xa_r);
-
title('Analog signal reconstruction');
-
xlabel('t in msec');
-
ylabel('xa after reconstruction');
-
hold on
-
stem(n*Ts*1000,x)
-
hold off
-
-
error2 = max(abs(xa_r - xa))
-
-
当采样率Fs为5000 样本/s时,重建结果:
误差:
error1 =
0.0317
重建和真正的模拟信号之间的误差是0.0317,这是由于非理想内插和非带限造成的。将这个误差与sinc函数内插比较(理想),这个误差还比较小。从重构图上看,重建还是不错的。
当采样率Fs为1000样本/s时,重构结果:
error2 =
0.1679
这个情况下误差较大,这是由于采样间隔过大,也就是采样率过低造成的频谱混叠造成的,不能恢复原始信号了。
文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。
原文链接:reborn.blog.csdn.net/article/details/83418799
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)