칼만 필터(Kalman filter)는 통계학과 제어 이론에서 사용되는 알고리즘으로, 시간에 따라 관측된 일련의 측정값을 바탕으로 미지의 변수를 추정한다. 이 필터는 단일 측정값에 기반한 추정보다 일반적으로 더 정확한 추정치를 산출하며, 측정값에 포함된 잡음과 다른 부정확성을 처리한다. 칼만 필터는 각 시간 단계에서 변수들의 결합 확률 분포를 추정하는 방식으로 재귀적으로 작동하며, 1960년에 이 방법을 도입한 헝가리 출신의 엔지니어 루돌프 E. 칼만(Rudolf E. Kálmán)의 이름을 따서 명명되었다.
칼만 필터링은 항공기, 우주선, 선박과 같은 운송 수단의 유도, 항법, 제어 분야에서 널리 사용되며, 시계열 분석, 신호 처리, 계량경제학, 로봇 공학에서도 폭넓게 활용된다. 또한 중추 신경계의 운동 제어를 모델링하는 데에도 적용되는데, 이 경우 운동 명령과 감각 피드백 사이의 지연을 보상하는 역할을 한다. 이 알고리즘은 실시간 작동을 위해 설계되었으며, 현재의 측정값, 이전에 계산된 상태, 그리고 그 불확실성 행렬만을 사용하여 추가적인 과거 정보 없이도 작동한다.
칼만 필터는 특정 조건에서 최적의 성능을 보장한다. 즉, 과정 잡음과 측정 잡음의 공분산이 알려져 있고 오차가 평균이 0인 가우시안 분포를 따를 때, 이 필터는 최소 평균 제곱 오차(MMSE) 기준에서 최상의 선형 추정기이다. 확장 칼만 필터(EKF)와 무향 칼만 필터(UKF)와 같은 확장형 필터는 비선형 시스템을 처리할 수 있으며, 다중 센서 융합 및 분산 센서 네트워크에서도 효과적으로 사용된다.
칼만 필터는 루돌프 E. 칼만의 이름을 따서 명명되었지만, 토르발트 니콜라이 틸레(Thorvald Nicolai Thiele)와 피터 스월링(Peter Swerling)이 이와 유사한 알고리즘을 더 일찍 개발한 바 있다. 리처드 S. 부시(Richard S. Bucy)는 이론 발전에 기여하여 필터가 때때로 칼만-부시 필터(Kalman–Bucy filter)로도 불린다. 칼만은 상태 공간 변수를 위너 필터링 문제에 적용하여 이론을 도출했으며, 최초의 구현은 스탠리 F. 슈미트(Stanley F. Schmidt)가 수행한 것으로 알려져 있다. 슈미트는 칼만이 NASA 에임스 연구 센터를 방문했을 때 이 필터가 비선형 문제에도 적용될 수 있음을 깨달았고, 이후 이 필터는 아폴로 프로그램의 임무 항법 컴퓨터에 통합되었다. 당시 컴퓨터는 2K의 자기 코어 RAM과 36K의 와이어 메모리, 그리고 100kHz 미만의 클록 속도만을 갖추고 있었음에도 불구하고 성공적으로 작동했다. 이 필터는 또한 루슬란 스트라토노비치(Ruslan Stratonovich)가 개발한 보다 일반적인 비선형 필터의 특수한 경우로 간주되기도 하며, 때때로 스트라토노비치-칼만-부시 필터(Stratonovich–Kalman–Bucy filter)로 불리기도 한다. 이 방법은 스월링(1958), 칼만(1960), 칼만과 부시(1961)의 논문에서 처음 기술되었다. 칼만 필터는 미국 해군의 핵추진 탄도 미사일 잠수함과 순항 미사일의 항법 시스템, 그리고 재사용 발사체의 유도·항법·제어와 국제 우주 정거장의 도킹 과정에서도 필수적인 역할을 해왔다.