Kembali ke Beranda
Spectral Analysis
MODUL PERKULIAHAN MINGGU KE-9

Analisis Spektral & Dekomposisi Wavelet

Domain Frekuensi, FFT, Power Spectral Density (PSD), STFT, dan Discrete Wavelet Transform (DWT)

Capaian Pembelajaran Khusus (Sub-CPMK)

Sub-CPMK 8: Mampu menganalisis sinyal pada domain frekuensi (FFT/PSD) dan waktu-frekuensi (DWT) untuk deteksi transien.

Keterbatasan domain waktu murni, Transformasi Fourier Diskrit (DFT/FFT), estimasi spektrum daya Welch PSD, Short-Time Fourier Transform (STFT), prinsip ketidakpastian Heisenberg-Gabor, Discrete Wavelet Transform (DWT), dan denoising wavelet sinyal transien.

Formulasi Matematis & Persamaan Inti

$$X[k] = \sum_{n=0}^{N-1} x[n] e^{-j \frac{2\pi}{N} k n}, \quad \lambda = \sigma \sqrt{2 \ln(N)}$$

Pemetaan Taksonomi Bloom (C1–C6)

C1–C2 (Mengingat & Memahami)

Perbedaan koefisien aproksimasi (cA) vs detail (cD) pada dekomposisi piramida wavelet.

C3–C4 (Menerapkan & Menganalisis)

Perhitungan frekuensi analog dari bin FFT dan analisis pergeseran energi sub-band DWT pada kerusakan bantalan motor.

C5–C6 (Mengevaluasi & Berkreasi)

Evaluasi filter IIR Butterworth vs Wavelet Denoising pada sinyal surja petir dan perancangan detector sag otomatis.

Implementasi Komputasi (Python / Statsmodels)

import pywt
import numpy as np

# Dekomposisi Wavelet Daubechies 4 (db4) Level 3
coeffs = pywt.wavedec(noisy_signal, 'db4', level=3)
cA3, cD3, cD2, cD1 = coeffs

# Soft-Thresholding Donoho
sigma = np.median(np.abs(cD1)) / 0.6745
threshold = sigma * np.sqrt(2 * np.log(len(noisy_signal)))
clean_coeffs = [cA3] + [pywt.threshold(c, threshold, mode='soft') for c in [cD3, cD2, cD1]]
clean_signal = pywt.waverec(clean_coeffs, 'db4')