Perform various data analysis on SEC 13-F and obtain some insights of fund activities such as number of holdings, AUM, and change of holdings between two quarters.
日本語の概要は準備中です。原文の説明を表示しています。
End-to-end pipeline for extracting heart rate (HR) and breathing rate (BR) from raw short-range radar I/Q captures — both continuous-wave (CW, 24 GHz clinical boards) and FMCW mmWave (60/77 GHz, TI IWR/AWR). Use when Claude needs to parse interleaved I/Q binary, do a Range FFT on FMCW chirps, remove static clutter, pick a subject range bin, extract phase with unwrapping, design HR/BR bandpass filters, pick a peak frequency via PSD, reject the HR second harmonic that often dominates the fundamental, or handle respiration-harmonic leakage on slow breathers. Not for pulse/UWB range gating, MIMO beamforming, Doppler-only gesture radar, arrhythmia detection, or multi-subject source separation.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
End-to-end pipeline: raw radar I/Q → cleaned phase signal → HR and BR in bpm.
Parse binary I/Q into a complex 1-D array (CW) or 2-D range matrix (FMCW). Use the JSON/YAML sidecar to determine format — never assume. See references/iq-formats.md.
(FMCW only) Range FFT across fast-time samples of each chirp → range matrix R[n_chirp, n_range_bin]. CW skips this step.
Remove static clutter. Subtract the temporal mean:
iq -= iq.mean()R -= R.mean(axis=0, keepdims=True)(FMCW only) Pick the subject range bin within a physical prior window (e.g., 0.3–1.5 m for a seated subject). See references/range-bin.md.
Extract phase with unwrap:
phase = np.unwrap(np.angle(iq_or_bin))
phase -= phase.mean()
Decimate to ~50 Hz if fs >= 500 Hz (sub-Hz filtering at kHz is numerically unstable):
from scipy.signal import decimate
phase_ds = decimate(phase, q=int(fs/50), ftype='iir', zero_phase=True)
fs_new = fs / int(fs/50)
Two separate bandpasses — BR and HR:
b_br, a_br = butter(4, [0.08, 0.5], btype='band', fs=fs_new)
b_hr, a_hr = butter(4, [0.7, 3.0], btype='band', fs=fs_new)
br_sig = filtfilt(b_br, a_br, phase_ds)
hr_sig = filtfilt(b_hr, a_hr, phase_ds)
Peak frequency via zero-padded Welch PSD (each band):
nperseg = min(len(x), int(fs_new * 25))
f, p = welch(x, fs=fs_new, nperseg=nperseg, noverlap=nperseg//2,
nfft=8*nperseg, detrend='constant')
mask = (f >= lo) & (f <= hi)
peak_hz = f[mask][np.argmax(p[mask])]
HR harmonic rejection — always run:
f_sub = f_peak_hr / 2.0
if 0.7 <= f_sub <= 3.0:
p_sub = np.interp(f_sub, f, p)
p_top = np.interp(f_peak_hr, f, p)
if p_sub > 0.5 * p_top:
f_peak_hr = f_sub # peak was the 2nd harmonic
hr_bpm = f_peak_hr * 60
See references/harmonic-pitfalls.md for why this matters and mitigations for slow-breather respiration harmonics leaking into the HR band.
Cross-check with autocorrelation (optional but recommended):
ac = np.correlate(x - x.mean(), x - x.mean(), mode='full')
ac = ac[len(ac)//2:] / ac[len(ac)//2]
lag = int(fs_new/f_hi) + np.argmax(ac[int(fs_new/f_hi):int(fs_new/f_lo)])
bpm_ac = 60 * fs_new / lag
If abs(bpm_ac - bpm_psd) > 5, flag as low confidence.
| rule | why |
|---|---|
| Use phase, not magnitude | 1 mm motion at 24 GHz ≈ 1 rad; magnitude costs ~40 dB of SNR. np.abs(iq) is almost always wrong for mm-scale motion |
Clutter removal before np.angle | DC offset anchors phase off zero, eats the ±π unwrap budget |
| Decimate before sub-Hz bandpass | SciPy biquad silently NaNs at very-low normalized cutoffs |
| Two separate BR / HR bandpasses | HR is 10×–100× smaller than BR; single wide filter can't separate them |
Zero-pad Welch PSD (nfft=8*nperseg) | Raw bin spacing fs/nperseg is often coarser than tolerance |
| Always run HR sub-harmonic check | 2nd harmonic of cardiac pulse frequently dominates fundamental |
Never argmax(magnitude) across all range bins (FMCW) | DC bin and static reflectors dominate; restrict to subject-range window |
| band | use | textbook | why |
|---|---|---|---|
| BR lower | 0.08 Hz (4.8 bpm) | 0.1 Hz (6 bpm) | slow breathers (supine, meditation, sleep) routinely below 6 bpm |
| HR lower | 0.7 Hz (42 bpm) | 0.8 Hz (48 bpm) | bradycardia (athletes, post-tilt-down, β-blockers) below 48 bpm |
| HR upper | 3.0 Hz (180 bpm) | 2.5 Hz (150 bpm) | post-exercise and children exceed 150 bpm |
Widen only with specific justification. See references/band-rationale.md.
| If | Then |
|---|---|
f_peak/2 in HR band and p_sub > 0.5 × p_top | Pick sub-harmonic (fundamental) |
| PSD and autocorrelation disagree > 5 bpm | Flag low confidence; don't commit to one value |
| BR estimate < 10 bpm (slow breather) | Expect HR-band contamination — notch 2·BR, 3·BR. See harmonic-pitfalls.md |
| HR > 150 bpm (tachycardia) | Widen HR band upper to 3.3 Hz, re-estimate |
| Clip < 15 s | PSD resolution > tolerance — prefer autocorrelation, or flag inconclusive |
find_peaks(bandpassed_hr). Off by 2× ⇒ harmonic error slipped through.If output looks like garbage, walk through references/debugging.md — fast checks that catch most ingestion and SNR bugs.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Perform various data analysis on SEC 13-F and obtain some insights of fund activities such as number of holdings, AUM, and change of holdings between two quarters.
日本語の概要は準備中です。原文の説明を表示しています。
AC branch pi-model power flow equations (P/Q and |S|) with transformer tap ratio and phase shift, matching `acopf-math-model.md` and MATPOWER branch fields. Use when computing branch flows in either direction, aggregating bus injections for nodal balance, checking MVA (rateA) limits, computing branch loading %, or debugging sign/units issues in AC power flow.
日本語の概要は準備中です。原文の説明を表示しています。
Redact text from PDF documents for blind review anonymization
日本語の概要は準備中です。原文の説明を表示しています。
Use when checking simplified ADA-derived plan-view bathroom accessibility constraints such as turning space, door clear width, toilet centerline, grab bars, and lavatory knee/toe clearance.
日本語の概要は準備中です。原文の説明を表示しています。
Analyze failed GitHub Action jobs for a pull request.
日本語の概要は準備中です。原文の説明を表示しています。
Use when extracting plan-view architectural geometry from DXF files with semantic CAD layers, especially when outputs must normalize rooms, doors, fixtures, clearances, and grab bars into machine-checkable JSON.
日本語の概要は準備中です。原文の説明を表示しています。