这是修改后的程序P3_8,它展示了离散傅里叶变换(DFT)的圆周时移性质。
% 程序P3_8:离散傅里叶变换的圆周时移性质
% 清空命令窗口和图形窗口
clf;
% 定义原始序列 x
x = [0 2 4 6 8 10 12 14 16];
N = length(x)-1; % 序列长度为 N+1
n = 0:N; % 样本索引从 0 到 N
% 进行循环移位操作,向右循环移动5个位置
y = circshift(x,5);
% 计算原始序列 x 和循环移位后的序列 y 的 DFT
XF = fft(x);
YF = fft(y);
% 绘制原始序列 x 和循环移位后的序列 y 的幅度谱和相位谱图像
subplot(2,2,1)
stem(n,abs(XF));grid
title('Original Sequence X(k) Magnitude Spectrum');
xlabel('n');
ylabel('|X(k)|');
subplot(2,2,2)
stem(n,abs(YF));grid
title('Circularly Shifted Sequence Y(k) Magnitude Spectrum');
xlabel('n');
ylabel('|Y(k)|');
subplot(2,2,3)
stem(n,angle(XF));grid
title('Original Sequence X(k) Phase Spectrum');
xlabel('n');
ylabel('<X(k)');
subplot(2,2,4)
stem(n,angle(YF));grid
title('Circularly Shifted Sequence Y(k) Phase Spectrum');
xlabel('n');
ylabel('<Y(k)');
这段程序通过对原始序列 x 进行循环移位操作,得到循环移位后的序列 y,并计算了它们的离散傅里叶变换(DFT)。然后,使用subplot函数将原始序列和循环移位后的序列的幅度谱和相位谱图像分别绘制在四个子图中。
运行该程序,可以观察到原始序列和循环移位后的序列在频域上的幅度谱和相位谱。其中,第一个子图显示了原始序列 x 的幅度谱,第二个子图显示了循环移位后的序列 y 的幅度谱。第三个子图显示了原始序列 x 的相位谱,第四个子图显示了循环移位后的序列 y 的相位谱。
这个程序验证了离散傅里叶变换的圆周时移性质,即进行圆周卷积运算时,在频域上等价于对输入信号进行循环右移操作。
内容由零声教学AI助手提供,问题来源于学员提问