matlab用动画描述采样定理
时间: 2023-10-21 10:11:28 浏览: 45
以下是MATLAB代码,用动画形式描述采样定理:
```matlab
% 采样定理动画演示
% 设置采样频率和信号频率
Fs = 40; % 采样频率
f = 10; % 信号频率
% 生成信号
t = 0:0.01:1; % 时间向量
x = sin(2*pi*f*t); % 正弦信号
% 绘制采样前的信号
subplot(2,1,1);
plot(t,x);
title('信号');
xlabel('时间(秒)');
ylabel('幅度');
% 采样
Ts = 1/Fs; % 采样周期
n = 0:Ts:1; % 采样时间向量
y = sin(2*pi*f*n); % 采样信号
% 绘制采样后的信号
subplot(2,1,2);
stem(n,y);
title(['采样频率为' num2str(Fs) 'Hz']);
xlabel('时间(秒)');
ylabel('幅度');
% 播放动画
fig = gcf;
for i = 1:length(n)
subplot(2,1,1);
hold on;
stem(n(i),y(i),'r');
hold off;
title('信号');
xlabel('时间(秒)');
ylabel('幅度');
subplot(2,1,2);
xlim([n(i)-0.1 n(i)+0.1]);
title(['采样频率为' num2str(Fs) 'Hz']);
xlabel('时间(秒)');
ylabel('幅度');
drawnow;
pause(0.1);
% 保存动画为GIF
frame = getframe(fig);
im = frame2im(frame);
[imind,cm] = rgb2ind(im,256);
if i == 1
imwrite(imind,cm,'sampling.gif','gif', 'Loopcount',inf);
else
imwrite(imind,cm,'sampling.gif','gif','WriteMode','append');
end
end
```
运行上述代码,将生成一个动画,演示采样前和采样后的信号图形,以及在采样后的信号上的采样点。动画将保存为一个GIF文件。