Сигнали и системи/Други домаћи 2020

Извор: SI Wiki
< Сигнали и системи
Датум измене: 8. јул 2021. у 21:34; аутор: TopOfKeks (разговор | доприноси) (Нова страница: Овде се налази који је дошао уз упутство за домаћи задатак из 2020. == SI…)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

Овде се налази који је дошао уз упутство за домаћи задатак из 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()