matlab利用理想采样对信号sin(t)进行取样和恢复,同时画出频谱图,所有图在一张figure中显示
时间: 2023-07-16 22:16:32 浏览: 88
基于matlab的信号采样与恢复
5星 · 资源好评率100%
好的,下面是实现代码:
```matlab
% 设置采样率和采样时间
fs = 200; % 采样率
Ts = 1/fs; % 采样时间
% 设置信号参数
f = 10; % 信号频率
t = 0:1e-3:1; % 时间向量
x = sin(2*pi*f*t); % 信号
% 理想采样
n = 0:1/fs:1; % 采样时间向量
xn = sin(2*pi*f*n); % 采样信号
% 理想重构
t_interp = 0:1e-5:1; % 重构时间向量
x_interp = interp1(n,xn,t_interp,'spline'); % 重构信号
% 计算频谱
X = fft(x_interp)/length(x_interp); % 信号频谱
f_axis = linspace(-fs/2,fs/2,length(X)); % 频率轴
% 绘图
figure;
subplot(3,1,1);
plot(t,x,'LineWidth',2);
xlabel('时间(s)');
ylabel('幅度');
title('原始信号');
grid on;
subplot(3,1,2);
stem(n,xn,'LineWidth',2);
xlabel('时间(s)');
ylabel('幅度');
title('采样信号');
grid on;
subplot(3,1,3);
plot(f_axis,fftshift(abs(X)),'LineWidth',2);
xlabel('频率(Hz)');
ylabel('幅度');
title('恢复信号频谱');
grid on;
```
这段代码会生成一个包含三个子图的 figure,第一个子图为原始信号,第二个子图为采样信号,第三个子图为恢复信号频谱。
阅读全文