More work on README

This commit is contained in:
Christophe Jacquet 2014-04-06 20:09:16 +02:00
parent e474651aee
commit a7a9329ceb
1 changed files with 5 additions and 3 deletions

View File

@ -38,6 +38,8 @@ The more general syntax for running Pi-FM-RDS is as follows:
pi_fm_rds [-freq freq] [-wav file.wav] [-ppm ppm_error] [-pi pi_code] [-ps ps_text] [-rt rt_text] pi_fm_rds [-freq freq] [-wav file.wav] [-ppm ppm_error] [-pi pi_code] [-ps ps_text] [-rt rt_text]
``` ```
All arguments are optional:
* `-freq` specifies a frequency (in MHz). Example: `-freq 87.5`. * `-freq` specifies a frequency (in MHz). Example: `-freq 87.5`.
* `-wav` specifies a WAV file to play. It must be sampled at 228 kHz, but no frequency above 18 kHz must be present. Example: `-wav sound.wav`. * `-wav` specifies a WAV file to play. It must be sampled at 228 kHz, but no frequency above 18 kHz must be present. Example: `-wav sound.wav`.
* `-ppm` specifies your Raspberry Pi's oscillator error in parts per million (ppm), see below. * `-ppm` specifies your Raspberry Pi's oscillator error in parts per million (ppm), see below.
@ -50,14 +52,14 @@ pi_fm_rds [-freq freq] [-wav file.wav] [-ppm ppm_error] [-pi pi_code] [-ps ps_te
The RDS standards states that the error for the 57 kHz subcarrier must be less than ± 6 Hz, i.e. less than 105 ppm (parts per million). The Raspberry Pi's oscillator error may be above this figure. That is where the `-ppm` parameter comes into play: you specify your Pi's error and Pi-FM-RDS adjusts the clock dividers accordingly. The RDS standards states that the error for the 57 kHz subcarrier must be less than ± 6 Hz, i.e. less than 105 ppm (parts per million). The Raspberry Pi's oscillator error may be above this figure. That is where the `-ppm` parameter comes into play: you specify your Pi's error and Pi-FM-RDS adjusts the clock dividers accordingly.
In practice, I found that Pi-FM-RDS works okay even without using the `-ppm` parameter. In practice, I found that Pi-FM-RDS works okay even without using the `-ppm` parameter. I suppose the receiver are more tolerant than the RDS spec.
One way to measure the ppm error is to play the `pulses.wav` file: it will play a pulse for precisely 1 second, then play a 1-second silence, and so on. Record the audio output from a radio with a good audio card. Say you sample at 44.1 kHz. Measure 10 intervals. With Audacity for instance, measure determine the number of samples of these 10 intervals: it should be 441,000 samples. With my Pi, I found 441,132 samples. Therefore, my ppm error is (441132-441000)/441000 = 299 ppm, *assuming that my sampling device has no clock error...* One way to measure the ppm error is to play the `pulses.wav` file: it will play a pulse for precisely 1 second, then play a 1-second silence, and so on. Record the audio output from a radio with a good audio card. Say you sample at 44.1 kHz. Measure 10 intervals. Using [Audacity](http://audacity.sourceforge.net/) for measure determine the number of samples of these 10 intervals: in the absence of clock error, it should be 441,000 samples. With my Pi, I found 441,132 samples. Therefore, my ppm error is (441132-441000)/441000 = 299 ppm, *assuming that my sampling device has no clock error...*
## Diclaimer ## Diclaimer
Never use this to transmit VHF-FM data through an antenna, as it is Never use this program to transmit VHF-FM data through an antenna, as it is
illegal in most countries. This code is for testing purposes only. illegal in most countries. This code is for testing purposes only.
Always connect a shielded transmission line from the RaspberryPi directly Always connect a shielded transmission line from the RaspberryPi directly
to a radio receiver, so as *not* to emit radio waves. to a radio receiver, so as *not* to emit radio waves.