写出正弦信号的采样与恢复的MATLAB详细代码
时间: 2023-08-04 19:04:06 浏览: 84
正弦信号的matlab代码-VE215_FA2019:VE215_FA2019
下面是正弦信号的采样与恢复的MATLAB详细代码:
```matlab
% 采样频率
fs = 1000; % Hz
% 正弦信号频率
f = 50; % Hz
% 采样点数
N = 1000;
% 采样时间间隔
Ts = 1/fs;
% 采样时间序列
t = (0:N-1)*Ts;
% 生成正弦信号
x = sin(2*pi*f*t);
% 绘制原始信号
subplot(2,1,1);
plot(t, x);
xlabel('时间/s');
ylabel('幅值');
title('原始信号');
% 采样
fs_new = 200; % Hz
Ts_new = 1/fs_new;
t_new = (0:N-1)*Ts_new;
x_new = sin(2*pi*f*t_new);
% 绘制采样后的信号
subplot(2,1,2);
stem(t_new, x_new);
xlabel('时间/s');
ylabel('幅值');
title('采样后的信号');
% 恢复
y = zeros(1, N);
for n = 1:N
for k = 1:N
y(n) = y(n) + x_new(k) * sin(2*pi*f*(n-1)*Ts_new) * Ts_new;
end
end
% 绘制恢复信号
figure;
plot(t, y);
xlabel('时间/s');
ylabel('幅值');
title('恢复信号');
```
上述代码中,首先生成了一个频率为50Hz的正弦信号,并绘制了原始信号图像。然后以1000Hz的采样频率对信号进行采样,采样后的信号以200Hz的采样频率进行绘制。接着,利用采样后的信号进行信号恢复,使用的是简单的线性插值方法,最后绘制出恢复后的信号图像。
阅读全文