https://github.com/nmrr/dcf77-decoder
A DCF77 decoder written in C++
https://github.com/nmrr/dcf77-decoder
dcf77 sdr signal-processing
Last synced: 5 months ago
JSON representation
A DCF77 decoder written in C++
- Host: GitHub
- URL: https://github.com/nmrr/dcf77-decoder
- Owner: nmrr
- License: mit
- Created: 2022-01-01T20:58:06.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-01-08T23:06:38.000Z (over 4 years ago)
- Last Synced: 2025-01-23T12:32:16.370Z (over 1 year ago)
- Topics: dcf77, sdr, signal-processing
- Language: C++
- Homepage:
- Size: 10.9 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dcf77-decoder
[DCF77](https://en.wikipedia.org/wiki/DCF77) is a German longwave station that transmits 24/7 on 77.5 kHz date and time.
Input data must be a **float32 single channel wave file**. Sample rate value is not critical. Data must be clean else the decoder won't work : You can use **Audacity** and use **Limiter** effect to remove spikes.
If you haven't a SDR that is capable to go down to 77.5 kHz, you can use the websdr of [University of Twente](https://www.utwente.nl/en/) and use the recording function : http://websdr.ewi.utwente.nl:8901/
This program takes 2 arguments :
* Input .wav location
* "1" to show decoded bits during decoding pass (optional, is disabled by default)
Build the program :
```
g++ -Wall -pipe -Ofast main.cpp -o dcf77decoder
```
Run the program :
```
./dcf77decoder dcf77.wav
```
Output :
```
New minute detected
2022/01/01 (Saturday) - 20:38 UTC+1
New minute detected
2022/01/01 (Saturday) - 20:39 UTC+1
New minute detected
2022/01/01 (Saturday) - 20:40 UTC+1
New minute detected
2022/01/01 (Saturday) - 20:41 UTC+1
New minute detected
2022/01/01 (Saturday) - 20:42 UTC+1
New minute detected
2022/01/01 (Saturday) - 20:43 UTC+1
New minute detected
```
With displaying of decoded bits, output will be :
```
New minute detected
[0]=0, [1]=0, [2]=1, [3]=0, [4]=1, [5]=1, [6]=1, [7]=1, [8]=1, [9]=0, [10]=0, [11]=0, [12]=0, [13]=0, [14]=0, [15]=0, [16]=0, [17]=0, [18]=1, [19]=0, [20]=1, [21]=0, [22]=0, [23]=0, [24]=1, [25]=1, [26]=1, [27]=0, [28]=1, [29]=0, [30]=0, [31]=0, [32]=0, [33]=0, [34]=1, [35]=1, [36]=1, [37]=0, [38]=0, [39]=0, [40]=0, [41]=0, [42]=0, [43]=1, [44]=1, [45]=1, [46]=0, [47]=0, [48]=0, [49]=0, [50]=0, [51]=1, [52]=0, [53]=0, [54]=0, [55]=1, [56]=0, [57]=0, [58]=0
2022/01/01 (Saturday) - 20:38 UTC+1
New minute detected
[0]=0, [1]=0, [2]=1, [3]=1, [4]=1, [5]=1, [6]=1, [7]=0, [8]=0, [9]=0, [10]=1, [11]=1, [12]=1, [13]=1, [14]=1, [15]=0, [16]=0, [17]=0, [18]=1, [19]=0, [20]=1, [21]=1, [22]=0, [23]=0, [24]=1, [25]=1, [26]=1, [27]=0, [28]=0, [29]=0, [30]=0, [31]=0, [32]=0, [33]=0, [34]=1, [35]=1, [36]=1, [37]=0, [38]=0, [39]=0, [40]=0, [41]=0, [42]=0, [43]=1, [44]=1, [45]=1, [46]=0, [47]=0, [48]=0, [49]=0, [50]=0, [51]=1, [52]=0, [53]=0, [54]=0, [55]=1, [56]=0, [57]=0, [58]=0
2022/01/01 (Saturday) - 20:39 UTC+1
[...]
```