티스토리 뷰

<출처> 

1. 위키백과 - 데시메이션 

 

0. 데시메이션(decimation)

- 신호처리에서? 혼신없는 대역폭 축소를 의미

- decimation은 신호의 샘플링 레이트를 줄이는 과정

 

 

1. signal.decimate 

 

<출처> scipy 

1
2
3
4
5
6
7
8
9
10
11
from scipy import signal
data = np.array([n for n in range(1,1001)])
 
data = data.reshape(-1,2)
 
downsample_rate = 2
answer=signal.decimate(data[:, 0].ravel(), downsample_rate)
print(f'answer : {answer}')
print(f'answer_len : {len(answer)}')
cs

>> [  0.99724776   4.93863477   8.89642003  12.85525945  16.79969842 ... 
 969.78968241 973.70611375 977.69114937 981.63343695 985.57096535]

>> answer_len : 250

 

 

2. signal.spectrogram 

 

 

<출처> scipy

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def spectrogram(sig_in, dsamp):
    nperseg = 128 # default 256
    noverlap = nperseg // 4 # default: nperseg // 8
    fs = 4000000 // dsamp # raw signal sample rate is 4MHz
    window = 'triang'
    scaling = 'density' # {'density', 'spectrum'}
    detrend = 'linear' # {'linear', 'constant', False}
    eps = 1e-33
    #eps =1
    f, t, Sxx = signal.spectrogram(sig_in, nperseg=nperseg, noverlap=noverlap,
                                   fs=fs, window=window,
                                   scaling=scaling, detrend=detrend)
    print("Sxx",Sxx)
    return f, t, np.log(Sxx + eps)
 
f, t, Sxx_out = spectrogram(data, downsample_rate)
cs

spectrogram 함수 정의

-> 마지막줄에 data, downsample_rate만 넣어주면 된다. 

이 함수는 이 사이트에서 퍼옴. 

 

  • fs : 
  • eps부분은 scale 조정 하는 것.

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함