matlab验证采样定理

来源:互联网 发布:你的眼神网络歌手是谁 编辑:程序博客网 时间:2024/05/22 03:48

%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的取值可得f201个值

s = exp(-j*2*pi/length(k));

skn = s.^(k'*n);%代公式

F = f*skn;%对原函数进行傅里叶变换,

%此处f1*201的矩阵,则skn必须满足201*X的矩阵

%得到的f1*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)) 

0 0
原创粉丝点击