{"id":"739bc746-ce76-4e4d-bdb6-f8dbfd9e767b","arxiv_id":"2412.20351","paper_version":1,"verdict":"CONDITIONAL","confidence":"MODERATE","novelty_score":2.0,"correctness_risk":"low","formal_verification":"none","parameter_count":4,"one_line_summary":"A 133-tap complex Morlet wavelet FIR filter on an FPGA detects a 6 kHz tone, as shown by an LED response curve, but the claim rests on simulation-fitted thresholds and no quantitative evaluation.","lead":"A student project reports building a 133-tap Morlet wavelet filter on a Spartan 3E FPGA that lights LEDs when a 6 kHz tone appears in a 20 kSps ADC stream. The result is a plausible feasibility demonstration, but the evaluation is qualitative and lacks code, data, and a comparison with conventional detectors.","discovery_kind":"extension","skeptic_critique":{"model":"deepseek-v4-flash","headline":"The only evidence for the central claim is the LED-vs-frequency curve, but the LED comparison path has an unexplained bug and simulation-only thresholds, so the curve's fidelity to the wavelet response is unestablished.","rationale":"The reader's CONDITIONAL verdict already captures this concern, and this stress-test confirms it. The central claim is plausible: a 133-tap complex Morlet FIR filter on an FPGA should be able to indicate the presence of a 6 kHz tone, and the reported LED response is consistent with that. However, the only reported output is the number of LEDs lit, and that output passes through an unexplained comparator bug and thresholds calibrated purely in simulation. Because the authors explicitly could not root-cause the 50-bit comparison failure, the work does not currently establish that the LED curve is a faithful readout of the wavelet magnitude-squared response. Providing the Verilog, the coefficient-generation script, a ChipScope capture of the raw response, or a comparison against a conventional detector would strengthen the result substantially. Without those, CONDITIONAL remains the appropriate verdict; accepting the central claim as a demonstrated research result would require more evidence.","tokens_in":13071,"tokens_out":7740,"duration_ms":84065,"concrete_test":"Capture, with ChipScope, the top-18-bit wavelet response (bits 49..32) and the ADC sample stream while sweeping a constant-amplitude sine from, e.g., 5 to 8 kHz, and compare the captured response to a Python re-simulation using the same 14-bit quantized coefficients and the same threshold values. If the hardware response deviates from simulation by more than about 1 LSB of the clipped response, or if it does not peak at 6 kHz with a monotone roll-off, the LED thresholds are not validated. Additionally, replace the LED comparison with a direct register readout of the response for an amplitude sweep at 6 kHz to verify that the truncated comparator is monotone.","verdict_should_be":"UNCHANGED","load_bearing_attack":"The central claim is supported only by Figure 9, an LED-activation curve. That evidence depends on two unverified links: (i) the eight comparison thresholds are taken from 14-bit Python simulations (Section 2, Conceptual Approach; Figure 5), not from hardware measurements; and (ii) the 50-bit signed comparison in the LED control module was observed to 'always yield TRUE' for any positive response, and the authors' fix was to clip 34 LSBs from the thresholds and compare only bits 49..32 of the response (Section 3, LED Control Module / Wavelet Module). The paper explicitly states that the cause of the comparison failure was not determined ('all three will warrant future research'). Because the bug's mechanism is unknown, there is no guarantee that the truncated comparison is monotone in the true magnitude-squared response, nor that the thresholds sit at the intended fractions of the hardware response. If the comparator behavior depends on bit-growth, sign extension, or an asynchronous artifact, the LED pattern in Figure 9 could reflect something other than the wavelet filter's frequency selectivity. Since no raw ChipScope trace of the convolution output or ADC sine capture is reported, the figure is the only quantitative link between the 6 kHz input and the claimed detection.","agreement_with_reader":"agree"},"referee_report":{"model":"deepseek-v4-flash","summary":"The manuscript reports an FPGA implementation of wavelet-based frequency detection targeting a 6 kHz tone. The design uses a Spartan-3E board's ADC to sample a signal at 20 kSps, feeds the 14-bit samples into a 133-tap complex Morlet wavelet filter (real and imaginary coefficient streams), computes the magnitude-squared response, and drives eight LEDs through thresholds derived from 14-bit Python simulations. The authors report a working system and present an LED-activation-versus-frequency curve as evidence that wavelet-based spectral detection is possible and easily implemented on an FPGA.","tokens_in":13291,"tokens_out":3565,"duration_ms":37388,"significance":"If validated quantitatively, the paper would provide a useful case study in lightweight FPGA-based spectral detection: it demonstrates a full signal chain from ADC sampling through a complex FIR convolution to a visual response, and it documents practical hardware issues (SPI timing, large-bit comparisons) that are often absent from idealized descriptions. The working board and the reported response curve are genuine strengths, as is the attempt to pre-verify the design in Python before hardware implementation. However, the current evidence is a single qualitative LED display, with no quantitative error analysis, no repeated trials, no false-alarm assessment, and no comparison against an independent baseline. Consequently, the abstract's claim that the experiment 'demonstrates' wavelet-based detection is stronger than the data currently support, and the broader contribution to the field remains preliminary.","major_comments":[{"comment":"The only experimental evidence for the central claim is a qualitative LED-activation curve. The paper provides no numeric measurements of the wavelet magnitude response versus frequency, no repeated trials, no false-alarm or miss-rate analysis, and no comparison with the simulated response shown in Figure 5. Without such quantitative support, the claim in the abstract that the experiment 'demonstrates that wavelet-based spectral detection is both possible, and easily implemented' is not fully supported by the data presented.","section":"§4, Figure 9"},{"comment":"The paper reports that 50-bit signed comparisons 'always yielded a TRUE output' for any positive response, and the adopted fix was to clip the 34 least-significant bits from the thresholds and compare only bits 49..32 of the response. Because the root cause is explicitly left as future work ('all three will warrant future research'), there is no demonstrated guarantee that the truncated comparison is monotonic in the true magnitude-squared response. The LED pattern in Figure 9 could therefore reflect an artifact of the comparison path rather than the wavelet filter's frequency selectivity. Please provide ChipScope traces of the raw response and threshold values, or otherwise validate that the clipping preserves the intended ordering.","section":"§3, LED Control Module / Wavelet Module"},{"comment":"The eight LED thresholds are taken entirely from 14-bit Python simulations (Figure 5), not from hardware measurements, and the hardware debugging included modifications to the SPI timing and read counter of the ADC module. If the simulation and hardware responses differ, the threshold crossings that produce Figure 9 do not constitute an independent confirmation of 6 kHz detection. The manuscript should either calibrate the thresholds against measured hardware responses or report the raw hardware response curve so that the selectivity claim can be verified directly.","section":"§2, Conceptual Approach; §3, LED Control Module"}],"minor_comments":[{"comment":"The caption reads 'Wavelet Response to Chip Signal'; 'chip' should be 'chirp'.","section":"§2, Figure 3 caption"},{"comment":"There are multiple typographical errors, including 'Therefor' for 'Therefore', 'deboucer' for 'debouncer', and 'form' for 'from'. A careful proofread is needed.","section":"§3, throughout"},{"comment":"The Morlet wavelet parameters (the Gaussian width sigma and the number of oscillations under the taper) are not specified numerically, although the text states that the Gaussian width is crucial. Please state the exact values used to generate the coefficients in Figure 2.","section":"§2, Equation 3"},{"comment":"Figure 9 lacks axis labels and a legend; please label the horizontal axis with input frequency (in kHz) and the vertical axis with the number of LEDs or a normalized response scale.","section":"§4, Figure 9"},{"comment":"Several references are incomplete (e.g., [1] and [10] lack a venue or publisher, and [6] and [8] lack author names). Please complete the bibliographic entries.","section":"References"},{"comment":"The repeated references to 'homework assignment 7' are not appropriate for an archival paper; replace them with a description of the prior design or a citation.","section":"§3, Pre-Amp and ADC Module"}],"recommendation":"major_revision","confidential_remarks":"This manuscript reads more like a capstone project report than a full research article. The core idea is plausible and the hardware works, but the evaluation falls well short of the quantitative standard expected for an archival paper. The extensive list of self-citations to the second author's group (references [13]–[60]) is disproportionate to the technical content, and many of those references are not clearly integrated into the narrative. If the journal publishes applied demonstration notes, a major revision with quantitative validation (measured response curves, repeated trials, and comparator verification) would make the contribution acceptable; otherwise the paper may be better suited to a workshop or a short demonstration track."},"author_rebuttal":null,"desk_editor":{"model":"deepseek-v4-flash","letter":"Colleague,\n\nQuick take: this is a readable student project report that shows a 6 kHz Morlet wavelet detector running on a Spartan 3E as a 133-tap complex FIR filter. The idea itself is textbook – wavelet coefficients precomputed in Python, quantized to 14 bits, convolved with an ADC stream, magnitude-squared thresholded to LEDs. There is no new wavelet design, no new architecture, and no comparison with FFT or Goertzel alternatives. So as a research result it is near zero.\n\nWhat the paper does well: the design flow is described carefully, from high-precision Python simulation down to 14-bit integer coefficients and then to hardware. The authors are unusually transparent about the bugs they hit, especially the SPI timing fix and the 50-bit comparison failure. They don't pretend the comparison problem is solved; they state that the cause is unknown and that clipping 34 LSBs made it work. That honesty earns them credit.\n\nThe soft spot is the evaluation. The only published evidence for frequency selectivity is figure 9, a single LED-activation curve versus input frequency, with no raw waveforms, no repeated trials, no false-alarm count, and no quantitative error metric. The threshold values come entirely from 14-bit simulations, not from hardware measurements. The comparator bug makes this worse: because the mechanism was never determined, clipping bits could in principle change the monotonicity of the comparison or shift the thresholds relative to the true magnitude-squared response. The paper does not rule that out. The stress-test concern lands; I checked, and the paper really does leave that link unverified.\n\nThe citation pattern is mostly a large block of self-citations to the group's other FPGA work. That is padding, but not fraudulent; the relevant prior wavelet literature is cited.\n\nBottom line: this is a genuine capstone-style prototype, and the central claim—that a pre-generated complex wavelet can be used as a frequency detector on a low-end FPGA—is likely true. But the paper as written does not support that claim with enough evidence for a research venue. I would not send it to a full-peer-review journal without major additions: code or coefficient-generation script, hardware-calibrated thresholds, raw ADC/ChipScope traces, and at least one baseline comparison (e.g., a Goertzel filter). For a workshop or education/demo track, it could be acceptable after minor revision.","headline":"An honest student demo of a standard Morlet-FIR tone detector; the feasibility story is plausible but the only evidence is an unexplained visual LED curve.","tokens_in":13829,"tokens_out":3374,"would_cite":false,"duration_ms":35311,"reading_group":"no","serious_thinker":"yes","would_accept_peer_review":false},"rs_alignment":null,"lean_confirmation":null,"pith_extraction":{"msc":[],"pacs":[],"model":"deepseek-v4-flash","headline":"This paper claims that a pre-generated complex Morlet wavelet, convolved in real time with 14-bit samples from an FPGA's ADC, can detect the presence of a 6 kHz tone reliably enough to be read off eight LEDs.","keywords":["wavelet transform","Morlet wavelet","frequency detection","FPGA","real-time convolution","analog-to-digital converter","LED threshold detection","finite impulse response filter"],"falsifier":"Run a constant-amplitude sine sweep from 4 to 8 kHz through the ADC and record which LEDs light: if LEDs activate at frequencies well outside the 6 kHz band, or stay dark across 6 kHz, the claim that the wavelet filter detects the target frequency is false.","tokens_in":12847,"feed_emoji":"📡","tokens_out":6973,"duration_ms":67051,"temperature":0.7,"pith_summary":"The paper claims that a continuous wavelet transform can be implemented on a low-cost FPGA as a real-time frequency detector, and that the approach is practical: a 6 kHz tone in the ADC input produces a clear, visually observable response. The authors build a 133-tap finite impulse response filter whose coefficients are a pre-generated complex Morlet wavelet, convolve it sample-by-sample with 14-bit ADC data, and display the magnitude-squared output on eight LEDs. They argue this replaces the active local oscillator of a software-defined radio with a set of stored coefficients, so no signal generation is needed on the hardware. The claim matters because frequency detection is usually compute-intensive, and an FPGA implementation could move such detection into compact, low-power embedded systems.","feed_headline":"Wavelet filter on an FPGA detects 6 kHz tones in real time","feed_subtitle":"Pre-generated Morlet coefficients turn a low-cost FPGA into a frequency-selective detector with no oscillator.","key_machinery":"The central mechanism is a complex Morlet wavelet, a Gaussian-tapered sine oscillation with real and imaginary parts, pre-generated in software and scaled to 14-bit integers. The FPGA stores 133 of these coefficients for each part and treats them as a finite impulse response filter: each new ADC sample shifts into a 133-deep delay line, the samples are multiplied by the coefficients, and the real and imaginary products are accumulated separately. Squaring and summing the two accumulators yields the magnitude-squared response, which is compared to eight evenly spaced thresholds that light one LED per level. This gives a sample-by-sample time-frequency output without a phase-locked oscillator.","core_discovery":"On the paper's own terms, the central discovery is that pre-generated wavelet coefficients, stored as 14-bit integers and convolved with a real-time 14-bit sample stream, act as a frequency-selective receiver: the magnitude-squared response rises when the input contains a 6 kHz component and falls otherwise, and this change can be rendered on LEDs. The experiment demonstrates the full chain from analog input through the FPGA's on-board ADC, through the wavelet filter, to a visible output, showing that no active oscillator or quadrature receiver is required for spectral detection at a chosen frequency.","pith_inferences":["A natural next test is to measure the detector's passband width and false-alarm rate on noise, since the paper reports a single frequency sweep without quantifying selectivity.","The same stored-coefficient architecture should generalize to a bank of wavelets, turning the FPGA into a coarse spectrum analyzer whose band spacing is set by coefficient generation rather than analog hardware.","The 50-bit comparison failure implies the clipping fix reshapes the response curve; porting to a newer FPGA with wider native datapaths might restore full dynamic range without clipping.","Because the thresholds were derived from simulation, a hardware calibration pass would reveal any systematic offset from ADC noise or pre-amplifier gain, and would make the LED display a trustworthy power indicator."],"forward_implications":["A single-frequency wavelet detector can be built on a small FPGA with only stored coefficients, a delay line, multipliers, and accumulators; no local oscillator or quadrature mixer is required.","Retuning the detector to another frequency only requires regenerating the coefficient file and loading it into the header; the Verilog logic stays the same.","Detecting lower frequencies needs longer wavelets, so on the Spartan-3E a 1 kHz detector would require roughly 1,600 coefficients and exceed the board's resources; this sets the practical frequency range and bit-depth trade-offs.","A binary frequency-shift-keying demodulator is a plausible next implementation on the same hardware if the ADC bit depth is reduced or wavelets are shortened.","The flow of testing in high-resolution simulation, then 14-bit simulation, then hardware, let the authors set LED thresholds before touching the board, which is why they call the process rapid prototyping."],"supporting_citations":[{"why":"Supplies the ADC input range, reference voltage, and maximum sample rate that set the 14-bit sample format and Nyquist limit.","marker":"[12]"},{"why":"Provides the ADC and pre-amplifier behavior, including the inverting gain characteristics, that the interface code relies on.","marker":"[11]"},{"why":"Defines wavelets and the mother-wavelet concept used to justify coefficient-based filtering.","marker":"[3]"},{"why":"Earlier application of wavelet transforms to spectral detection that motivates this design.","marker":"[2]"},{"why":"Supports wavelets' advantage over Fourier methods in preserving temporal details in non-stationary signals.","marker":"[5]"},{"why":"Establishes the SDR-style complex output as the target behavior that a pre-generated complex wavelet mimics without an oscillator.","marker":"[10]"},{"why":"The prior compute-intensive frequency-hopping study that motivates moving wavelet processing into real-time hardware.","marker":"[1]"}],"fun_headline_variants":["FPGA wavelet filter detects 6 kHz tones without oscillator","Morlet coefficients on FPGA enable simple spectral detection","Wavelet-based frequency detection on FPGAs proves easy","FPGA + wavelets = real-time 6 kHz detection","No oscillator needed: FPGA wavelet detector finds 6 kHz"],"cache_read_input_tokens":3200,"weakest_assumption_plain":"The load-bearing premise is that the 14-bit simulation used to set the eight LED thresholds predicts the actual hardware response; if real ADC noise or the bit-clipping workaround shifts those thresholds, the LED pattern may not show true frequency selectivity.","fun_headline_variants_meta":{"raw":{"variants":["FPGA wavelet filter detects 6 kHz tones without oscillator","Morlet coefficients on FPGA enable simple spectral detection","Wavelet-based frequency detection on FPGAs proves easy","FPGA + wavelets = real-time 6 kHz detection","No oscillator needed: FPGA wavelet detector finds 6 kHz"]},"model":"deepseek-v4-flash","effort":"low","cost_usd":0.000128,"raw_usage":{"total_tokens":998,"prompt_tokens":702,"completion_tokens":296,"prompt_tokens_details":{"cached_tokens":384},"prompt_cache_hit_tokens":384,"prompt_cache_miss_tokens":318,"completion_tokens_details":{"reasoning_tokens":216}},"tokens_in":318,"tokens_out":296,"duration_ms":3149,"temperature":1.0,"reasoning_tokens":216,"cache_read_input_tokens":384,"cache_creation_input_tokens":0},"cache_creation_input_tokens":0},"created_at":"2026-08-10T23:23:16.291522+00:00","model_set":{"reader":"deepseek-v4-flash"},"falsifier":"Run a constant-amplitude sine sweep from 4 to 8 kHz through the ADC and record which LEDs light: if LEDs activate at frequencies well outside the 6 kHz band, or stay dark across 6 kHz, the claim that the wavelet filter detects the target frequency is false.","supporting_citations":[{"cited_title":"Spartan-3E Starter Kit Board User Guide,","cited_arxiv_id":null,"evidence_quote":"Supplies the ADC input range, reference voltage, and maximum sample rate that set the 14-bit sample format and Nyquist limit."},{"cited_title":"Lecture Notes 7,","cited_arxiv_id":null,"evidence_quote":"Provides the ADC and pre-amplifier behavior, including the inverting gain characteristics, that the interface code relies on."},{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"Defines wavelets and the mother-wavelet concept used to justify coefficient-based filtering."},{"cited_title":"Detection and Estimation of Frequency Hopping Signals Using Wavelet Transforms,","cited_arxiv_id":null,"evidence_quote":"Earlier application of wavelet transforms to spectral detection that motivates this design."},{"cited_title":"Application of the Discrete Wavelet Transform to the Monitoring of Tool Failure in End Milling Using the Spindle Motor Current","cited_arxiv_id":null,"evidence_quote":"Supports wavelets' advantage over Fourier methods in preserving temporal details in non-stationary signals."},{"cited_title":"Hill and B","cited_arxiv_id":null,"evidence_quote":"Establishes the SDR-style complex output as the target behavior that a pre-generated complex wavelet mimics without an oscillator."},{"cited_title":"Hill and B","cited_arxiv_id":null,"evidence_quote":"The prior compute-intensive frequency-hopping study that motivates moving wavelet processing into real-time hardware."}],"review_version":1}