Sign in

Daniel Estévez

@destevez.net
692 followers 67 following 367 posts

Everything space & RF. Amateur radio operator (EA4GPZ / M0HXM). PhD in Mathematics from Univ. Autónoma de Madrid. he/him

PostsRepliesMedia
Daniel Estévez @destevez.net · 11/09/2026
New blog post: Decoding the Roman Space Telescope. On August 31 I observed the Roman telescope S-band telemetry with the Allen Telescope Array some time after launch. This post is a summary of the observation, including the telemetry decode and a preliminary analysis.
A waterfall of the signal of the spacecraft.
1124
Daniel Estévez @destevez.net · 06/09/2026
I close with some remarks about usage in practice. When the frequency grid spacing is narrower than the inverse of the number of samples, the conventional matched filter performs quite well and the DPSS-windowing improvement is small. For larger spacings it provides a minor gain.
A plot that compares the average SNR loss with respect ideal filtering of both the classical matched filter and DPSS-windowed matched filter, in terms of the frequency grid spacing.
110
Daniel Estévez @destevez.net · 06/09/2026
This is related to the spectral concentration problem, and the solution for constant-envelope waveforms is given by the DPSS window.
A plot that shows DPSS windows for different frequency grid spacings Delta. For small Delta the window is almost flat (like the rectangular window). As Delta increases, the window becomes more tapered.
100
Daniel Estévez @destevez.net · 07/08/2026
New blog post: Tianwen-1 safe mode telemetry. Peter from @amsat-dl.org noticed that a few days ago Tianwen-1 was transmitting in safe mode. Here I analyze the telemetry signal, which is only 32 baud (16 bits per second). destevez.net/2026/08/tian...
A screenshot of a GNU Radio GUI that shows the spectrum of the signal and a time domain plot of the demodulated symbols.
0101
Daniel Estévez @destevez.net · 30/07/2026
This Sentinel-2 infrared image from yesterday shows the extent of the Madrid wildfires, which are now stable and do not show any smoke in satellite imagery. The false colour map shows two shortwave infrared bands (B12 and B11) in red and blue, and near infrared (B8) in green.
A false colour satellite image that shows the western half of Spain and all of Portugal. The tweets describe how the false colour map works and what fires can be seen. Besides that, it is noticeable the higher amount of vegetation in the north and northwest part of the Iberian peninsula, and also in a few small regions in the interior.
111
Daniel Estévez @destevez.net · 15/06/2026
New blog post: Tianwen-2 low data rate telemetry. This is a short post where I analyze a recording of low rate (4 kbaud) telemetry done on June 8 during Tianwen-2's arrival to asteroid Kamo'oalewa. destevez.net/2026/06/tian...
A screenshot of a GNU Radio GUI showing the spectrum and constellation of the signal.
0134
Daniel Estévez @destevez.net · 11/06/2026
Explicit formulas can be obtained by applying a Padé approximant to this degree 6 equation. This leads to designs that have a very small error in the loop bandwidth and have the correct damping. Read more: destevez.net/2026/06/pll-...
A plot that shows the loop bandwidth relative error in terms of the normalized loop bandwidth. The error tends to zero when the loop bandwidth tends to zero, and it is already around 0.01% for a loop bandwidth of 0.1.
000
Daniel Estévez @destevez.net · 28/05/2026
New blog post: An update about Tianwen-2 telemetry. This is a quick update about Tianwen-2 telemetry decoding. First, I've figured out the format of the timestamps included in AOS frames. I explain what was confusing me yesterday.
A plot of space packet APIDs received over time by Bochum
140
Daniel Estévez @destevez.net · 27/05/2026
New blog post: Decoding Tianwen-2. I analyze the telemetry decoded from recent @radiotelescoop.bsky.social recordings of Tianwen-2. Compared to Tianwen-1, there is not much in the telemetry. There are not that many fields and most are mainly static. Read more: destevez.net/2026/05/deco...
A screenshot of a GNU Radio flowgraph GUI demodulating the signal from Tianwen-2, which has rather high SNR.A raster map of one of the decoded Space Packet APIDs. We can see a few fields changing values, but most of the contents are fairly static.
0112
Daniel Estévez @destevez.net · 13/05/2026
More fun with the Ryzen AI NPU. I'm working on a more complex algorithm, and I'm seeing memory stalls that make me lose one cycle in each iteration. It turns out that the data memory of compute tiles is organized as 8x 256-bit wide 8 KiB memory banks.
A trace shown in the Perfetto UI that shows that the processor performs 8 cycles of vector instructions and then stalls waiting for memory for one cycle.A figure from the AIE-MLv2 documentation that shows the memory module organized as 8 banks.
110
Daniel Estévez @destevez.net · 08/05/2026
Finally, I show how to use tracing to measure the performance of the NPU workload execution, and check that it matches the understanding we had obtained by analyzing the assembly code.
A screenshot of the Perfetto UI that shows an execution trace. We measure how many cycles it takes to execute each C++ kernel call.
110
Daniel Estévez @destevez.net · 08/05/2026
I implement a C++ kernel and show how it maps to assembly, and how to read the assembly to detect performance losses.
The assembly code for a C++ kernel that performs some 8x8 times 8x8 matrix multiplications. The architecture is VLIW and there are loop registers for hardware-controlled iteration. The main loop is just two instructions that are simultaneously loading data from memory with two load units and performing matrix multiply-accumulate with the vector unit.
110
Daniel Estévez @destevez.net · 08/05/2026
I start by giving an overview of the NPU hardware, explaining how it is organized as an array of compute, memory, and shimNOC tiles connected together mainly by an AXI-S interconnect for wide bandwidth data movement. I also explain the exposed-pipeline VLIW SIMD architecture.
A diagram that shows an array of compute tiles and their local memories. Data interconnections between the tiles are shown, including connection of each tile to an array-wide AXI-Stream interconnect, direct memory connections between adjacent tiles, and a cascade connection for accumulator values.
100
Daniel Estévez @destevez.net · 25/04/2026
I relate all these decodes to the uplink decodes from my previous post, explaining the UE and network conversations. Read more: destevez.net/2026/04/deco...
A wireshark listing that shows the decoded MAC PDUs in the uplink and downlink recordings. This shows how the V16 beacon connects to the RRC and sends a control plane service request. The same kind of traffic happens twice.
000
Daniel Estévez @destevez.net · 25/04/2026
I explain how the Type2 common and UE-specific search spaces for the NPDCCH work, how to do blind decoding, and how to decode the NPDSCH transmissions. The SNR in these transmissions is not great, but I'm impressed of how the repetition and FEC often give good decodes.
A constellation of a typical NPDSCH transmission sent to the V16 beacon. There are many symbols which are too large because they are corrupted by interference from other cells. Still, the transmission can be decoded.
100
Daniel Estévez @destevez.net · 25/04/2026
I start by showing how to process the NPSS and NSSS synchronization signals and the NRS reference signals. I detect 6 cells with different SNRs. Interestingly, one of them is not synchronized to the rest. I show how the NPSS and NSSS are beamed in patterns of 4 transmissions.
A plot of the NPSS amplitude classified by the system frame number modulo 4, since that is how the beaming pattern is organized. There are interference fringes that are caused by different eNBs not having exactly the same carrier frequency due to their disciplination.
110
Daniel Estévez @destevez.net · 25/04/2026
New blog post: NB-IoT downlink. This is another post in my series about V16 car warning beacons. Here I explain mostly everything about the LTE NB-IoT downlink. It's perhaps the longest post I've ever written. If you want to know more about NB-IoT this is the place to go.
An inspectrum waterfall that shows an NB-IoT uplink carrier and an NB-IoT downlink carrier aligned in time. The uplink carrier is sending NPRACH and then an NPUSCH containing an RRC connection request. The downlink has signals from many cells, and it is replying to the NPRACH, although it is barely visible.
180
Daniel Estévez @destevez.net · 18/03/2026
Yesterday @amsat-dl.org received and decoded again telemetry from Tianwen-1. I have done an updated plot of the orbital parameters with the new state vector telemetry. This shows that there have been no manoeuvres during the 3 months in which we haven't seen any signals.
A plot of the orbital parameters for Tianwen-1 for the last 4 years.
151
Daniel Estévez @destevez.net · 12/03/2026
Following up on yesterday's announcement by @amsat-dl.org about the lack of signals received from Tianwen-1 since 2025-12-23, I have published a short post that contains the orbital state based on telemetry received up to 2025-12-22.
A series of plots showing the evolution of orbital parameters over time. The data up to 2025-12-22 is based on decoded telemetry. The data afterwards is propagated.
253
Daniel Estévez @destevez.net · 13/02/2026
In this post I go over some details of the flight software, including file downlink, logs, and on board scripting. I also find some quaternion data and gyroscope data that are a good match, plus other quaternions that I don't know how to interpret.
A panel with four plots. Each row corresponds to one of the two spacecraft. The first column shows the rotation rate corresponding to some quaternions. The second column shows what appears to be gyroscope telemetry. We see a good match between the quaternions and the gyroscopes.
120
Daniel Estévez @destevez.net · 21/01/2026
Finally, a Wireshark dissector allows analyzing CSP and RDP packets (RDP is the reliable data protocol used in CSP for sequence-controlled delivery). Read more: destevez.net/2026/01/tool...
A Wireshark screenshot where we see packet analysis on a data transmission done with CSP and RDP.
030
Daniel Estévez @destevez.net · 21/01/2026
New blog post: Tooling for CSP. CSP is the cubesat space protocol. It is a network protocol used in cubesat buses, RF communications, and groundstations. Here I showcase some tooling to perform CSP network performance analysis and debugging that I have open sourced.
A screenshot of a terminal where we can see csp-iperf running and showing TX and RX rates and packet counts, round trip time measurements, and number of lost packets.
160
Daniel Estévez @destevez.net · 09/01/2026
New blog post: V16 beacon full uplink conversation. A follow up about my decoding of NB-IoT-connected car beacon warning lights (which is a thing starting this year in Spain). This time I have made a longer recording starting before the beacon is powered on.
A waterfall of the uplink transmissions of a beacon when it first begin transmitting. This is the message exchange that is needed to register the beacon in the cell network.
141
Daniel Estévez @destevez.net · 29/12/2025
In this post I analyze a recording of the B20 band NB-IoT uplink of a V16 beacon, showing how to decode the NPUSCH and obtain MAC PDUs that we can inspect in Wireshark.
The list of decoded MAC PDUs shown in Wireshark. The main interest is the RRC connection setup complete message, which contains a control plane service request NAS message that embeds the beacon message.
120
Daniel Estévez @destevez.net · 29/12/2025
New blog post: Decoding a V16 beacon. Starting in 2026, the V16 beacon mandatorily replaces the emergency triangles in road vehicles in Spain. This beacon has a strobe light and an NB-IoT connection to the cell network that it uses to send a message containing its GNSS location.
A waterfall of the uplink of a V16 beacon. We can see an m-FSK signal that is the NPRACH, and then some single-tone and multi-tone NPUSCH transmissions.
183
Daniel Estévez @destevez.net · 10/12/2025
Most of the recordings have a problem regarding a huge receiver frequency drift, as shown here. This limits the sensitivity of the acquisition algorithm. Read more: destevez.net/2025/12/firs...
A plot of the cross ambiguity function of a GPS signal. We see a vertical streak that spans almost 700 Hz. This is caused by the receiver frequency drifting during the 300 ms integration that is used to make this plot.
150
Daniel Estévez @destevez.net · 10/12/2025
New blog post: First analysis of the Lunar GNSS Receiver Experiment data. I have developed a high-sensitivity GPS acquisition algorithm in CUDA and ran it on the experiment datasets. 1 to 3 satellites are detected in 60% of the recordings.
An image showing the cross ambiguity function of a GPS signal. The correlation peak has high SNR and is clearly visible.
1103
Daniel Estévez @destevez.net · 19/11/2025
The telemetry packets contain many interesting strings with log messages, which appear to be generated by a Linux system running Rocket Lab's MAX flight software. Read more: destevez.net/2025/11/deco...
Some log messages extracted from the telemetry:

/mnt/mmc0/logs/compton/inv_sts/inv_sts-1763132730.mtc.gz
/mnt/mmc0/logs/compton/inv_eps/inv_eps-1762763341.mtc.gz
/mnt/mmc0/logs/compton/inv_cdh_spoc_misc/inv_cdh_spoc_misc-1762770516.mtc.gz
E_CMD_HIST: [ OK  ] EPS_SPOC_DIO_ST_OCP_EN ENABLE_STATE=[0, Off]
E_CMD_HIST: [ OK  ] CDH_SPOC_IO_GPIO_STATE_SET IDX=[109] STATE=[0, E_Low]
E_CMD_HIST: [ OK  ] FJ_ABORT, Proc: CommsFallback
E_INFO: set_st_power_state: End sequence
E_CMD_HIST: [ OK  ] MISC_SYSTEM, STRING: echo 'WAIT(2)' >> /tmp/BackorbDownload.fj
E_CMD_HIST: [ OK  ] MISC_SYSTEM, STRING: sed -i '$d' /tmp/BackorbDownload.fj
E_CMD_HIST: [ OK  ] MISC_SYSTEM, STRING: rm /tmp/*_files_list.txt
E_CMD_HIST: [ OK  ] MISC_CONFIG_PARSE, String: tlm_master.set_apid_freq(620, 0.05);
E_CMD_HIST: [ OK  ] FJ_START_ABS, Time: 1763146080.000000, File: CommsFallback, Args:
E_CMD_HIST: [ OK  ] FJ_START_REL, Seconds: 3600.000000, File: DisableComponents, Args: STA
E_CMD_HIST: [ OK  ] FJ_START_REL, Seconds: 0.000000, File: BackorbInit, Args:
E_CMD_HIST: [ OK  ] MISC_SYSTEM, STRING: echo PROC BackorbDownload > /tmp/BackorbDownload.fj
E_CMD_HIST: [ OK  ] MISC_SYSTEM, STRING: echo \'CMD "MISC_SYSTEM" ("gzip -c -f -k /tmp/BackorbDownload.fj > /tmp/BackorbDownload.gz")\' >> /tmp/BackorbDownload.fj
E_WARNING: LoadProc (File: FJExecute.cpp Line: 1205): Procedure found in working directory, executing: /tmp/BackorbDownload.fj
E_INFO: SetThermostatMode: Setting thermostat 'EESA' to mode ClosedLoop
E_INFO: SetThermostatSetpointsClosedLoop: new setpoints for ON -35.000000 deg C. OFF -30.000000 deg C.
070
Daniel Estévez @destevez.net · 19/11/2025
New blog post: Decoding ESCAPADE. Here I decode a recording of the ESCAPADE spacecraft that I did with an Allen Telescope Array antenna the day after they were launched. The modulation is PCM/PSK/PM with rate=1/2 Turbo code. The telemetry uses CCSDS TM frames and Space Packets.
A waterfall of the ESCAPADE-Gold telemetry signal. It shows that there are significant changes in power over time. There is a gap caused by a problem with the recording. The signal resumes at a slower data rate after the gap.
1174
Daniel Estévez @destevez.net · 09/11/2025
I have made a new release of the Maia SDR firmware. This is a maintenance release that updates dependencies and includes some USB Ethernet connectivity improvements to Android devices.
The release changelog.

Update Maia SDR to v0.12.0. Updates dependencies.

Update IQEngine to latest main.

Add IPv6 link-local address fe80::1/64 to simplify connecting to the Pluto by ssh before the IPv4 network is configured (for instance this can be used in Android devices that use an address of the form 10.xxx.yyy.zzz/24, which is not covered by the ipaddrmulti feature)

Include IP from fw_printenv ipaddr in the Subject Alternative Names of the maia-httpd SSL certificate.
110
Daniel Estévez @destevez.net · 02/11/2025
New blog post: sigmf-toolkit. I present a new Python package I've made and showcase one of its tools, which adds to a SigMF file annotations for each packet in a PCAP file. This is a good way of doing protocol analysis and debugging across the physical and upper layers. destevez.net/2025/11/sigm...
A screenshot of Inspectrum that shows a waterfall containing multiple packets. Each packet is bounded with an annotation. There are also annotations for reply packets, which are not visible in the waterfall. The mouse is hovered over one packet, and the tooltip shows a dump of an IPv4 ping packet generated with Scapy.
061
Daniel Estévez @destevez.net · 25/10/2025
New blog post: Non-coherent m-FSK BER. Another short post in which I derive the following formula for the symbol error rate of non-coherent m-FSK and validate it using simulations. destevez.net/2025/10/non-...
A formula of the symbol error rate for m-FSK. It is a summation with m - 1 terms that contains a binomial coefficient and an exponential term that depends on the Es/N0.A plot showing the BER versus Eb/N0 of m-FSK for m=2,4,8,16,32. The results using the closed-form formula and simulations are compared.
071
Daniel Estévez @destevez.net · 28/09/2025
When setup timing is violated, typically the output delay becomes much larger than the nominal one, increasingly more as the data transition approaches the clock edge. This goes somewhat against the usual idea that setup violations mainly cause metastability. Read more: destevez.net/2025/09/flip...
A simulation of a setup timing violation. A data transition from zero to one is done increasingly close to the clock rising edge. We can see the corresponding outputs in traces of different colours. As the data transition approaches the clock edge, the output delay increases a lot, until the new data is no longer captured.
040
Daniel Estévez @destevez.net · 28/09/2025
Using ngspice, the timing properties of the flip-flop can be measured. Here is an output delay simulation, where the output for different process corners is shown in different colours.
A simulation of output delay. Two clock cycles are simulated, and the data input first is one and then is zero, so we can see how the input data propagates to the output after the clock rising edge. Different process corners are shown with different colours in the flip-flop output voltage trace, so we can see the difference between the fastest and slowest corners.
130
Daniel Estévez @destevez.net · 28/09/2025
New blog post: Flip-flop timing experiments. I design an ASIC flip-flop using Magic and play around with some ngspice timing simulations of output delay, setup and hold. I have made my flip-flop (top) as small as possible, so it is half the area as the standard cell (bottom).
Two ASIC cells. The one on the top, which is the flip-flop I have designed is half as tall as the one on the bottom, which is the equivalent cell from the standard library. My flip-flop is also slightly narrower. There is a large difference between the transistor size in both cells, and also the amount of room available to route all the signals. The standard cell can route everything in one metal layer, while my flip-flop needs three metal layers.
171
Daniel Estévez @destevez.net · 04/09/2025
New blog post: 10 GHz FMCW radar LO board. I've finished assembling and testing my ADF4158+HMC391 3.9-4.45 GHz LO board, for which I asked for reviews a few months ago. In the post I explain some aspects of the board design, and the software I've written and testing I've done.
A photo of an assembled PCB. It is a small board with an SMA connector, a few surface mount chips, a pin header, and tiny 0402 passives.
190
Daniel Estévez @destevez.net · 19/08/2025
In this post I dive into the 13 spectral bands captured by Sentinel-2 and explain how they can be used to measure vegetation health and fire affectance. This image shows SWIR in red, highlighting burnt areas, NIR in green, highlighting vegetation, and visible green in blue.
A false colour image that shows short wave infrared in red, near infrared in green and visible green in blue. Vegetation looks green or bright green, depending on density. The burnt area looks red, except for some surviving vegetation which can still be seen in green.
162
Daniel Estévez @destevez.net · 19/08/2025
New blog post: Multispectral analysis of the Tres Cantos wildfire with Sentinel-2 data. This image shows vegetation surviving the fire in green, vegetation lost by the fire in magenta, and areas affected by the fire but with less vegetation loss (dry grass) in blue.
A false colour image that shows vegetation surviving the fire in green, vegetation lost by the fire in magenta and burnt areas of low vegetation in blue. In green we can see the parks in Tres Cantos, and the creeks and forests highlighted. In magenta we see a large part of the Monte de Viñuelas woodland, which has been burnt severely, as well as some creeks badly affected by the fire. In blue there are areas of dry grass pastures that have burnt, mostly outside of Monte de Viñuelas and northeast of Tres Cantos. There are spotty blue-green areas in the eastern part of Monte de Viñuelas, showing partial fire affectation with trees surviving.
161
Daniel Estévez @destevez.net · 13/08/2025
There is now Sentinel-2 imagery for today that has no clouds and has data products that can be downloaded for free. This shows a comparison between 2025-08-10 and 2025-08-13.
140
Daniel Estévez @destevez.net · 13/08/2025
The above image was supposed to be an animated GIF comparing before and after the fire, but it looks like that doesn't work on Bluesky. Here are the two images.
A satellite image on a cloudless day a few days before the fire. It is shown for comparison.A satellite image of the day after the fire. There are some clouds, but most of the burnt area can be seen through a break in the clouds.
221
Daniel Estévez @destevez.net · 13/08/2025
On Monday there was a large wildfire in Tres Cantos, Madrid, Spain, which is where I live (my family, friends and I are all okay). Today I have found some Airbus Space Pléiades Neo imagery that shows the extent of the fire more accurately than all other source I've seen.
An animated GIF that toggles between two satellite images of the same area. One was taken on a cloudless day some days before the fire. The other one is from the day after the fire. There are some clouds, but most of the burnt area can be seen through a break in the clouds.
3113
Daniel Estévez @destevez.net · 01/08/2025
I've made new releases of gr-satellites: 5.8.0 (GNU Radio 3.10), 4.15.0 (GNU Radio 3.9), 3.22.0 (GNU Radio 3.8). This will be the last release supporting GNU Radio 3.9 and 3.8. Maintainance for these branches will stop now.
The changelog of the release:

Added

    Added callsign to deframer options
    Basic support for SigMF input
    CSP Address Filter block
    CSP ZMQ blocks
    Frame counter block
    Mobitex-NX deframer
    Support for JINJUSAT-1B
    Support for Hex20 Nila
    Support for NUSHSAT-1
    Support for TEVEL2 satellites
    Telemetry decoder for TUBiX20 (TUBIN)
    Time-dependent delay block
    Time synchronization tag to Doppler correction block
    U482C encoder block
    Uplink argument to tle_to_doppler_file.py example

Fixed

    Callsign '-' handling in Check AX.25 Address
    Packet size bug in AX100 deframer
    pybind11 bug in swap_header
    Timezone handling in PDU to KISS

Changed

    Added callsign in SatYAML to BEESAT-1,-9, TUBIN, NanoFF-A,-B, and TechnoSat
    Improved version printout in gr_satellites CLI app
    Updated AX.25 packet radio examples
    Use GNU Radio crc_check in GNU Radio >= 3.10
0143
Daniel Estévez @destevez.net · 17/07/2025
New blog post: n78 band 5G NR recordings. I comment on some recordings I have made that are representative of the current state of 5G deployment on this band in Spain (100 MHz cells for Movistar and Orange, 90 MHz cell for Vodafone).
An inspectrum waterfall that shows a 100 MHz 5G cell that is rather busy. We can see 7 SSB repetitions, and mostly empty uplink slots, since this is a TDD band.
1101
Daniel Estévez @destevez.net · 13/07/2025
Some months ago I shared my design of a PCB with an ADF4158 PLL/waveform synth and HMC319 VCO intended as an LO source for an FMCW radar in the 10 GHz band. I have finished soldering all the components, and the HMC319 appears to be working. The next step is the ADF4158 config.
A photo of a small PCB with an SMA connector connected to an attenuator, two leads to supply power, a green LED, and a bunch of surface mount components, including three QFN chips.A screenshot of GQRX showing a signal at 3.786 GHz with significant phase noise. This is the output of the VCO without the PLL being configured.
0100
Daniel Estévez @destevez.net · 12/07/2025
New blog post: Galileo OSNMA chain renewal. OSNMA is the Galileo open service navigation message authentication system, which authenticates cryptographically the navigation data broadcast by the satellites. Here I comment on a TESLA chain renewal test done on Tuesday.
A diagram taken from the ICD that shows how the TESLA chain renewal happens in two steps. In the first step, the KROOTs for both chains are transmitted alternatively and the chain and pubkey status is end-of-chain. In the second step, the system transitions to using the new chain.
130
Daniel Estévez @destevez.net · 02/07/2025
I compare the legacy loop filter in GNU Radio with a correct implementation of the loop filter, showing that when the bandwidths are adjusted for similar convergence time, the correct loop filter has less noise. Read more: destevez.net/2025/07/abou...
A plot of the value of the FLL frequency accumulator during lock-in. The legacy GNU Radio loop filter and the new fixed loop filter are compared. Both converge almost at the same time, but the legacy filter has more noise after convergence.
030
Daniel Estévez @destevez.net · 02/07/2025
I calculate the discriminant gain and show how to design loop filter coefficients properly, pointing out what is wrong with the current GNU Radio implementation of the loop filter.
A plot of the discriminant curves of the GNU Radio and Remez band-edge filters obtained via simulation. They are compared with the slope given by the theoretical gain at zero error.
110
Daniel Estévez @destevez.net · 02/07/2025
Then I compare ways of realizing band-edge filters as an FIR filter, including an idea by fred harris, which is what GNU Radio uses, and a Remez design.
A plot that compares the GNU Radio FIR filter, which extends the ideal quarter-sine band-edge to a half-sine, and a Remez design, which has more ripple but a narrower transition down to zero.
110
Daniel Estévez @destevez.net · 02/07/2025
New blog post: About FLLs with band-edge filters. This post is motivated by some bugs in the @gnuradio.org FLL that I've been working on fixing. I explain what band-edge filters are, and how they can be used in an FLL.
A plot of the spectrum of an RRC waveform and ideal band-edge filters. The band-edge filters are equal to the derivative of the RRC, so they are non-zero only in the roll-off region.
151
Daniel Estévez @destevez.net · 30/06/2025
New blog post: Z-Sat VHF transmissions. Recently Daniel Ekman has noticed that Z-Sat, a Japanese satellite launched in 2021 that has an amateur radio payload, is transmitting a digital signal continuously. Here I analyze a recording of this signal.
A screenshot of a GNU Radio GUI where we can see the soft symbols in the time domain and the output of a G3RUH descrambler. The descrambler output is all zeros.
190