(一)数字信号处理(DSP)的知识回顾:
-
对于连续信号:自然频率分辨率为 Δ f = 1 T Δf=\frac{1}{T} Δf=T1 (两个信号的频率差大于此值,FFT才能区分开), T T T 是连续信号时域持续时间;
-
对于离散信号:角频率分辨率为 Δ ω = 2 π N Δω=\frac{2π}{N} Δω=N2π (两个信号的角频率差大于此值,FFT才能区分开), N N N 是离散信号的时域点数。
-
对两个幅值不变,但相位周期性变化的复数序列 A e j Φ 1 Ae^{jΦ_1} AejΦ1 和 A e j Φ 2 Ae^{jΦ_2} AejΦ2 进行FFT:
% 参数设置 A = 1; % 两个复数序列的幅值(相等) omega1 = 2 * pi * 5; % 第一个复数序列的数字角频率(例如,5 Hz) omega2 = 2 * pi * 10;% 第二个复数序列的数字角频率(例如,10 Hz) Phi1 = pi / 4; % 第一个复数序列的初始相位 Phi2 = -pi / 4; % 第二个复数序列的初始相位 N = 64; % 序列长度(必须是2的幂) Fs = 64; % 采样频率 T = 1/Fs; % 采样周期 t = (0:N-1) * T; % 时间向量 % 生成两个复数序列 complex_sequence1 = A * exp(1i * (omega1 * t + Phi1)); complex_sequence2 = A * exp(1i * (omega2 * t + Phi2)); % 分别绘制两个复数序列的实部和虚部 figure; % 新的figure用于显示第一个复数序列的实部和虚部 % 2x2的子图布局 subplot(2,2,1); % 第1个子图:第一个复数序列的实部 stem(t, real(complex_sequence1), 'filled', 'r'); % 使用stem函数绘制实部,红色 title('Real Part of Sequence 1'); xlabel('Time (s)'); ylabel('Amplitude'); grid on; subplot(2,2,2); % 第2个子图:第一个复数序列的虚部 stem(t, imag(complex_sequence1), 'filled', 'b'); % 使用stem函数绘制虚部,蓝色 title('Imaginary Part of Sequence 1'); xlabel('Time (s)'); ylabel('Amplitude'); grid on; subplot(2,2,3); % 第3个子图:第二个复数序列的实部 stem(t, real(complex_sequence2), 'filled', 'g'); % 使用stem函数绘制实部,绿色 title('Real Part of Sequence 2'); xlabel('Time (s)'); ylabel('Amplitude'); grid on; subplot(2,2,4); % 第4个子图:第二个复数序列的虚部 stem(t, imag(complex_sequence2), 'filled', 'm'); % 使用stem函数绘制虚部,洋红色 title('Imaginary Part of Sequence 2'); xlabel(