demantz / RFAnalyzer

Spectrum Analyzer for Android using the HackRF
GNU General Public License v2.0
869 stars 206 forks source link

FMw #17

Open aneitzel opened 9 years ago

aneitzel commented 9 years ago

Hi Dennis,

FMw is limited to minimum bandwith of 100khz. In some situations (noisy signal in near of) it would helpful to use a lower bandwith. Can you change it to 50khz?

Also i suggest to change modulationtypes in menue to AM, FMn, FMw, LSB, USB. Its the normal wording of it and used all other. Fot HamRadio operators CW would also great and i guess it dont need lot work to implement CW since SSB is working already.

regards André

demantz commented 9 years ago

Hi André,

I will target the filter widths of the demodulation after I finish my DSP library written in renderscript. Right now the filters are really bad (e.g. if you set the bandwidth for FMw to 100khz the attenuation in the stop band is only around 20dB...). The only way to fix all these issues is by implementing an FIR filter that performs well on these mobile devices.

However, thanks for this hint! I guess I also vary the max. deviation (right now: 75kHz) used for the FM demodulation if I lower the bandwidth to 50kHz?

Regarding CW: Someone else already contacted me about this. I'm no Ham operator and I have a hard time to understand the difference between SSB and CW.. Could you point me to some good literature or websites that could help me with this? Again, this will have to wait until the DSP library is done..

Cheers, Dennis

aneitzel commented 9 years ago

A CW signal is only a carrier which will off,on . There is no problem to receive CW in LSB or USB, but you need to lower the bandwith of the signalfilter. On my HAM receivers a typical CW-filter will around 100-200hz wide. You need it because often a lot of stations are in a small frequency band and the signals needs to be seperated. With a sharp filter you are able to seperate the station/frequency you need. Maybe its a little bit difficult to work with such small filters on the RFanalyzer touch-GUI (you need definitely to zoom in to set filter on a choosen signal), but anyway i found a good and dirty description of transceiving CW on the net:

"A SSB signal consists of either the upper or lower sideband(s) centered around a "carrier" frequency that is has been "removed." Injecting a single audio tone into one of the sidebands results in a single tone transmitted, thus a constant "carrier" at a single frequency. For all intended purposes, it IS a "CW" signal, removed from the original "carrier" frequency by the frequency of the audio signal. (Thus, if the "carrier" is set to 7.050 MHz, and an audio tone of 1000 Hz is used, the actual transmit frequency would be either 7.049 MHz or 7.051 MHz, depending upon which sideband was used."

And maybe helpful ressources: ----> Simple CW Receiver with GNU Radio http://www.oz9aec.net/index.php/gnu-radio-blog/315-simple-cw-receiver-with-gnu-radio

----> HackRF, pt 2 - GNU Radio Companion and Practical Sigint http://blog.kismetwireless.net/2013/08/hackrf-pt-2-gnuradio-companion-and.html

----> Sample file for testing (6. CW at 441.140 MHz) : https://github.com/argilo/sdr-examples multi_tx.grc & multi_tx.py

Also you can take a look in SDR# for windows, it has CW-support.

Hope it help you. Regards André

aneitzel commented 9 years ago

To hear it LIVE on shortwave, you can use: http://websdr.ewi.utwente.nl:8901/

CW is the same like LSB, but with very low filter bandwith. Play around and you will understand what i mean ;-)

demantz commented 9 years ago

wow thanks! this is excellent information ;) I think I understand what I have to do now.

But definitely has to wait until my DSP library is done since I need very sharp filter for this..

Thanks a lot ;)