Forums

FSK Modulation/ demodulation

Started by Somia May 30, 2005
Hi

I have to communicate with telephone which is sending us data that is
in voice band and FSK
modulated. I dont have an fsk modem so i am trying to do FSK
demodulation in software. I'll record that data in a wave file and then
analyise it. i dont have any signal processing background and i am
stuck in this problem. please help

according to the standard:
Mark is represented by 1300Hz, space is represented by 2100Hz and baud
rate is 1200.

using tapi I are sampling the signal at 8000 samples per second, PCM
format.

It means that we have 8000/1200 = 6.66 samples to check for mark or
space

now 1300/1200 = 1.08 and 2100/1200 = 1.72

means that I have to check those 6.66 samples for 1.08 cycles or 1.72
cycles.
if the number of cycles is 1.08 it means it was a mark and if 1.72 it
means it was a space

how to do this ?
it wont be quite much of a problem if it were 6 samples to check for 1
cycle or 6 samples to check for 2 cycles. The decimal values create the
actual confusion.

For Generating Signal:
I can generate samples for signal with 1300Hz frequency with 8000
samples per second like this

F1 = 1300
For  I = 0 to 1, step 1/8000
s(i) = cos (2 * pi * F1 * I );

this generates 8000 samples for 1300Hz frequency, i.e tone 1
Samples for tone 0 can also be generated in the similar manner.
Now I want to generate signal with both tones. Let say alternating 1s
and 0s. and still I have to keep sample rate 8000. Means that I'll be
having 6.66 samples to represent one bit.
 
How could this be done ?
 
Thanks in advance.
 
Somia.

Just off the top of my head....I would slid a six sample data window along
the length of your .wav file. In one arm find the magnitude of the
sine/cosine of (2*pi*1300*(N*1/8000)) and in the other arm the magnitude of
the sine/cosine of (2*pi*2100*(N*1/8000)). Then the arctan of both arms will
point to a mark or space.

Cheers,
Thomas

"Somia" <somia_iqbal@yahoo.com> wrote in message
news:1117456077.597383.302630@g14g2000cwa.googlegroups.com...
> Hi > > I have to communicate with telephone which is sending us data that is > in voice band and FSK > modulated. I dont have an fsk modem so i am trying to do FSK > demodulation in software. I'll record that data in a wave file and then > analyise it. i dont have any signal processing background and i am > stuck in this problem. please help > > according to the standard: > Mark is represented by 1300Hz, space is represented by 2100Hz and baud > rate is 1200. > > using tapi I are sampling the signal at 8000 samples per second, PCM > format. > > It means that we have 8000/1200 = 6.66 samples to check for mark or > space > > now 1300/1200 = 1.08 and 2100/1200 = 1.72 > > means that I have to check those 6.66 samples for 1.08 cycles or 1.72 > cycles. > if the number of cycles is 1.08 it means it was a mark and if 1.72 it > means it was a space > > how to do this ? > it wont be quite much of a problem if it were 6 samples to check for 1 > cycle or 6 samples to check for 2 cycles. The decimal values create the > actual confusion. > > For Generating Signal: > I can generate samples for signal with 1300Hz frequency with 8000 > samples per second like this > > F1 = 1300 > For I = 0 to 1, step 1/8000 > s(i) = cos (2 * pi * F1 * I ); > > this generates 8000 samples for 1300Hz frequency, i.e tone 1 > Samples for tone 0 can also be generated in the similar manner. > Now I want to generate signal with both tones. Let say alternating 1s > and 0s. and still I have to keep sample rate 8000. Means that I'll be > having 6.66 samples to represent one bit. > > How could this be done ? > > Thanks in advance. > > Somia. >
i will get u the exact method and details later. but , if remember
properly, u have to multiply the fsk o/p with either 1300 Hz or 2100
Hz. then just integrate the waveform. keep a threshold of 0. u will get
the decoded o/p.