Skip to content
Snippets Groups Projects
Commit 06b7d461 authored by Erik Strand's avatar Erik Strand
Browse files

Plot DCT

parent ad5c4350
No related branches found
No related tags found
No related merge requests found
import numpy as np
import scipy
import matplotlib.pyplot as plt
......@@ -6,22 +7,35 @@ 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
if __name__ == "__main__":
f1 = 697 # Hz
f2 = 1209 # Hz
# Part (a)
sample_period = 0.01
n_samples = 1000
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()
sample_period = 0.02
n_samples = 1000
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)
# 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()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment