From add4b8fb396f162ac462f9b1a3fd5548b076a846 Mon Sep 17 00:00:00 2001 From: Erik Strand <erik.strand@cba.mit.edu> Date: Wed, 8 May 2019 20:18:50 -0400 Subject: [PATCH] Delete old Python file --- compressed_sensing.py | 80 ------------------------------------------- 1 file changed, 80 deletions(-) delete mode 100644 compressed_sensing.py diff --git a/compressed_sensing.py b/compressed_sensing.py deleted file mode 100644 index e3967b1..0000000 --- a/compressed_sensing.py +++ /dev/null @@ -1,80 +0,0 @@ -import numpy as np -import scipy -import matplotlib.pyplot as plt - - -def sample_two_sins(f1, f2, sample_times): - sample_rads = 2 * np.pi * sample_times - return np.sin(f1 * sample_rads) + np.sin(f2 * sample_rads) - - -def compute_dct_matrix(n_samples): - dct_matrix = np.zeros((n_samples, n_samples)) - root_one_over_n = np.sqrt(1.0 / n_samples) - root_two_over_n = np.sqrt(2.0 / n_samples) - for j in range(0, n_samples): - dct_matrix[0, j] = root_one_over_n - for i in range(1, n_samples): - for j in range(0, n_samples): - dct_matrix[i, j] = root_two_over_n * np.cos(np.pi * (2 * j + 1) * i / (2 * n_samples)) - return dct_matrix - - -def compute_differences(recovered_dct, inverse_dct_matrix, sample_values): - return sample_values - np.matmul(inverse_dct_matrix, recovered_dct) - - -def loss_e(differences, subset_indices): - return np.linalg.norm(differences[subset_indices]) - - -def grad_e(differences, dct_matrix, subset_indices): - return -2 * np.matmul(dct_matrix[:,subset_indices], differences[subset_indices]) - - -if __name__ == "__main__": - f1 = 697 # Hz - f2 = 1209 # Hz - - # Part (a) - sample_period = 0.01 - n_samples = 250 - sample_times = (sample_period / n_samples) * np.arange(n_samples) - sample_values = sample_two_sins(f1, f2, sample_times) - plt.plot(sample_times, sample_values) - plt.savefig("fig_a.png") - plt.close() - - # Part (b) - dct_matrix = compute_dct_matrix(n_samples) - dct = np.matmul(dct_matrix, sample_values) - plt.plot(np.arange(n_samples), dct) - plt.savefig("fig_b.png") - plt.close() - - # Part (c) - inverse_dct_matrix = np.transpose(dct_matrix) - recovered_sample_values = np.matmul(inverse_dct_matrix, dct) - plt.plot(sample_times, recovered_sample_values) - plt.savefig("fig_c.png") - plt.close() - - # Part (d) - n_subsamples = 100 - np.random.seed(7250147) - subset_indices = np.arange(n_samples) - np.random.shuffle(subset_indices) - subset_indices = subset_indices[:n_subsamples] - subset_indices = np.sort(subset_indices) - subset_sample_times = sample_times[subset_indices] - subset_sample_values = sample_values[subset_indices] - plt.plot(subset_sample_times, subset_sample_values) - plt.savefig("fig_d.png") - plt.close() - - # Part (e) - recovered_dct = np.random.normal(0.0, 1.0, (n_samples)) - differences = compute_differences(recovered_dct, inverse_dct_matrix, sample_values) - loss = loss_e(differences, subset_indices) - grad = grad_e(differences, dct_matrix, subset_indices) - print(grad) -- GitLab