Signali i sistemi/Drugi domaći 2020

Izvor: SI Wiki
< Сигнали и системи
Datum izmene: 8. jul 2021. u 21:34; autor: TopOfKeks (razgovor | doprinosi) (Нова страница: Овде се налази који је дошао уз упутство за домаћи задатак из 2020. == SI…)
(razl) ← Starija izmena | Trenutna verzija (razl) | Novija izmena → (razl)
Pređi na navigaciju Pređi na pretragu

Ovde se nalazi koji je došao uz uputstvo za domaći zadatak iz 2020.

SISSI_Primer.py

import numpy as np
import matplotlib.pyplot as plt
import scipy.signal as sci
from scipy.fftpack import fft, fftshift, fftfreq
from scipy.io import wavfile

#%% Učitavanje fajla

fs, x = wavfile.read('sissi_1.wav')

#%% Generisanje vremenske i frekvencijske ose
t_osa = np.arange(0, len(x)/fs, 1/fs)
f_osa = fftshift(fftfreq(len(x), 1/fs))

#%% Projektovanje filtra i filtriranje signala
f_gr = 3000
n = 6
[b, a] = sci.butter(n, f_gr/(fs/2), btype='lowpass')
xf = sci.filtfilt(b, a, x)

#%% Zapisivanje u .wav fajl

x_scaled = np.int16(xf/np.max(np.abs(xf)) * 32767)
wavfile.write('sissi_1_filtrirano.wav', fs, x_scaled)

#%% Furijeova transformacija 

X_fft = fft(x)
Xa = np.abs(X_fft)

plt.figure()
plt.subplot(2,1,1)
plt.plot(t_osa, xf) 
plt.subplot(2,1,2)
plt.plot(f_osa, fftshift(X_fft))
plt.show()