matlab验证采样定理
%matlab验证采样定理
%该程序用于画出原信号的图形以及其DFT图形
clear;
t = -0.1:0.001:0.1;%该参数用于画原信号图形
k = 0:200;%时域取样
n = -999:0;%频域取样
f = sin(2*pi*60*t)+cos(2*pi*25*t);%原函数, 由t的取值可得f有201个值
s = exp(-j*2*pi/length(k));
skn = s.^(k'*n);%代公式
F = f*skn;%对原函数进行傅里叶变换,
%此处f是1*201的矩阵,则skn必须满足201*X的矩阵
%得到的f是1*X的矩阵
subplot(2,1,1)
plot(t, f);%画出采原函数序列图
title('原信号');
xlabel('时间t(s)');
j = 1:length(F);
subplot(2,1,2)
plot(j,abs(F),'r')%画出序列的DFT图
title('原信号的DFT图');
3.2: Signal_2.m
%该函数用于画出离散的采样波形图和由采样信号重建的信号图
%绘制离散的采样波形图
function Signal_Rebuilt(frequency)
%需要输入采样频率frequency
T= 1/frequency;%抽样周期
gs = -0.1:T:0.1;
fg = sin(2*pi*60*gs)+cos(2*pi*25*gs);
subplot(2,1,1)
stem(gs, fg)
title('采样信号');
xlabel('时间t(s)');
%绘制由采样信号重建的信号图
y = -0.1:0.001:0.1;
ln = -0.1/T:0.1/T;
M=ones(length(ln),1)*y-ln'*T*ones(1,length(y));
fs = fg*sinc(frequency*M);
subplot(2,1,2)
plot(y,fs,'r')
title('重建信号');
xlabel('时间t(s)');
%绘制由采样信号重建的信号的DFT图
k = 0:200;
n = -999:0;
s = exp(-j*2*pi/length(k));
skn = s.^(k'*n);
F = fs*skn;
figure(3)
g = 1:length(F);
plot(g, abs(F))
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)