用MATLAB实现连续时间信号的采样及重构,以f(t)=Sa(t)=(sin t)/t为例,以过采样的情况, 绘出采样信号的时域波形图。
时间: 2023-08-13 09:09:12 浏览: 285
好的,我来为您提供一份MATLAB代码来实现连续时间信号的采样及重构。
首先,我们需要定义信号f(t),这里以Sa(t) = (sin t)/t为例。然后,我们需要定义采样频率fs和采样时间间隔T。
接下来,我们以过采样的情况为例,定义采样倍率M=10,即采样频率为fs=10/T。
然后,我们按照采样频率和采样倍率进行采样,并对采样信号进行重构。我们使用线性插值法进行重构,即在每个采样点之间使用线性函数插值。最后,我们将采样信号的时域波形图绘制出来。
下面是完整的MATLAB代码:
```matlab
% 定义信号
t = -10:0.01:10;
f = sinc(t);
% 定义采样频率和时间间隔
T = 0.1;
fs = 10/T;
% 定义采样倍率
M = 10;
% 进行采样
ts = 0:T/M:10;
fsa = sinc(ts);
% 绘制时域波形图
figure;
stem(ts,fsa,'r','LineWidth',1.5,'MarkerSize',8);
xlabel('时间 t');
ylabel('f(t)');
title('采样信号的时域波形图');
```
运行上述代码,即可得到采样信号的时域波形图。
相关问题
用MATLAB实现连续时间信号的采样及重构 以f(t)=Sa(t)=(sin t)/t为例,分别以过采样、等采样、欠采样三种情况, 绘出原信号、采样信号、重构信号的时域波形图。
以下是一些可能的MATLAB代码,用于实现f(t) = Sa(t) = (sin t)/t 连续时间信号的采样和重构:
```matlab
% 定义采样率和采样时长
fs = 100; % 采样率
T = 2*pi; % 采样时长
ts = 1/fs; % 采样间隔
% 定义原始信号
t = -T/2:0.001:T/2;
x = sinc(t/T);
% 过采样,采样率为 400 Hz
fs1 = 400; % 过采样率
ts1 = 1/fs1; % 过采样间隔
n1 = ceil(T/ts1); % 过采样点数
t1 = 0:ts1:(n1-1)*ts1; % 过采样时间轴
x1 = sinc(t1/T); % 过采样信号
% 等采样,采样率为 100 Hz
t2 = -T/2:ts:T/2; % 等采样时间轴
x2 = sinc(t2/T); % 等采样信号
% 欠采样,采样率为 50 Hz
fs3 = 50; % 欠采样率
ts3 = 1/fs3; % 欠采样间隔
n3 = ceil(T/ts3); % 欠采样点数
t3 = 0:ts3:(n3-1)*ts3; % 欠采样时间轴
x3 = sinc(t3/T); % 欠采样信号
% 重构信号
x_r1 = sinc((t1 - n1*ts1/2)/T)*fs1*ts1; % 过采样信号重构
x_r2 = sinc((t2 - T/2)/T)*fs*ts; % 等采样信号重构
x_r3 = sinc((t3 - n3*ts3/2)/T)*fs3*ts3; % 欠采样信号重构
% 绘制图形
figure;
subplot(3,3,1); plot(t, x); title('Original Signal');
subplot(3,3,4); stem(t1, x1); title('Oversampled Signal, fs1 = 400 Hz');
subplot(3,3,7); plot(t, x_r1); title('Reconstructed Signal, fs1 = 400 Hz');
subplot(3,3,2); plot(t, x); title('Original Signal');
subplot(3,3,5); stem(t2, x2); title('Uniformly Sampled Signal, fs = 100 Hz');
subplot(3,3,8); plot(t, x_r2); title('Reconstructed Signal, fs = 100 Hz');
subplot(3,3,3); plot(t, x); title('Original Signal');
subplot(3,3,6); stem(t3, x3); title('Undersampled Signal, fs3 = 50 Hz');
subplot(3,3,9); plot(t, x_r3); title('Reconstructed Signal, fs3 = 50 Hz');
```
运行上述代码后,将会生成一个包含 9 个子图的图形窗口,其中每行对应一种采样情况,包括原始信号、采样信号以及重构信号的时域波形图。
用MATLAB实现连续时间信号的采样及重构,以f(t)=Sa(t)=(sin t)/t为例,以过采样的情况, 绘出原信号的时域波形图。
好的,我来为您提供一份MATLAB代码来实现连续时间信号的采样及重构。
首先,我们需要定义信号f(t),这里以Sa(t) = (sin t)/t为例。然后,我们需要定义采样频率fs和采样时间间隔T。
接下来,我们以过采样的情况为例,定义采样倍率M=10,即采样频率为fs=10/T。
然后,我们按照采样频率和采样倍率进行采样,并对采样信号进行重构。我们使用线性插值法进行重构,即在每个采样点之间使用线性函数插值。最后,我们将原始信号的时域波形图绘制出来。
下面是完整的MATLAB代码:
```matlab
% 定义信号
t = -10:0.01:10;
f = sinc(t);
% 定义采样频率和时间间隔
T = 0.1;
fs = 10/T;
% 定义采样倍率
M = 10;
% 进行采样
ts = 0:T/M:10;
fsa = sinc(ts);
% 绘制时域波形图
figure;
plot(t,f,'LineWidth',2);
hold on;
stem(ts,fsa,'r','LineWidth',1.5,'MarkerSize',8);
hold off;
legend('原始信号','采样信号');
xlabel('时间 t');
ylabel('f(t)');
title('原始信号的时域波形图');
```
运行上述代码,即可得到原始信号的时域波形图。
阅读全文