窓関数(まどかんすう、英: window function)とは、ある有限区間(台)以外で0となる関数である。ある関数や信号(データ)に窓関数が掛け合わせられると、区間外は0になり、有限区間内だけが残るので、無限回の計算が不要になり数値解析が容易になる。窓関数は、データから成分を抽出するアルゴリズムの中核に当たり、スペクトル分析、フィルタ・デザインや、音声圧縮に応用される。窓関数を単に窓 (window) ともいい、データに窓関数を掛け合わせることを窓を掛ける (windowing) という。理論的に最良の結果が得られるSinc関数を利用するフィルタは無限回の計算(現実には不可能)を必要とするが、フィルタを有限回の計算だけで実現するために、周波数分解能とダイナミックレンジのトレードオフの中で様々な窓関数が考案されている。単に有限個のデータを用意しただけでも暗黙的に窓関数を掛けた事になる(矩形窓)。矩形窓の場合、周波数分解能は最良であるが、ダイナミックレンジは最悪で、データに含まれる成分がノイズに埋もれてしまい実用的でない。従って、改良された窓関数では各データに異なる重み付けを行って周波数分解能を多少犠牲にしてダイナミックレンジを改善している。