信号的采样与插值重建(包含matlab)

实验任务

双频信号的采样和插值重建:对双频信号进行采样(符合奈奎斯特低通采样定理),绘制波形和频谱;编制sinc函数插值函数,对采样进行恢复,绘制波形。

实验原理

image-20210518225034152

image-20210518225123223

image-20210518225141718

image-20210518225150904

image-20210518225203981

matlab代码

clear all;
close all;
%%parameter settings
%采样相关参数设置
N = 100;     %采样点数
Fs = 20;     %采样频率 20Hz
Ts = 1/Fs;   %采样间隔 
DS=1/(Ts*N);        %频率分辨率
T = N*Ts;    %采样时长
n = 0:N-1; 
ts = n*Ts;%采样时间序列
f_s = -Fs/2:DS:Fs/2-DS;%采样频率序列
%原始信号相关参数设置
f1 = 1;       %信号1频率1Hz
f2 = 2;        %信号2频率2Hz
Tn = 0.01;%原始信号时间间隔
Fn = 1/Tn;
Nn = N*Ts/Tn;
Dn = Fn/Nn;
f_n = -Fn/2:Dn:Fn/2-Dn;
tn = 0:Tn:T-Tn;%原始时间序列
x = sin(2*pi*f1*tn)+sin(2*pi*f2*tn);%原始信号
x1 = sin(2*pi*f1*ts)+sin(2*pi*f2*ts);  %采样信号
figure(1);
mag=abs(fft(x))/Fn;
subplot(211);
plot(tn,x);
title(['原始信号波形']);
subplot(212);
plot(f_n,fftshift(mag));
title(['原始信号频谱']);
figure(2);
mag1=abs(fft(x1))/Fs;
subplot(211);
stem(ts,x1);
title(['采样信号波形']);
subplot(212);
plot(f_s,fftshift(mag1));
title(['采样信号频谱']);
%%sinc函数内插恢复
step = Ts/Tn;
y=zeros(1,length(tn));%y表示内插恢复后的信号
t = -T+Tn:Tn:T-Tn;
mid = ceil(length(t)/2);
h = sinc(t/Ts);
figure(3);
plot(t,h);
axis([-T,T,0,2]);
title("sinc函数波形");
for index = 1:1:length(ts)
    t_shift = t(mid-(index-1)*step:end-(index-1)*step);%相当于t-kTs
    y = y + x1(index)*sinc(t_shift/Ts);
end
figure(4);
subplot(2,1,1);
plot(tn,y);
title("sinc函数内插恢复后的信号波形");
subplot(2,1,2);
magy = abs(fft(y))/Fn;
plot(f_n,fftshift(magy));
title("sinc函数内插恢复后的信号频谱");

运行结果

f1 = 1;    %信号1频率1Hz

f2 = 2;     %信号2频率2Hz

image-20210518225346781

image-20210518225404366

image-20210518225422225

image-20210518225438087

  • 11
    点赞
  • 144
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值