写一段matlab代码,输入一个N点的离散信号,输出其频谱,对该信号进行采样,输出其采样后信号的频谱
时间: 2023-08-01 13:07:48 浏览: 93
digita-signal.zip_matlab sampling _欠采样_过采样_采样_采样信号
5星 · 资源好评率100%
假设输入的离散信号为x,采样率为Fs,采样后的信号为x_s,采样频率为Fs_s,则代码如下:
```matlab
% 输入N点离散信号x
N = length(x);
% 计算频谱
X = fft(x);
f = (0:N-1)*Fs/N;
% 绘制频谱图
figure;
plot(f,abs(X));
xlabel('频率(Hz)');
ylabel('幅值');
% 进行采样
Fs_s = 2*Fs; % 采样频率为原来的两倍
Ts_s = 1/Fs_s; % 采样周期
n_s = 0:Ts_s:(N-1)*Ts_s; % 采样时刻
x_s = x(1:round(Fs/Fs_s):end); % 采样后的信号
% 计算采样后信号的频谱
X_s = fft(x_s);
f_s = (0:length(x_s)-1)*Fs_s/length(x_s);
% 绘制采样后信号的频谱图
figure;
plot(f_s,abs(X_s));
xlabel('频率(Hz)');
ylabel('幅值');
```
注意,采样后的信号需要使用插值等方法进行重构才能得到还原的原始信号。
阅读全文