From ce60606d82ce485159d6f744832533e82d1f3da5 Mon Sep 17 00:00:00 2001 From: Ksyer <> Date: Tue, 16 Jul 2024 15:41:59 +0800 Subject: [PATCH] Update experiment --- 1 - experiment/Circulant Matrix/circulant_matrix.m | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/1 - experiment/Circulant Matrix/circulant_matrix.m b/1 - experiment/Circulant Matrix/circulant_matrix.m index f7837de..aff1e7d 100644 --- a/1 - experiment/Circulant Matrix/circulant_matrix.m +++ b/1 - experiment/Circulant Matrix/circulant_matrix.m @@ -4,22 +4,24 @@ clear; N = 100; eps = 1e-10; + +% 生成傅里叶矩阵 F_n = dftmtx(N); +% 输出傅里叶矩阵 for i = 1: N for j = 1: N fprintf(string(F_n(i, j)) + ", "); end fprintf("\b\b\n"); end - fprintf("\n"); -% 检查傅里叶矩阵的正确性 +% 检查傅里叶矩阵 assert(abs(F_n(2, 2) ^ 2 - F_n(2, 3)) < eps); assert(abs(F_n(2, 2) ^ N - 1) < eps); -%% 检查循环卷积 +%% 循环卷积 x = randn(N, 1); z = randn(N, 1); p = cconv(x, z, N); @@ -33,11 +35,11 @@ for i = 1: N assert(abs(tmp - p(i)) < eps); end -% 检查 x * z = A(x)z 的正确性 +% 检查 x * z = A(x)z A_x = toeplitz([x(1) fliplr(x(2:end)')], x); assert(is_vector_equal(p, A_x' * z, eps)); -% 检查卷积定理的正确性 +% 检查卷积定理 x_hat = fft(x); z_hat = fft(z); xz_hat = fft(p);