티스토리 뷰
<출처>
1. 위키백과 - 데시메이션
0. 데시메이션(decimation)?
- 신호처리에서? 혼신없는 대역폭 축소를 의미
- decimation은 신호의 샘플링 레이트를 줄이는 과정
1. signal.decimate
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
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 조정 하는 것.
'Programming > python' 카테고리의 다른 글
python partial 함수와 lambda 함수 (0) | 2019.10.04 |
---|---|
python numpy reshape 정리 (0) | 2019.10.03 |
python 가변길이 매개변수 *args, **kargs (2) | 2019.10.02 |
자료구조 - 동적계획법 및 함수 데커레이터 (0) | 2019.10.02 |
[2] 내장 시퀀스 타입 - 깊은 복사와 슬라이싱 연산 (0) | 2019.09.19 |
댓글