DSP实验
- 线性调频信号(LFM)仿真
生成持续时间1s,调频率为200Hz/s,信号载频为0Hz的LFM。
生成持续时间1s,调频率为200Hz/s,信号载频为50Hz的LFM。
%-------1.基本参数和轴的设定---------%
t_start = -1;
t_end = 2;
fs = 4e2;
f0 = 50; %信号载频
N = fs * ( t_end - t_start );
t = linspace( t_start, t_end, N );
f = linspace( -fs/2, fs/2, N);
k = 100; %调频率
%------------2.信号的生成------------%
sig_phi = 2 * pi * f0 * t + pi * k * t.^2;
sig_phi = [zeros(1,N/3), sig_phi(N/3+1:2*N/3), zeros(1,N/3)];
sig_t = cos(sig_phi);
sig_t = [zeros(1,N/3), sig_t(N/3+1:2*N/3), zeros(1,N/3)];
sig_f = f0 + k*t;
sig_f = [zeros(1,N/3), sig_f(N/3+1:2*N/3), zeros(1,N/3)];
sig_fft = abs(fftshift(fft(sig_t)));
%---------------3.绘图--------------%
figure;
subplot(2,2,1);plot(t,sig_t) ;
title('信号波形');grid on;
subplot(2,2,2);plot(t,sig_phi);
title('信号相位');grid on;
subplot(2,2,3);plot(t,sig_f) ;
title('信号频率');grid on;
subplot(2,2,4);plot(f,sig_fft);
title('信号频谱');grid on;
2.低通采样定理仿真
在 MATLAB 中编写脚本,生成幅度 1Vpp、频率为 1KHz 的 cos 波形,使用[0.11 , 0.51 , 1.01 , 1.5 , 1.9, 2.01 , 2.1 , 2.5 , 3 , 5]倍相对于 1KHz 的采样率对其进行采样,观察时域的不同采样结果。
将时域的结果作为输入,调用 MATLAB 的 fft 函数变换到频域,观察现象。
clc;clear;
f0 = 1000;
n = 2.1;
fs = n*f0;
N = fs;
t = linspace(0,1,N);
f = linspace(-fs/2,fs/2,N);
sig = cos(2*pi*f0*t);
subplot(2,1,1);plot(t,sig);
title('时域');
subplot(2,1,2);plot(f,abs(fftshift(fft(sig))));
title('时域');
3.截断效应仿真
在 MATLAB 中编写脚本,让 2 个幅度为 1Vpp 的 cos 信号叠加,他们的频率分别为 1000Hz 和 1010Hz,对这个叠加信号做 2.4 倍过采样时域采集,采集时间范围低于 1 秒,逐渐降低采样时间,观察频谱变化,注意在什么情况下,两个信号在频域无法分辨。
clc;clear;
f1 = 1000;
f2 = 1010;
fs = 2.4*f2;
T = 0.5;
N = fs*T;
t = linspace(0,1,N);
f = linspace(-fs/2,fs/2,N);
sig1 = cos(2*pi*f1*t);
sig2 = cos(2*pi*f2*t);
sig = sig1 + sig2;
sig_fft = abs(fftshift(fft(sig)));
figure;
plot(f,sig_fft);