์๋ ํ์ธ์. ๊ธ์ ๊ณ์ ์ฐ๋๋ฐ ์ ๋๋ฐ ๋ง์์ ์๋ค์ด์ ์ ๋ถ ๋น๊ณต๊ฐ๋ก ํด๋จ๋๋ฐ...
๋ค ๊ทธ๋ ๋ค๊ตฌ์.
์ด๋ฒ ๊ธ์ ํ์ด์ฌ์์ Scipy๋ฅผ ํตํด์ ์์ฑ์ ํธ๋ฅผ ํํฐ๋งํด๋ณผ๋ ค๊ณ ํฉ๋๋ค.
์์ฑ์ ํธ๋ฅผ ํํฐ๋งํ์ผ๋ฉด matplotlib ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ํํ ํ ๋ฒ ํ์ธํด๋ณด๊ณ ,
์ํ๋ง ๋ ์์ฑํ์ผ์ ์ ์ฅํด ๋ค์ด๋ณผ๋ ค๊ณ ํฉ๋๋ค.
์ ์ฃผ์๋ Scipy, ์ฌ์ดํ์ด๋ผ๊ณ ๊ณผํ๊ธฐ์ ๊ณ์ฐ์ ์ํ Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
์ฐ์ ๊ทธ๋ผ ์ค์น๋ถํฐ ํด๋ณผ๊น์.
cmd ์ฐฝ์ ์๋์ฒ๋ผ ์ ์ด์ค์๋ค.
pip install scipy
๋ง์ฝ Fatal error in launcher : ๋ธ๋ผ๋ธ๋ผ ๋ผ๊ณ ๋จ๋ฉด
python -m pip install scipy
์ด๋ ๊ฒ ์ ์ด์ค๋๋ค. ์๋ง ์๋์ฝ๋ค ๋ค์ด๋ก๋๋ฅผ ํ๋ฉด ์๋์ ์ผ๋ก ๋ค์ด๋๋ ๊ฑธ๋ก ์๊ณ ์์ต๋๋ค.
๋ค์ด๋ก๋๊ฐ ๋์๋ค๋ฉด import ํด๋ด ์๋ค.
import๊ฐ ์๋๋ค์.
์์ฑ ํ์ผ ๊ฒฝ๋ก, ์ด๋ฆ ํ ๋ฒ์ฉ ํ์ธํด๋ณผ๊น์?
scipy.io => io : input, output
๊ฒฝ๋ก๋ data์ ๋ค์ด๊ฐ ์๊ณ , ์ด๋ฆ์ test๋ค์.
์์ฑ ํ์ผ ๋ถ๋ฌ์จ ํ์ ํํ ํ ๋ฒ ํ์ธํด๋ด ์๋ค.
wavefile.read๋ scipy.io์ ๋ค์ด์์ต๋๋ค.
x์ถ์ผ๋ก๋ ์๊ฐ, y์ถ์ผ๋ก๋ ์งํญ์ ๋ํ๋ ๋๋ค.
ํน์ ๋ชจ๋ฅด๋ sr, x ๊ฐ ์ฐ์ด๋ณผ๊น์?
sr = sample rate๋ 48000์ด๊ณ
x = wav์ ๋ฐ์ดํฐ๋ค์ด list๋ก ๋ค์ด๊ฐ ์์ต๋๋ค.
ํํ์ ๋ณด๋ ์์ฑํ์ผ ์๊ฐ์ 3์ด์ง๋ฆฌ ์์์ด๋ค์.
(์ค๋์ scipy์ ๋ํด ์์๋ณด๋ ์๊ฐ์ด๋ numpy, matpltlib๋ ์๋ตํ๋๋ก ํ๊ฒ ์ต๋๋ค. )
๊ทธ๋ผ ๋จผ์ LPF(Low Pass Filter : ์ ์ญํต๊ณผํํฐ) ํ ๋ฒ ๋๋ ค๋ณผ๊น์?
์ค๋์ ํต์ฌ ํฌ์ธํธ!!
signal.firwin ์ด ํจ์ ํ๋๋ก hpf, lpf, bpf ๋ค ๊ตฌํํ ์ ์์ต๋๋ค. ํจ์ ์ํ ํ ๋ฒ ํ์ธํด๋ณผ๊น์.
https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.firwin.html
signal.firwin(101, cutoff=500, fs=sr, pass_zero='lowpass')
ํจ์ ์ค์ํ ๋ถ๋ถ๋ง ์ ์ด๋ณธ๋ค๋ฉด,
signal.firwin(์ฐจ์, ์ฐจ๋จ์ฃผํ์, ํํฐ)
์ฐจ์ : ์์ด๋ก order, ํํฐ์ ๊ธธ์ด์ ๋๋ค. ์ด๋์ ๋ ๊ฐ์ ํฌ๊ฒ ์ค์ผํฉ๋๋ค.
์ฐจ๋จ์ฃผํ์ : ์ด๋์๋ถํฐ ์ฃผํ์๋ฅผ ์๋ฅผ ๊ฒ์ธ์ง ๊ฒฐ์ ํฉ๋๋ค.
ํํฐ : ๋ง๋ณด๋จ ์ฌ์ง์ผ๋ก ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ค... bandpass, lowpass, highpass ๋ฟ๋ง์๋๋ผ bandstop๋ ๋๋๊ตฐ์.
๋ง์ฝ ์ฐ๊ณ ์ถ์ ํํฐ๊ฐ ์์ผ๋ฉด pass_zero = 'bandstop' ์ด๋ ๊ฒ ํ์๋ฉด ๋ฉ๋๋ค.
์ ๊ฐ ์ ์ฉํ ํจ์๋ฅผ ๋ณด๋ฉด
์ฐจ์๋ 101, ์ฐจ๋จ์ฃผํ์๋ 500hz, ํํฐ๋ low pass filter๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฃผ์์ฌํญ์ผ๋ก ์ฐจ์๋ must be odd if a passband includes the Nyquist frequency๋ผ๊ณ
๋ฐ๋์, ๋์ดํค์คํธ ์ฃผํ์ ๋๋ฌธ์ ํ์๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๊ณ ํฉ๋๋ค.
ํํ ๋ณด๊ฒ ์ต๋๋ค.
์๋ ์ฃผํ์๋ ์๋ฆฐ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๊ทธ๋ผ ์ด์ low pass ํํฐ๋ง๋ ์์ฑ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
์ ๋ค์ด๊ฐ ์๋ค์?
ํน์ฌ๋ ๊ฒฝ๋ก๊ฐ ์ด์ํ๋ค๊ณ ์๊ฐํ์ค ์ ์๋๋ฐ
์ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ฃผํผํฐ ๋ ธํธ๋ถ์ ์คํํ ๋
cd C:\Users\Mangnani\Desktop\train
๋ณ๊ฒฝ์ ํด์คฌ๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ ์ฃผ์๊ฐ train์ผ๋ก ์กํ์์ต๋๋ค.
์๋ ๊ฒ์. ๊ทธ๋ผ ํ ๋ฒ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
๋ค. ํํฐ๋ง์ด ์์ฃผ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํํ..์๋ค๋ฆฌ์๋์?
๊ทธ๋ผ High Pass Filter ๊ฐ๋ณด๊ฒ ์ต๋๋ค.
์ด๋ฒ์๋ ํ ๋ฒ์ ์ ์์ต๋๋ค. ํ ๋ฒ ๋ค์ด๋ณผ๊น์?
๋ค.. ์ด๋ฒ์๋ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ง์ฝ ํํฐ๋ง์ ํด๋ณด๊ณ ์ถ์ผ์๋ค๋ฉด ์์ ๊ฐ์ด ํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ข ๋ ์์ธํ๊ฒ ๊น๊ฒ ํ๊ณ ์ถ์ผ์๋ค๋ฉด ์ฐจ์, ์ฐจ๋จ์ฃผํ์ ๋ฑ๋ฑ ์์ ์๋ ๋ ํผ๋ฐ์ค์ ๋ฐ๋ผ
์คํํด๋ณด์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.