频域采样与恢复matlab实验,实验二 时域采样与频域采样及MATLAB程序
时间: 2023-08-28 10:05:12 浏览: 177
以下是频域采样与恢复的MATLAB程序示例:
1. 生成信号
```matlab
% 生成信号
fs = 1000; % 采样率
t = 0:1/fs:1-1/fs; % 时间向量
f1 = 10; % 信号频率
f2 = 100; % 信号频率
x = 2*sin(2*pi*f1*t) + 0.5*sin(2*pi*f2*t); % 信号
```
2. 频域采样
```matlab
% 频域采样
N = 1024; % 采样点数
X = fft(x,N); % 快速傅里叶变换
f = (0:N-1)*fs/N; % 频率向量
```
3. 频域恢复
```matlab
% 频域恢复
n = 1:1:N; % 采样点
Xn = X(n); % 采样
xn = ifft(Xn,N); % 快速傅里叶逆变换
```
4. 绘图
```matlab
% 绘图
subplot(3,1,1);
plot(t,x);
title('原始信号');
xlabel('时间/s');
ylabel('幅值');
subplot(3,1,2);
plot(f,abs(X));
title('频域采样');
xlabel('频率/Hz');
ylabel('幅值');
subplot(3,1,3);
plot(t,xn);
title('频域恢复');
xlabel('时间/s');
ylabel('幅值');
```
以上程序生成了一个包含两个正弦波的信号,并进行了频域采样和恢复。其中,频域采样采用了1024个采样点,频域恢复采用了其中的一部分采样点。绘制了三个子图,分别表示原始信号、频域采样和频域恢复。
阅读全文