I clicked through at least 20 different repositories expecting lots of MATLAB code, but to my surprise, I didn't find a single .m file. I hate how MATLAB is so popular in the DSP world and it makes me happy to see that the astronomy community has not been infiltrated by Mathworks (yet).
Thank you for the clarification. Recently I've been reading a lot about tracking of space objects (though much closer ones, on LEO/MEO), so this is some very interesting stuff for me!
The article is light on details, but we can make some guesses based on the label "10s integrations, 1Hz channels" in the plot. I assume they have a bank of 1Hz filters, and they split the output of each filter into 10s intervals, and somehow combine ('integrate') each 10s chunk into a single number for each bin.
They need to compensate the Doppler shift so that the signal stays in one bin over the 10s integration time. I imagine they are using non-coherent integration (basically computing total signal energy over 10s in each bin) to take into account that the doppler compensation is not perfect (if it was, you could have 0.1Hz bins with 10s integration time).
If the above is true, then yeah, they can't demodulate any data because the integration time is much longer than symbol duration.
I wonder if with more accurate Doppler prediction, you could get an ever longer integration time and narrower bins, and thus even bigger SNR gain, perhaps allowing signal detection with a smaller dish...
GPS navigation messages do include information about leap seconds and other stuff necessary to convert between GPS time and UTC. See GPS Interface Specification IS-GPS-200, 30.3.3.6.2 - UTC and GPS Time
Can confirm, it's a great way to get started with radio stuff. Since I live in Europe, I did this with the German DCF77 signal. The frequency is low enough that you can do direct sampling with a 192ksps sound card or with an RP2040.
A nice thing about DCF77 is that once you manage to receive the amplitude modulated signal, you can move onto decoding the slightly more advanced spread-spectrum phase modulated signal, which carries (almost) the same data.
You can start by buying a time signal receiver module, and once you confirm that the module can receive the signal, cut off the ferrite antenna and use it with your own receiver.
I wanted to build something like this but for Linux, especially the vimium-like hints that would work in any app. I even made a prototype by abusing the AT-SPI2 accessibility API. Unfortunately, querying AT-SPI2 for all buttons takes too long in complex apps. And even if it was fast, many apps (especially non-GTK ones) implement accessibility poorly or don't implement it at all, so I abandoned the project.
I guess it would be possible to make a framework specific implementation, for example by replacing the GTK shared library with a modified version, but that's too much effort and I lost interest in the whole 'mouseless' thing anyway.
Reminds me of a problem that I had (many years ago) with my iPhone 4 - if I tried to boot it in a dark place, it would get stuck on the Apple logo in an infinite boot loop.
Turns out some versions of the Pangu jailbreak for iOS 7.1.x would crash during boot if the reading from the ambient light sensor was below some threshold. To this day I don't know the exact explanation of this bug, but it seems that Pangu included some unnecessary code that messed with the light sensor [1].
If you don't believe me, there is a huge reddit thread[2] with a lot of people confirming this.
Note that this requires the encryption to be commutative - in the third step Alice has a message in the form e_B(e_A(msg)), where e_B and e_A are Bob's and Alice's encryption functions. Alice must be able to apply her key to obtain e_B(msg), removing the inner encryption. This can be achieved with some modular exponentiation magic.
I don't know of any practical applications of this, probably because it requires both parties to be online at the same time, so they may as well use the simpler Diffie-Hellman key exchange.
Thank you, I totally forgot how nix-shell works. You're right, it should export the right env variables without makeWrapper.
I haven't used nixos in a while and I got confused about this because to install python packages globally I used `python3.withPackages` and that does use the wrappers.
> PYTHONPATH, CPATH, etc are all set up and ready to go.
Does that mean that Guix just exports the required environment variables in the shell rather than wrapping each executable with a bash script [1] like nix does?
If yes, that's great, because the wrapper approach feels like an ugly hack. I found some executables on my nixos installation that are behind three layers of wrappers, and that's probably not the maximum.
I guess nix could improve this situation by making `wrapProgram` smarter (if the executable to be wrapped is already a wrapper, merge the inner and outer wrapper), but even single-layer wrappers are annoying, and I imagine they have some performance impact.
EDIT:
I forgot about nix-shell, which does actually export the right environment variables directly to the shell.
I really like Wikipedia's illustrated explanation of Noether's theorem [1]. Euler-Lagrange equations can also be proved using a similar trick - make an infinitesimal smooth 'bump' in a realizable path and consider the change in velocity on both sides of the bump and how it is cancelled out by the change in position so that the net change of action is 0.
I think that integration by parts can also be derived in a similar way but I would have to make a proper blog post with illustrations to make it clear.
Sometimes I also think of Noether's theorem as an application of the Euler-Lagrange equations in a coordinate system where the continuous symmetry changes only one coordinate; the conserved quantity is the associated generalized momentum (because the lagrangian is independent of that coordinate).
Although I don't (yet) own a real FPGA, I recently started to learn Verilog and wanted to see if I could program one using only open-source tools. My first impression is that the tooling is too fragmented and the documentation is lacking. I still don't fully understand the relationships between the major projects - F4PGA (is this the same as SymbiFlow?), VTR, yosys, ABC.
Ultimately I figured out how to use yosys+nextpnr so if I ever decide to dive deeper into the FPGA world, I will probably get an iCE40.
Also, is there an open-source tool for post-routing simulation? AFAIK this requires SDF annotation support which iverilog doesn't have.