정확하게 말씀하신대로 문제를 해결할 수있을 것이라고 생각합니다.
부동 소수 샘플 1 = {0.0, 0.0} 0 = {-1.0, 1.0}의 쌍으로 인코딩 된 비트 스트림을 생각해 보자. 임의의 비트 스트림을 알고리즘에 인코딩 한 결과를 피드에 넣고 0의 스트림을 보내면 알고리즘 리포트는 윈도우의 가장 자리에서 방금 떨어진 샘플 쌍이 변동하는지 여부에 따라 변동합니다 {0.0, 0.0} 또는 {-1.0, 1.0}이었다.
그래서 알고리즘을 사용하여 슬라이딩 윈도우 크기의 약 절반 크기의 비트 스트림을 외울 수 있습니다. 따라서이 정도의 저장 용량을 사용하지 않으면 알고리즘을 구현할 수 없습니다.
아마 몇 가지 지수 스무딩 방식을 사용할 수 있습니다. 간단한 지수 스무딩은 가중치가 기하 급수적으로 감소하는 가중치 평균과 동일하며, 제곱 값을 부드럽게하면 기하 급수적으로 제곱 된 합계를 얻게됩니다. 지수 가중치가 아닌 미확인 값의 합계가있는 경우 두 값을 결합하여 원하는 중앙 값에 대해 일부 중심 값의 지수 편차 제곱의 지수 가중치 합계를 얻을 수 있습니다. 물론 수치 적으로 안정된 것을 얻기 위해서는이 아이디어를 크게 개선해야합니다. 위 인용문이 인용 한 Wikipedia 기사의 끝에있는 가중 분산 알고리즘 중 하나의 세부 사항에서 다루어집니다.
하면, 윈도우를 압연 분산 부르는 불명확. 모든 샘플을 고려해야 할 필요가 있습니까? –
필요한 정확도를 허용하는 경우 값을 다시 스케일링하여 정수로 변환 할 수 있습니다. 그런 다음 [squared] 값을 누적하는 것은 64 비트 누산기를 사용하여 정확하고 가역적으로 수행 할 수 있습니다. 그리고 충분하지 않다면, 128 비트로 누적하십시오. –
시간대가 항상 초 단위가 될 경우, 초당 데이터의 수, 평균, 분산을 계산하고 저장할 수 있으며이를 결합하여 수의 평균, 분산을 구할 수 있습니다. 창문. – dmuir