kamalmostafa / minimodem

general-purpose software audio FSK modem
http://www.whence.com/minimodem
Other
854 stars 114 forks source link

Using a Goertzel filter instead of using the fft #51

Open aguaviva opened 3 years ago

aguaviva commented 3 years ago

There you go!

generating the audio:

echo “HELLO” | ./minimodem --tx --ascii --startbits 0 --stopbits 0.0 -f minimodem_hello.wav 8

decoding the audio:

~/github/minimodem/src$ ./minimodem --rx --ascii --startbits 0 --stopbits 0.0 -f minimodem_hello.wav 8
### CARRIER 8.00 @ 1585.0 Hz ###
“HELLO”

### NOCARRIER ndata=12 confidence=8899.333 ampl=2999.792 bps=8.00 (rate perfect) ###

This 'should' close https://github.com/kamalmostafa/minimodem/issues/50 although this is just a quick implementation and I am sure you will want to refactor things a big

Also, note that that Goertzel function is returning the magnitude squared, I'd need a square root but it is not really necessary.

Thanks for this project though!

parkerlreed commented 3 years ago

What's the difference between the two invocations of minimodem in your example?

aguaviva commented 3 years ago

Ops! Nothing, I pasted twice the same invocation. I edited the comment to fix that and added how I generated the audio

aguaviva commented 3 years ago

@kamalmostafa I hope you have a chance soon to look at this :)

kamalmostafa commented 3 years ago

@aguaviva Yes, your Goertzel implementation is quite interesting! I'll set aside some time to review this and respond soon.

aguaviva commented 3 years ago

@aguaviva Yes, your Goertzel implementation is quite interesting! I'll set aside some time to review this and respond soon.

Awesome! I'll be happy to answer any questions you may have :)

kamalmostafa commented 3 years ago

Thanks for this! @aguaviva please see my email reply.

Test merge here, on the tmp/aguaviva-goertzel branch: commit da66d4034ffa1d252dc8df9d44c2a60ae1928104

Merge to master pending resolution of rx "ampl=" test-case failures: https://github.com/kamalmostafa/minimodem/runs/3093947230

kamalmostafa commented 3 years ago

Hi @aguaviva -- Did you receive my email 2021-07-17 Subject: "minimodem Goertzel implementataion"? Please reply, or let me know here if you didn't.

aguaviva commented 3 years ago

hey, I am going to look at things now. Sorry for the delay.

aguaviva commented 2 years ago

hey @kamalmostafa, please consider my PR a proof of concept and feel free to refactor it in anyway you see fit.

aguaviva commented 2 years ago

Any updates on this?