A fuel injection system for an internal combustion engine comprising: a fuel injector working to spray fuel into an internal combustion engine; and an injection controller working to perform a speed calculating function to determine a length of time required by the engine to revolve a given angle each time the engine revolves the given angle and calculate an instantaneous speed of the engine based on the length of time, said injection controller also performing an injection instruction function, a first speed change calculating function, an actual injection quantity calculating function, and a correction value calculating function, said injection controller entering an injection quantity learning mode to execute the injection instruction function to instruct said fuel injector to spray a target quantity of fuel into the engine, the first speed change calculating function being to calculate an engine speed change that is a change in speed of the engine arising from spraying of the fuel into the engine, the actual injection quantity calculating function being to determine an output torque of the engine based on the engine speed change, as derived by the first speed change calculating function, to calculate an actual injection quantity that is a quantity of the fuel expected to have been sprayed actually from said fuel injector based on the output torque, the correction value calculating function being to calculate an injection quantity correction value for correcting an injection duration for which said fuel injector is to be energized to spray the fuel so as to minimize a deviation of the actual injection quantity from the target quantity, characterized by a first filtering function, when the engine is decelerating, and no fuel is being sprayed into the engine, the first filtering function being to filter the instantaneous speed of the engine to extract a cyclic component which varies in synchronization with an operating cycle of the engine, wherein said injection controller also performs a second filtering function to filter the instantaneous speed of the engine to extract a friction-caused cyclic component arising from mechanical friction of the engine, and wherein the first speed change calculating function subtracts the friction-caused cyclic component from the cyclic component, as derived by the first filtering function, to remove the friction-caused cyclic component from the cyclic component to produce a friction component-removed cyclic component (ΔNE), and calculates the engine speed change based on the friction component-removed cyclic component. a fuel injector working to spray fuel into an internal combustion engine; and an injection controller working to perform a speed calculating function to determine a length of time required by the engine to revolve a given angle each time the engine revolves the given angle and calculate an instantaneous speed of the engine based on the length of time, said injection controller also performing an injection instruction function, a first speed change calculating function, an actual injection quantity calculating function, and a correction value calculating function, said injection controller entering an injection quantity learning mode to execute the injection instruction function to instruct said fuel injector to spray a target quantity of fuel into the engine, the first speed change calculating function being to calculate an engine speed change that is a change in speed of the engine arising from spraying of the fuel into the engine, the actual injection quantity calculating function being to determine an output torque of the engine based on the engine speed change, as derived by the first speed change calculating function, to calculate an actual injection quantity that is a quantity of the fuel expected to have been sprayed actually from said fuel injector based on the output torque, the correction value calculating function being to calculate an injection quantity correction value for correcting an injection duration for which said fuel injector is to be energized to spray the fuel so as to minimize a deviation of the actual injection quantity from the target quantity, characterized by a first filtering function, when the engine is decelerating, and no fuel is being sprayed into the engine, the first filtering function being to filter the instantaneous speed of the engine to extract a cyclic component which varies in synchronization with an operating cycle of the engine,