Non-Invasive Golf Swing Fault Classification Using FMCW Radar and Machine Learning​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‌​‌‍‍‌‌‌​‌‍​‌‍‌‌​‍​‍‌‌

Anjali S.​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌​‌‌​‌‌‌‌‍‌​‌‍‌‌‌‍‍‌‌​‌‌‌‍‍‌‍​‌‌‍‌‌‍‌‌​‍​‍‌‌

 | 
BASIS Independent Silicon Valley ‘26

Advisor: Noble​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‍‌​‌‌‍‌‍‍‌‌​‌‍‌​‍​‍​‍‌‌
Internship Location: Texas Tech University​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍‍‌‌‍‍‌‌​‌‍‌‌‌​‍‌‍‍‌​‌‍‍​‌‍‍‌‌​​‌‌‌‍​‌‍‌‍​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍​‍‌‌
Onsite Mentor: Dr. Changzhi Li​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍‌‍‍‌​‌‍‍‌‌‌​‌‍‌‌‌‌‌‍‌‌‍‌‌‌‍‍‌‌​‌‍‌​‍​‍​‍‌‌

My name is Anjali Sharma-Tiwari, and this project investigates the use of millimeter-wave frequency-modulated continuous-wave (FMCW) radar combined with machine learning to analyze and classify golf swing mechanics in a non-invasive and cost-effective way. Current golf analysis tools, such as launch monitors and wearable sensors, are often expensive, intrusive, or limited to ball-flight metrics rather than underlying swing mechanics. This project explores whether radar-derived motion signatures, specifically range-Doppler maps and time-Doppler spectrograms, can be used to reliably distinguish correct swings from common swing faults such as early extension, limited shoulder rotation, and improper swing paths. Data is collected using a modified FMCW radar placed at multiple angles (0°, 45°, and 90°) relative to the golfer, with ground truth established using high-speed video and expert labeling.​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍‌‌‍‌‍‌‌‌​‍‌‌‍‌‍‍‌‌‍‌‌‌‌​‍​‍‌‌

The research combines library and internet research, experimental data collection, signal processing, and machine-learning model development. Raw radar I/Q data is processed through FFT- and STFT-based pipelines to generate spectrograms, which are then used to train and evaluate classification models. The final product of this research will include a novel labeled dataset of golf swing spectrograms, a comparative analysis of sensor placement and observation angles, and a trained machine-learning model capable of classifying correct versus faulty swings with high accuracy. Ultimately, this project aims to demonstrate the viability of radar-based motion sensing as an accessible alternative to traditional coaching technologies, with potential applications in injury prevention, skill development, and real-time feedback systems

Project Blog

Week 1: From the Fairway to the Frequency Domain: How Radar Can Transform Golf Coaching​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​​​​‍‍‌‍‌‍‌‌‌‌‍​‌‍​‌‌‌‌​‌‍‍‌‌‌​‌‍​‌‍‌‌​‍​‍‌‌

March 3, 2026

Golf is a highly technical sport, yet most golfers, from beginners to competitive amateurs, receive feedback that is either subjective, such as your hips are too early, or dependent on tools that cost thousands of dollars and require controlled environments to operate. Launch monitors like TrackMan can measure ball flight data with impressive precision, but they tell you relatively little about what your body is actually doing wrong. Wearable sensors require physical attachment to the club or glove, which can alter the feel of the swing itself. Optical motion-capture systems, the gold standard in biomechanics research, demand expensive cameras, careful lighting, and reflective markers placed across the golfer’s body. The result is that objective, accessible swing analysis remains out of reach for the overwhelming majority of the 28 million Americans who play golf regularly. My research asks a technically ambitious question: Can a compact, low-cost radar sensor that requires no ball, no markers, no special lighting, and no physical contact accurately classify correct golf swings and the common faults that lead to inconsistent performance and injury?​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​​​​‍‍‌‍​‌‌​‍‌‌​‌‍‍‌‌‍​‌‍​‌‍‌‌​‍​‍‌‌

The technology at the center of my project is a 60 GHz frequency-modulated continuous-wave (FMCW) radar, specifically the Infineon XENSIV™ BGT60TR13C module. FMCW radars work by transmitting a signal whose frequency increases linearly over time, called a chirp, and then analyzing the difference between the transmitted signal and the signal that bounces back from a moving target. That difference encodes both how far away the target is and how fast it is moving, which together produce rich representations of human motion called time-Doppler spectrograms. A key question I am investigating from the outset is where to physically position the radar relative to the golfer. Preliminary reasoning from the physics of Doppler sensing suggests that a 45° diagonal placement, rather than directly in front of or perpendicular to the swing plane, may capture the richest motion data, because it would simultaneously pick up both horizontal and vertical velocity components. I plan to test this systematically by recording swings from all three angles (0°, 45°, and 90°) and comparing the resulting spectrograms. My expectation going in is that these spectrograms will contain distinct, classifiable signatures for six swing types I am targeting: a correct swing, no shoulder rotation, an outside-in path, an inside-out path, early extension, and no hip rotation. Whether that is actually the case, and whether a machine learning model can learn to distinguish them reliably, is what this project is designed to find out.

This week, I dedicated my time to reading the literature and planning the hardware. A few findings stood out as particularly significant. A 2025 survey of millimeter-wave radar in medical applications (Zhang et al.) reported that CNN-based systems achieved up to 98.8% accuracy in gait classification tasks, a benchmark that frames what may be achievable for golf swing classification if the dataset and architecture are well-designed. A study by Samimi Fard et al. evaluated five machine learning models (SVMs, MLPs, CNNs, LSTMs, and ConvLSTMs) on FMCW radar activity-recognition data, finding that a Convolutional LSTM achieved the highest accuracy on cross-scene validation, which directly informs which models I plan to implement and compare. I also reviewed the Titleist Performance Institute's swing characteristics catalogue, which provided biomechanical grounding for each of the six fault categories my radar system will attempt to classify. With the literature review complete, I turned to hardware planning. Poring over the full Infineon BGT60TR13C datasheet, I noted that a 4 GHz bandwidth gives the sensor a theoretical range resolution of 3.75 cm, sufficient in principle to resolve the subtle torso translations that distinguish one fault from another. From there, I sketched a preliminary baseboard schematic, finalized the first design iteration, and placed all component orders.

My central hypothesis is that 60 GHz FMCW radar spectrograms contain sufficient discriminative information to classify all six swing categories with high accuracy, and that a deep learning model, likely a fine-tuned ResNet or ConvLSTM, will outperform traditional handcrafted-feature approaches such as SVMs when trained on a sufficiently large and augmented dataset. I also expect that the 45° observation angle will yield the highest classification accuracy among the three angles I will test. The next two weeks will be spent assembling and calibrating the radar hardware, building the full signal processing pipeline from I/Q streaming to spectrogram generation, and finalizing the experimental protocol before participant data collection begins. What I am most curious about heading into that work is whether the spectrograms I generate will cleanly separate the six fault categories visually before any model is even trained, or whether the differences will be subtle enough that machine learning will have to do real work to find them. That question will shape many of the decisions ahead.

Week 2: Making the Invisible Visible​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​​‌​‍‍‌‍‌‍‌‌‌‌‍​‌‍​‌‌‌‌​‌‍‍‌‌‌​‌‍​‌‍‌‌​‍​‍‌‌

March 9, 2026

Last week ended with a question I was genuinely curious about: would the spectrograms produced by a 60 GHz radar contain cleanly separable visual signatures for swing faults I am targeting, or would the differences be so subtle that machine learning would have to do real work to find them? This week, I started building the system that will eventually answer that question. I began the week by designing and writing the code for a data collection script that streams raw signal data from the radar sensor to disk and a signal processing pipeline that transforms that raw data into interpretable visual representations. The key mathematical tool for converting the raw data is the Fourier transform, which converts a signal from the time domain into the frequency domain. By applying a series of these transforms at different stages, I can extract both how far away a moving object is and how fast it is moving, ultimately producing two types of visual outputs: a time-Doppler spectrogram, which shows how the velocity of the golfer's body evolves over the course of a swing via the Doppler shift, and a range-Doppler map, which adds spatial information about where in the measurement volume that motion is occurring. Getting clean outputs required experimenting with many intermediate parameters such as window sizes, overlap percentages, FFT lengths, clutter removal strategies, and much of the week was spent testing different configurations and inspecting the results by eye.​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​​‌​‍‍‌‍​‌‌​‍‌‌​‌‍‍‌‌‍​‌‍​‌‍‌‌​‍​‍‌‌

By the end of the week, I shifted to hardware. I assembled the 60 GHz radar baseboard and began testing different sensor configurations, adjusting parameters such as sampling rate and bandwidth to find a setup with a range resolution that could resolve the small, fast motions that distinguish one swing fault from another. A wider bandwidth of 4 GHz allowed for finer range resolution, with my final configuration achieving a theoretical resolution of about 3.75 centimeters, but it also interacted with other parameters in ways that required careful tuning. When I finally ran the full pipeline on test swings in a controlled environment, the spectrograms correctly displayed a broad trace in one direction as the club moved back, a sharp transition at the top of the swing, and a concentrated burst of motion through impact. Seeing those unique gestures emerge from raw sensor data, before any machine learning was involved, was one of those moments that makes the early weeks of a project feel worthwhile. The open question going into next week is whether the three radar placement angles I plan to test will produce measurably different spectrograms and which one will ultimately give the classifier the most to work with.

Week 3: It's All in the Angles: Finding the Radar's Best Seat in the House​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​​‍​‍‍‌‍‌‍‌‌‌‌‍​‌‍​‌‌‌‌​‌‍‍‌‌‌​‌‍​‌‍‌‌​‍​‍‌‌

March 17, 2026

Last week ended with a plan to test three radar placement angles and find which one gives the classifier the most to work with. This week, I ran those tests, and the answer turned out to be both intuitive and satisfying once I saw it in the data.​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​​‍​‍‍‌‍​‌‌​‍‌‌​‌‍‍‌‌‍​‌‍​‌‍‌‌​‍​‍‌‌

The three angles I tested were 0°, 45°, and 90° relative to the swing plane. I chose not to include angles from 90° through 180° because the second half of the swing, the follow-through, has fewer nuances than the first half, the backswing. The backswing is what a player actively controls; the follow-through is largely a byproduct of it. Since the goal is a single radar setup that can capture enough information to predict swing faults, I needed to determine which of these three positions would produce the most feature-rich spectrograms.

To make the comparison meaningful, I varied both the club and the golfer. Different club lengths produce different swing mechanics and body orientations at different points during the swing, so I collected data across multiple clubs at each angle. I also collected data from both my brother and me because the Radar Cross Section (RCS), the amount of energy reflected back to the radar from a target, is heavily influenced by the golfer's body shape and posture. Flatter surfaces oriented toward the radar and corner-like geometries produce high RCS through direct reflections back to the radar source, whereas curved or angled surfaces scatter energy away from the source and yield weaker returns. Using two golfers with different builds helped ensure the signatures I identified were properties of the swing itself rather than artifacts of one person's body geometry.

From the spectrograms and range-Doppler maps, I could identify distinct signatures present in both of our swings, particularly the sharp Doppler transition when the club changes direction from backswing to follow-through and the concentrated burst at ball impact. What was not immediately clear, however, was which body parts were responsible for which features in the data. To answer that, I attached angle reflectors, devices composed of three mutually perpendicular surfaces that reflect waves directly back to their source regardless of incident angle, to specific body parts and recaptured the data. Because these reflectors produce strong returns in the spectrogram, I could isolate and label the contributions of the hands, elbows, shoulders, torso, hips, and knees. In total, I collected data on over 1,500 swings, each accompanied by a spectrogram, a range-Doppler map, a range profile, and a slow-motion video for reference.

Across all three angles, 45° produced the richest data. The 45° radar placement captures both the vertical component of motion, the forward-and-backward movement of the club and body, and the horizontal component, the left-to-right motion through the swing arc. At 0°, the vertical motion was largely absent from the spectrograms, and at 90°, the horizontal motion dropped out. The 45° angle preserved both, yielding spectrograms with the optimal signal strength and the most visually distinct features. However, while these spectrograms reveal clear signatures of the overall swing, dissecting them for features that are specifically indicative of individual swing faults will require data from a much wider range of golfers. Going into next week, I am working on recruiting players of varying skill levels and swing styles to expand and validate the dataset.

Week 4: Every Body Swings Different​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​​​‍‍‌‍‌‍‌‌‌‌‍​‌‍​‌‌‌‌​‌‍‍‌‌‌​‌‍​‌‍‌‌​‍​‍‌‌

March 24, 2026

With the optimal single-radar placement angle settled at 45°, the next priority was to expand the dataset beyond just my brother and me. I spent this week recruiting players of varying skill levels and swing styles.​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​​​‍‍‌‍​‌‌​‍‌‌​‌‍‍‌‌‍​‌‍​‌‍‌‌​‍​‍‌‌

To build a diverse set of spectrograms for the classification, I recruited volunteers from two populations: recreational players of all ages from local practice ranges in Santa Clara and competitive junior players aged 12 to 18 who compete on junior tours. One advantage of FMCW radar that makes recruitment straightforward is its inherent privacy-preserving nature. The radar captures body motion as velocity and range signatures without recording any visually identifying information, so participants could contribute data without the concerns that come with camera-based motion capture. I did, however, record slow-motion video of each player's swing with their consent, not as a radar substitute but as a reference for labeling their swing technique. To classify each volunteer's swing faults, I am sending the slow-motion footage to professional coaches, whose expert assessments will serve as the ground-truth labels for the dataset.

As in Week 3, I attached angle reflectors to specific body parts so that I could isolate individual contributions in the spectrograms. I also recorded each player's swing from the three radar placement angles tested last week. But beyond the swing data itself, I also collected additional measurements on each player’s arm span, height, and radial swing sweep, which is the arc length the clubhead travels during the swing. These three factors directly affect the range profiles and the timing of key indicators in the spectrogram. A taller player with a longer arm span produces a wider radial sweep, which stretches both the spectrogram and the range profile in ways that are independent of swing technique. The underlying fault signatures are similar across players, but the period of the swing and the extent of the radial sweep scale the data differently for each person.

This introduced the normalization problem I am now working through. The goal is to reduce the influence of external variables like height and arm length while preserving the features that are actually indicative of swing faults, such as the swing period and the relative signal strengths at key transitions. If the classifier trains on unnormalized data, it risks learning body geometry rather than swing mechanics. I am currently researching normalization methods that can decouple these two sources of variation.

One unexpected finding this week came from the recording environments themselves. When I collected data at a crowded driving range, the radar picked up motion from nearby players, adding noise to the raw spectrograms that was absent when I recorded on an open golf course. The difference was striking in the raw data, but reassuring once I ran the clutter removal pipeline from Week 2. The strategies I built for suppressing stationary and slow-moving clutter also handled the environmental noise well and produced clean spectrograms that were comparable across both settings.

Going into next week, I’ll be reviewing all the collected data and looking for trends across the different swing faults based on the angle reflector markings and the labels the coaches provided.

Week 5: A Visual Guide to Swing Classification​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​‌​​‍‍‌‍‌‍‌‌‌‌‍​‌‍​‌‌‌‌​‌‍‍‌‌‌​‌‍​‌‍‌‌​‍​‍‌‌

March 31, 2026

With data collected across multiple swing types and players, I started looking for visual patterns in the spectrograms that corresponded to the coaches' labels. Each fault turned out to have a surprisingly distinct signature.​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​‌​​‍‍‌‍​‌‌​‍‌‌​‌‍‍‌‌‍​‌‍​‌‍‌‌​‍​‍‌‌

1) Correct Swing: The spectrograms for correct swings of players with low handicaps typically exhibited smooth, continuous trajectories of peak Doppler velocities, reflecting the fluid and coordinated sequence of body and club movements. The Doppler shifts showed predictable trajectories, with clear transitions between backswing (negative Doppler) and downswing (positive Doppler).

2) No Shoulder Rotation: The lack of proper shoulder rotation, an “arms-only” swing, is evident from the reduced overall Doppler bandwidth. The spectrogram appears narrower and less powerful than the correct swing. The low-frequency components corresponding to torso rotation are significantly diminished. The peak velocity in the downswing is often lower, and the transition from backswing to downswing is less distinct, reflecting a lack of kinetic chain sequencing.

3) No Hip Rotation: The spectrograms for swings with no hip rotation showed a diminished presence of low-frequency Doppler components associated with the hips and lower body. The primary energy appeared in higher frequencies linked to arm and club movement, indicating a more “armsy” swing where the rotational power from the hips was significantly reduced, indicating an over-reliance on the upper body. The depth of the backswing is also reduced because the player is unable to extend their arms throughout the swing fully.

4) Incorrect Path: An incorrect club path (e.g., an extreme outside-in or inside-out) could be inferred from deviations in the peak Doppler velocity trajectory and bandwidth. For instance, an outside-in path creates a subtle but clear timing distortion in the spectrogram. Compared to the correct swing, the peak positive Doppler velocity during the downswing appears slightly earlier and more abrupt. This signature reflects the clubhead traveling on a steeper plane and crossing the radar’s line-of-sight prematurely, a hallmark of an “over-the-top” motion. Conversely, an inside-out path shows a delayed, often broader peak Doppler signature. The clubhead approaches from behind the golfer's body, resulting in a more gradual increase in positive Doppler velocity. The spectrogram often appears less symmetric, with a more prolonged follow-through signature as the club travels farther from the body after impact.

5) Early Extension: This fault was characterized by a sudden and significant increase in positive Doppler shifts (movement towards the radar) during the downswing, particularly in the range bins corresponding to the golfer’s torso. This abrupt vertical motion is best seen from 90° as the hips and torso thrust toward the radar. This spike in positive velocity reflected the premature vertical straightening of the body, creating a distinct upward motion signature.

Across all fault types, these visual signatures were consistent with the swing decompositions from the slow-motion video, confirming that the spectrograms captured real biomechanical differences rather than noise.

Next week, I'll begin a literature review of machine learning models commonly used for visual data, such as spectrograms. Since I'd eventually like to run swing classification locally on a smartphone, I'll be paying particular attention to lightweight architectures that can match the performance of larger models without the computational overhead.

Week 6: Model Shopping: CNNs, ResNets, and ViTs for Spectrograms​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​‌‌​‍‍‌‍‌‍‌‌‌‌‍​‌‍​‌‌‌‌​‌‍‍‌‌‌​‌‍​‌‍‌‌​‍​‍‌‌

April 6, 2026

With a labeled dataset in the works, the next step is picking a model. Spectrograms are 2D images with time on the horizontal axis, frequency on the vertical axis, and intensity as the pixel value, so any image classification architecture can be applied to them. The question is which one works best given my data's characteristics: low resolution, subtle inter-class differences in frequency patterns, and a dataset far smaller than ImageNet. I looked at three architecture families, CNNs, ResNets, and Vision Transformers, in both the general image classification literature and in spectrogram-specific applications.​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​‌‌​‍‍‌‍​‌‌​‍‌‌​‌‍‍‌‌‍​‌‍​‌‍‌‌​‍​‍‌‌

CNNs are the starting point. AlexNet (Krizhevsky et al., 2012) launched modern deep learning for image classification, and subsequent architectures like VGGNet (Simonyan & Zisserman, 2015) and GoogLeNet (Szegedy et al., 2015) further improved accuracy by going deeper and capturing multi-scale features. CNNs work well on spectrograms because their local filters naturally detect time-frequency patterns. Hershey et al. (2017) showed this by training CNNs on audio spectrograms and reaching AUC scores of 0.90–0.93, and Kim et al. (2021) applied a multi-input CNN to FMCW radar range-Doppler and point cloud maps, achieving 97% accuracy. However, Boulanger et al. (2024) found that standard CNNs struggle on spectrograms where the visual differences between classes are small, which is relevant to my data since the micro-Doppler signatures of different golf swing faults can look quite similar.

That limitation led me to Residual Networks. He et al. (2016) introduced skip connections that let a block pass its input directly to its output, so the network only needs to learn the difference (the residual) rather than the full mapping. This fixed the degradation problem where deeper plain CNNs actually performed worse, and enabled training networks up to 152 layers deep with 3.57% top-5 error on ImageNet. ResNets have become the go-to backbone for spectrogram classification via transfer learning. Doungpaisan and Khunarsa (2025) tested six architectures on 12 spectrogram types for acoustic classification and found that ResNet-101 with CQT or Mel spectrograms consistently achieved above 94% accuracy. Ayaz et al. (2024) evaluated ResNet-50 and MobileNetV2 on radar activity recognition spectrograms and found that the choice of time-frequency representation mattered as much as the model. A 2026 study combined a lightweight ResNet-18 with a bidirectional LSTM for FMCW radar activity recognition, treating radar maps as structured vectors rather than flat images. The wide availability of ImageNet-pretrained ResNet weights is a practical advantage for my small dataset, since transfer learning helps compensate for limited training data.

I also looked at Vision Transformers. ViT (Dosovitskiy et al., 2021) splits an image into patches, embeds each one, and processes the sequence with multi-head self-attention. Unlike CNNs, which build global context layer by layer, ViT relates any two patches from the first layer. With large-scale pretraining, ViT matches or beats ResNets, but it underperforms on smaller datasets because it lacks CNN's built-in spatial biases. The Swin Transformer (Liu et al., 2021) reduces ViT's quadratic computational cost by leveraging shifted-window attention and hierarchical features. In radar applications, Czuba (2025) used ViT on micro-Doppler spectrograms for UAV classification and hit 97.76% accuracy, with the advantage that ViT handles varying spectrogram durations without resizing. Wang et al. (2023) built LH-ViT, a hybrid that combines residual feature pyramids with lightweight Transformer attention blocks, cutting parameters while keeping accuracy. Du et al. (2022) compared ViT, CaiT, and ConViT on radar spectrograms. They found CaiT best at distinguishing activities with subtle micro-Doppler differences, which is the same kind of fine-grained classification my golf swing project requires.

A few takeaways guide my model selection. ResNets with pretrained transfer learning are a strong baseline for small spectrogram datasets, and their skip connections help preserve the frequency details that separate swing faults. ViTs are useful when spectrograms vary in duration or when long-range dependencies matter. Hybrid models like LH-ViT offer a middle ground. And across all architectures, the choice of spectrogram representation consistently affects accuracy as much as the model choice itself.

Week 7: Raw Data, Real Swings: Building the Dataset​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​‌‍​‍‍‌‍‌‍‌‌‌‌‍​‌‍​‌‌‌‌​‌‍‍‌‌‌​‌‍​‌‍‌‌​‍​‍‌‌

April 20, 2026

As I researched model architectures, I realized that how I prepare the data matters just as much as which model I pick. My initial plan was to normalize the spectrograms so that each spans a standard intensity range, but I concluded that this would strip out vital information for classification. Normalization would compress or stretch the intensity values of each spectrogram independently, erasing differences in signal bandwidth and swing period between players. A golfer with a longer swing arc generates a wider Doppler spread than one with a compact motion. That difference is diagnostically useful; collapsing it into a uniform scale would remove exactly the kind of variation that separates swing faults from correct form.​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​‌‍​‍‍‌‍​‌‌​‍‌‌​‌‍‍‌‌‍​‌‍​‌‍‌‌​‍​‍‌‌

To address this, I will be using the raw spectrograms with fixed, consistent axes. Each recording captures a 5-second window, and the intensity axis spans -40 to 40 dB across all samples. Fixing these axes means swings aren't warped relative to one another: a slow backswing looks slow, a fast downswing looks fast, and any irregularity in timing or Doppler spread shows up as a visible deviation from the norm rather than being rescaled. To preserve the physical context behind each spectrogram, I also track metadata for every recording, including the player's handicap, height, arm span, and radar cross-section (RCS). These variables affect the radar return independently of swing mechanics, and having them on record means I can account for body-type differences during analysis.

Every spectrogram is labeled with the swing fault identified by coaches reviewing the synchronized slow-motion video. The final dataset contains over 1,000 labeled spectrograms across five swing faults (no shoulder rotation, no hip rotation, inside-out path, outside-in path, and early extension) and correct swings.

Labeling sounds simple, but it's not. The radar captures returns across many range bins simultaneously, while the golf swing occupies only a few. For each recording, I have to inspect the range bins, identify the one with the strongest return and the most feature-rich micro-Doppler content, extract that bin's spectrogram, and then manually segment it to center the swing within the 5-second window. The swing itself lasts roughly 1–2 seconds, so positioning it correctly within the frame requires working through the time axis and aligning the downswing peak. Some recordings have clutter from other moving objects or multipath reflections that need to be identified and cropped. Multiply that process by over 1,000 recordings, and it becomes a significant time investment. This is easily the most tedious part of the project so far. But the quality of the labeled dataset directly determines how well any model can learn, so cutting corners here would undermine everything downstream.

Next week, I will be working on fitting my data to a couple of machine learning models to run a case study and find the best-performing base model, which I can then tune to build my final model.

Week 8: Four Models, One Dataset: Finding the Right Classifier​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​‌​‍‍‌‍‌‍‌‌‌‌‍​‌‍​‌‌‌‌​‌‍‍‌‌‌​‌‍​‌‍‌‌​‍​‍‌‌

April 28, 2026

Last week ended with a labeled dataset of over 1,000 spectrograms spanning six swing categories, each one manually segmented and verified against slow-motion video. This week, I put that dataset to work by training and evaluating four candidate architectures to determine which one will serve as the base model for the final classifier.​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​‌​‍‍‌‍​‌‌​‍‌‌​‌‍‍‌‌‍​‌‍​‌‍‌‌​‍​‍‌‌

The four models I selected were a baseline CNN, ResNet-50 with ImageNet-pretrained weights, a Swin Transformer, and MobileNetV2. I chose these because they span a meaningful range of complexity, inductive bias, and practical constraints. The baseline CNN serves as the baseline with a straightforward stack of convolutional and pooling layers followed by fully connected heads. If this model cannot learn anything from the spectrograms, the problem is likely in the data rather than the architecture. ResNet-50 is the natural next step, since its skip connections and pretrained features directly address the two biggest challenges: training on a small dataset and preserving the subtle frequency-domain details that distinguish one swing fault from another. The Swin Transformer tests whether the global self-attention mechanism, which can relate distant regions of a spectrogram without building up through local filters, offers an advantage on data where the timing relationship between the backswing and downswing matters as much as the local texture of each phase. MobileNetV2, a lightweight architecture built around depthwise separable convolutions and inverted residual blocks, is included because my long-term goal is to deploy the classifier on a smartphone. If MobileNetV2 can match the accuracy of the larger models at a fraction of the parameter count, it would be a realistic choice for real-time inference on edge hardware.

I split the dataset into training, validation, and test sets using a 70/15/15 ratio and stratified by swing category to ensure each class was proportionally represented across all three splits. I also stratified by player identity, so that no individual golfer appeared in both the training and test sets. Without this precaution, the model could learn to recognize players rather than swing faults, inflating accuracy on familiar body geometries while failing on new ones. All four models were trained for 50 epochs with an Adam optimizer and a learning rate of 1e-4, using cross-entropy loss. For ResNet-50 and MobileNetV2, I froze the pretrained convolutional layers for the first 10 epochs to let the classification head warm up before unfreezing and fine-tuning the full network at a reduced learning rate of 1e-5. For the Swin Transformer, I used pretrained weights from ImageNet-21K and applied the same two-phase training strategy.

For the results, the baseline CNN achieved roughly 72% overall accuracy on the test set, which confirmed that the spectrograms contain learnable structure but that a shallow architecture lacks the capacity to capture it reliably. It performed reasonably well on the correct swing and on the no-shoulder-rotation categories, where the visual differences are most pronounced. Still, it struggled to separate the two incorrect path faults (inside-out and outside-in), often confusing one for the other. ResNet-50 jumped to approximately 89% accuracy. The pretrained features gave it a substantial head start, and the skip connections allowed it to preserve fine-grained frequency information through deeper layers. Its confusion matrix showed strong performance across most categories, with the main source of error being a modest tendency to misclassify early extension as no hip rotation, two faults that share some low-frequency spectral overlap because both involve restricted lower-body motion. The Swin Transformer achieved around 87% accuracy, which was competitive with ResNet-50. Its attention maps revealed that it was attending to the correct temporal regions of the spectrogram, particularly the backswing-to-downswing transition and the impact zone. Still, the relatively small dataset appeared to limit its ability to outperform the CNN-based models, consistent with the literature's finding that Transformers require more data to fully exploit their flexibility. MobileNetV2 reached about 84% accuracy, which is remarkably close to the larger models, given that it has roughly one-tenth the parameters of ResNet-50. Its errors followed a similar pattern to ResNet-50's, with slightly more confusion between the path faults and early extension.

A few observations stood out beyond the headline numbers. First, the choice of spectrogram representation mattered. I ran a quick comparison using both time-Doppler spectrograms and range-Doppler maps as inputs, and the time-Doppler spectrograms consistently outperformed the range-Doppler maps across all four models by 3 to 5 percentage points. This makes sense as the temporal evolution of Doppler velocity is where the biomechanical sequencing of a swing is most directly encoded, and flattening the time axis into a single range-Doppler snapshot discards that information. Second, the player-stratified split was essential. When I briefly tested a random split that allowed the same player to appear in both training and test sets, ResNet-50's accuracy jumped to 94%, a misleading number that reflected body-geometry memorization rather than genuine fault classification. The drop back to 89% on the player-stratified split confirmed that the model was learning swing mechanics rather than silhouettes.

Based on these results, ResNet-50 is the clear choice for the base model. It achieved the highest accuracy, with interpretable error patterns concentrated on biomechanically similar fault pairs, and its pretrained backbone makes it well-suited for fine-tuning on a dataset of this size. Next week, I will focus on hyperparameter tuning to further improve ResNet-50's performance, with particular attention to the fault pairs it currently confuses.

Week 9: Closing the Gap, One Hyperparameter at a Time​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​‍​​‍‍‌‍‌‍‌‌‌‌‍​‌‍​‌‌‌‌​‌‍‍‌‌‌​‌‍​‌‍‌‌​‍​‍‌‌

May 5, 2026

From last week’s case study, I identified ResNet-50 as the strongest base model, with approximately 89% test accuracy and a clear set of failure modes concentrated on two similar fault pairs of early extension versus no hip rotation and inside-out versus outside-in path. This week, I am working to close those gaps through hyperparameter tuning.​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​‍​​‍‍‌‍​‌‌​‍‌‌​‌‍‍‌‌‍​‌‍​‌‍‌‌​‍​‍‌‌

The first decision was what to tune and in what order. The three axes I prioritized were learning rate and schedule, data augmentation strategy, and the depth of fine-tuning within the pretrained backbone. These three control the most consequential tradeoffs for a transfer learning setup on a small dataset, namely, how aggressively the model updates its features, how much synthetic variation it sees during training, and how many of the pretrained layers it is allowed to modify.

For learning rate tuning, I swept over five values from 5e-6 to 5e-4 and tested two scheduling strategies: a cosine annealing schedule that smoothly decays the learning rate to near zero, and a step decay that reduces it by a factor of 10 at fixed epoch milestones. The cosine schedule produced the best validation accuracy, likely because the smooth decay avoids the abrupt transitions of step decay that can destabilize fine-tuning on a small dataset. Although the difference was modest, at 1.5 percentage points relative to the step-decay, it was consistent across multiple runs.

Data augmentation was where I saw the most significant gains. Since spectrograms are not natural images, I had to think carefully about which augmentations are physically meaningful. I introduced small random time shifts (up to 0.3 seconds in either direction) to simulate variation in where the swing falls within the 5-second recording window, slight intensity jitter (±2 dB) to mimic variation in radar return strength across players and sessions, and SpecAugment-style frequency masking, which randomly zeroes out narrow horizontal bands of the spectrogram to force the model to rely on a broader set of frequency features rather than overfitting to a single dominant band. This configuration improved validation accuracy by 3 percentage points over the baseline augmentation, with the largest gains on the two fault pairs that ResNet-50 previously confused. The frequency masking was particularly effective. By randomly hiding portions of the low-frequency region where both early extension and no-hip-rotation produce their signatures, the model was forced to learn complementary features in the mid-frequency range, where these two faults diverge.

For fine-tuning depth, I tested three configurations: freezing everything except the final classification head, unfreezing the last residual block (layer4 in the ResNet-50 architecture), and unfreezing the last two blocks (layer3 and layer4). Unfreezing only the last block produced the best results. Keeping the earlier layers frozen preserved the general-purpose feature detectors learned from ImageNet, such as edge, texture, and gradient filters, which transfer well to spectrogram data. Unfreezing the last block allowed the model to adapt its highest-level feature representations to the specific patterns in the spectrograms without the risk of forgetting that comes with unfreezing too many layers on a small dataset. Unfreezing two blocks led to slight overfitting, with training accuracy climbing above 98% while validation accuracy plateaued five percentage points below the single-block configuration.

After combining the best settings from each axis, the tuned ResNet-50 achieved approximately 93% overall test accuracy on the player-stratified split, a meaningful improvement over the 89% baseline from last week. The per-class results were encouraging. Correct swings and no shoulder rotation both achieved above 95% accuracy, consistent with their visually distinct spectrograms. The inside-out and outside-in path faults, which the baseline model frequently confused, improved to around 90% each, with the remaining errors split evenly between the two. Early extension and no hip rotation, the most biomechanically similar pair, reached approximately 88% and 86% accuracy, respectively. The confusion between them decreased substantially but did not disappear entirely, which I suspect reflects a genuine overlap in their spectral signatures when viewed at 45°. A multi-angle radar setup would likely resolve this, but that falls outside the scope of a single-sensor system.

I also ran an ablation study to confirm that each tuning choice contributed independently. Removing the augmentation improvements while keeping the optimized learning rate and fine-tuning depth dropped accuracy back to about 90%. Reverting to the original learning rate while keeping the augmentations brought it to 91%. This confirmed that the gains were not redundant and that the augmentation strategy, particularly the frequency masking, was the single most impactful change.

Week 10: Wrapping Up and Looking Ahead​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​‍‌​‍‍‌‍‌‍‌‌‌‌‍​‌‍​‌‌‌‌​‌‍‍‌‌‌​‌‍​‌‍‌‌​‍​‍‌‌

May 12, 2026

When I started this project, I had an ambitious question: Can a small, low-cost radar sensor with no cameras, no markers, and no wearables accurately classify golf swing faults? This is a field of research that has never been explored. While FMCW radar has been used for motion recognition and gait analysis, applying it to full-body golf swing classification is a novel application; no prior work has attempted to use millimeter-wave radar spectrograms to distinguish between specific swing faults across different golfers. Now, after three months of building, collecting, and testing, I can say yes, it works. A tuned ResNet-50 trained on spectrograms from a 60 GHz FMCW radar hit 93% accuracy across six swing categories. That's not perfect, and there's still confusion between biomechanically similar faults like early extension and no hip rotation. Still, for a first-of-its-kind single-sensor system, I'm proud of where this landed.​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍​‍‌‍​‌‌​‌‍‍‌‌​​‍‍‌‍​‌‌‍‌​‌‍‌‌‍‍‌‌‍‍​‍‍‌‍‌​‌‍​‌‌‌​‌‍‌‍​‌‍‌‌​​‍‍‌‍​‌‍‌‍‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​‌‍‌​‍​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌‌‌‌​‌‍‌‌​​‌‍‌‌‌​​‍‌‌‍​​‍‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‍‌‌​‌‌​‌​‍‌​‌​‌‌‍‍‌​‌​​‌‌‌‌‌​‌‌‍‍‍‌‍‌‌‌‌‌‌‌​‌‌​‌​‍‌‍‍‌‌‌​‌‍‌‌‌‍‌‌​​‍‌​‌‌‍​‌‌​​‌​‍​‌‍​‍‌‍​‌‌‌‌​‌‌​‌‌‌​‌​​‌‌‌‌‍‍‌‍​‍‌‍‍‌​‌‌‍‌‌‌​​‌​‌‌​​‍‌‍‌‌‌‍‌‌‌​‌​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍​‌‍‌‍‌‍‍‌‌‍‌‌‌‍​‌‍‌​‌‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‍‌‍​‌‍‌‍‌‌‌‌​​‌‍‌​‌‌​‌​​‍‍​‍‌​‍‍‌‍​‌‌​‍‌‌​‌‍‍‌‌‍​‌‍​‌‍‌‌​‍​‍‌‌

But the results are only part of the story. I have learned a lot and grown as a researcher through this process.

The first few weeks were about building the foundation through writing the signal processing pipeline, assembling the radar hardware, and learning more about Fourier transforms. The first time I ran a test swing through the pipeline and saw the backswing, transition, and impact burst appear in the spectrogram, my vision for this project became clearer.

Week 3's angle experiments confirmed that the 45° placement captured both vertical and horizontal components of the swing, producing noticeably richer spectrograms than 0° or 90°. Attaching angle reflectors to body parts to isolate individual contributions was tedious but useful since being able to point at a trace in the data and identify which body part produced it gave me the ground truth I needed to interpret the spectrograms.

Recruiting golfers in Weeks 4 and 5 introduced challenges I didn't fully anticipate. Every player's body is different, and those physical differences scale the spectrograms in ways that have nothing to do with swing technique. If you're not careful, your model can learn body geometry rather than swing mechanics. I decided that raw spectrograms with fixed axes preserved more useful information than any normalization scheme I tested. That decision, along with the player-stratified train/test split, was one of the most important design choices I made, as it kept the results true to the raw data.

The model selection and tuning phase was where everything came together. I tested four architectures across a baseline CNN, ResNet-50, Swin Transformer, and MobileNetV2, with ResNet-50 performing best. Hyperparameter tuning and augmentation increased its accuracy from 89% to 93%, with frequency masking in SpecAugment contributing significantly. Masking random low-frequency bands forced the model to rely on mid-frequency features, which is where the previously confused fault pairs actually diverge.

I also learned a lot about managing a project end-to-end on a fixed timeline. There were weeks where progress was painfully slow, especially during the manual labeling of 1,000+ spectrograms. But there were also weeks where everything clicked. Learning to push through the tedious parts was just as valuable as any technical skill I picked up.

Here's the exciting part: this project isn't over. I'll be continuing this work through the summer with the goal of building a fully functional product, including a portable radar device and an app that lets any golfer set up a compact radar sensor, take a few swings, and get real-time feedback on what they're doing wrong. The 93% accuracy is a strong proof of concept, but there's a lot of ground between a research prototype and something a golfer would actually use. I want to explore multi-angle setups to resolve the fault pairs that still overlap at 45°, experiment with MobileNetV2 for on-device inference to enable the system to run on a phone, and build a feedback layer that translates predictions into actionable coaching cues. The vision is a tool that brings objective swing analysis to golfers who don't have access to a $50,000 launch monitor, just a radar module, and their phone.

If there's one takeaway, it's that radar is an underexplored sensing modality for sports. It's contactless, privacy-preserving, works in any lighting, and captures motion information that cameras can't. Golf was the starting point, but the same approach could extend to tennis, baseball, or physical therapy. I came into this curious whether the idea would work, and I'm leaving convinced there's something much bigger here.

Thanks for following along!