Hi All, We need an API module to allow us to send data using the FSK (Frequency Shift Keying) modulation. This module is to run on a PC and may use no additional hardware except for the built in sound card. The module will allow us to convert ASCII characters to their FSK sound and play that on the PC sound card. The inputs to the module: a string of characters. The output of the module: FSK modulated audio emitted through the PC's built in sound-card. The output will be fed into a conventional FSK decoder to verify that it has encoded the characters correctly. Does anyone know if such a thing exists or do I have to code it up myself?
Is there a software FSK encoder API for PC using no addtl hardware?
Started by ●August 27, 2003
Reply by ●August 27, 20032003-08-27
Tomer wrote:> > Hi All, > > We need an API module to allow us to send data using the FSK > (Frequency Shift Keying) modulation. This module is to run on a PC and > may use no additional hardware except for the built in sound card. > > The module will allow us to convert ASCII characters to their FSK > sound and play that on the PC sound card. > > The inputs to the module: a string of characters. > The output of the module: FSK modulated audio emitted through the PC's > built in sound-card. > > The output will be fed into a conventional FSK decoder to verify that > it has encoded the characters correctly. > > Does anyone know if such a thing exists or do I have to code it up > myself?FSK what? FSK pretty much defines the layer-one, physical thingadoo being mussed about. Above that are any of a number of possibilities. A modem in 300 baud mode ( among others, for all I know ) will do this. Modems are even cheaper than soundcards. If you have to do it in software, it's pretty simple, given a couple of sampled wave files at the desired frequencies and just modulating them into.... what was that character format, again? -- Les Cargill
Reply by ●August 27, 20032003-08-27
A "conventional FSK decoder"? Well, the commonest one these days would be a GSM handset, wouldn't it? Is that what you mean? No? Perhaps you should say what you really do mean. Regards, Steve tomerp55@hotmail.com (Tomer) wrote in message news:<11d3cf88.0308271133.4b62a45e@posting.google.com>...> The output will be fed into a conventional FSK decoder to verify that > it has encoded the characters correctly. > > Does anyone know if such a thing exists or do I have to code it up > myself?
Reply by ●August 27, 20032003-08-27
Vladimir Vassilevsky wrote:> > Tomer wrote: > >>The transmission of the characters has to be at a rate of 520.83 bits >>per second. Mark frequency is 2083.3 Hz and space frequency is 1562.5 >>Hz. Mark and space time must be 1.92 milliseconds. >> > > Obviously mark is 4 times and space is 3 times bitrate, which allows for > very simple modulator and demodulator. But why such a weird bit rate?If you take 24 hours in a day and 3600 seconds in an hour, then 45e6 bits per day works out to 520.83 bits per second. Now, why 45 million bits per day??? Patience, persistence, truth, Dr. mike -- Mike Rosing www.beastrider.com BeastRider, LLC SHARC debug tools
Reply by ●August 28, 20032003-08-28
tomerp55@hotmail.com (Tomer) wrote in message news:<11d3cf88.0308271133.4b62a45e@posting.google.com>...> Hi All,> Does anyone know if such a thing exists or do I have to code it up > myself?Yes... ;-) Go to my site and look for Objective Real-Time Software on the ADSP21xx, online tutorial. It has a chapter on generating DTMF tones using a look-up table. You can use the same technique on a PC to generate arbitrary tones. Regarding FSK itself: There are many, many standards eg. Minimal Shift FSK, Dual Tone FSK, Multi Tone FSK, DTMF, RTTY and so on and many variations of each. So, you first have to read up a bit, then come back with a more specific question. Cheers, Herman http://www.AerospaceSoftware.com
Reply by ●August 28, 20032003-08-28
Les Cargill <lcargill@worldnet.att.net> wrote in message news:<3F4D1572.BEAB0607@worldnet.att.net>...> Tomer wrote: > > > > Hi All, > > > > We need an API module to allow us to send data using the FSK > > (Frequency Shift Keying) modulation. This module is to run on a PC and > > may use no additional hardware except for the built in sound card. > > > > The module will allow us to convert ASCII characters to their FSK > > sound and play that on the PC sound card. > > > > The inputs to the module: a string of characters. > > The output of the module: FSK modulated audio emitted through the PC's > > built in sound-card. > > > > The output will be fed into a conventional FSK decoder to verify that > > it has encoded the characters correctly. > > > > Does anyone know if such a thing exists or do I have to code it up > > myself? > > FSK what? FSK pretty much defines the layer-one, physical thingadoo > being mussed about. Above that are any of a number of possibilities. > > A modem in 300 baud mode ( among others, for all I know ) will do > this. Modems are even cheaper than soundcards. > > If you have to do it in software, it's pretty simple, given a > couple of sampled wave files at the desired frequencies and > just modulating them into.... what was that character format, > again?Thanks for your reply. Basically I guess I dont have all the information just yet. I do know that the FSK signal will have to adhere to the following criteria: The transmission of the characters has to be at a rate of 520.83 bits per second. Mark frequency is 2083.3 Hz and space frequency is 1562.5 Hz. Mark and space time must be 1.92 milliseconds. Characters are ASCII seven bit characters as defined in ANSI X3.4-1977 ending with an eighth null bit (either 1 or 0) to constitute a full eight-bit byte. Can I do all that on a PC soundcard with no additional hardware? I am missing a way to test that the signal I will output is correct since the target system is not available. However I thought I could find some device that will take in the FSK signal that the PC soundcard would produce and reproduce the characters. This way I will know my modulation is correct.
Reply by ●August 28, 20032003-08-28
Thanks for your reply. Basically, as I wrote in another reply on the group (and I will now repeat myself just to make sure you get all the info), I do know that the FSK signal will have to adhere to the following criteria: The transmission of the characters has to be at a rate of 520.83 bits per second. Mark frequency is 2083.3 Hz and space frequency is 1562.5 Hz. Mark and space time must be 1.92 milliseconds. Characters are ASCII seven bit characters as defined in ANSI X3.4-1977 ending with an eighth null bit (either 1 or 0) to constitute a full eight-bit byte. Now, assuming I can do the above on a PC SoundCard, I will still have to test my work. I am missing a way to test that the signal I will output is correct since the target system is not available. However I thought I could find some device that will take in the FSK signal that the PC soundcard would produce and reproduce the characters. This way I will know my modulation is correct. steveu@coppice.org (Steve Underwood) wrote in message news:<80bddbd7.0308271716.7e002600@posting.google.com>...> A "conventional FSK decoder"? Well, the commonest one these days would > be a GSM handset, wouldn't it? Is that what you mean? No? Perhaps you > should say what you really do mean. > > Regards, > Steve > > > tomerp55@hotmail.com (Tomer) wrote in message news:<11d3cf88.0308271133.4b62a45e@posting.google.com>... > > > The output will be fed into a conventional FSK decoder to verify that > > it has encoded the characters correctly. > > > > Does anyone know if such a thing exists or do I have to code it up > > myself?
Reply by ●August 28, 20032003-08-28
Tomer wrote:> > Les Cargill <lcargill@worldnet.att.net> wrote in message news:<3F4D1572.BEAB0607@worldnet.att.net>... > > Tomer wrote: > > > > > > Hi All, > > > > > > We need an API module to allow us to send data using the FSK > > > (Frequency Shift Keying) modulation. This module is to run on a PC and > > > may use no additional hardware except for the built in sound card. > > > > > > The module will allow us to convert ASCII characters to their FSK > > > sound and play that on the PC sound card. > > > > > > The inputs to the module: a string of characters. > > > The output of the module: FSK modulated audio emitted through the PC's > > > built in sound-card. > > > > > > The output will be fed into a conventional FSK decoder to verify that > > > it has encoded the characters correctly. > > > > > > Does anyone know if such a thing exists or do I have to code it up > > > myself? > > > > FSK what? FSK pretty much defines the layer-one, physical thingadoo > > being mussed about. Above that are any of a number of possibilities. > > > > A modem in 300 baud mode ( among others, for all I know ) will do > > this. Modems are even cheaper than soundcards. > > > > If you have to do it in software, it's pretty simple, given a > > couple of sampled wave files at the desired frequencies and > > just modulating them into.... what was that character format, > > again? > > Thanks for your reply. Basically I guess I dont have all the > information just yet. I do know that the FSK signal will have to > adhere to the following criteria: > > The transmission of the characters has to be at a rate of 520.83 bits > per second. Mark frequency is 2083.3 Hz and space frequency is 1562.5 > Hz.So it's Dual Tone FSK.> Mark and space time must be 1.92 milliseconds.... which is extraordinarily close to (1/520.83) :)> Characters are > ASCII seven bit characters as defined in ANSI X3.4-1977 ending with an > eighth null bit (either 1 or 0) to constitute a full eight-bit byte. >Is the eighth bit a parity bit?> Can I do all that on a PC soundcard with no additional hardware? >I'd think so. I am not current on what sort of timer support Windows has, but you'll need sub-millisecond timer resolution. You might need DMA - depends. If you're conversant with Tcl, I'd look to the SNACK toolkit to see what sorta source code you can borrow from that.> I am missing a way to test that the signal I will output is correct > since the target system is not available. However I thought I could > find some device that will take in the FSK signal that the PC > soundcard would produce and reproduce the characters. This way I will > know my modulation is correct.Unless you have some other, objectively proven receiver for this, you'll need to develop it yourself. You can use something like CoolEdit to capture the actual .wav data, but that's in essence bit-by-bit verification. The part I'm muddled about is the actual tone recognition - telling mark from space. I'm not very DSP. Thinking further, you can use CoolEdit to generate a test signal, then run that against the receiver to test the receiver. Not to stress CoolEdit too hard, I just know it'll do what you need. -- Les Cargill
Reply by ●August 28, 20032003-08-28
Tomer wrote:> > The transmission of the characters has to be at a rate of 520.83 bits > per second. Mark frequency is 2083.3 Hz and space frequency is 1562.5 > Hz. Mark and space time must be 1.92 milliseconds.Obviously mark is 4 times and space is 3 times bitrate, which allows for very simple modulator and demodulator. But why such a weird bit rate?> Characters are > ASCII seven bit characters as defined in ANSI X3.4-1977 ending with an > eighth null bit (either 1 or 0) to constitute a full eight-bit byte. > Now, assuming I can do the above on a PC SoundCard, I will still have > to test my work. I am missing a way to test that the signal I will > output is correct.You can easily modulate and demodulate this FSK with any microcontroller with comparator input. Or with PC soundcard if you like. This is a very simple task. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Reply by ●August 28, 20032003-08-28
Les Cargill wrote:> > > Can I do all that on a PC soundcard with no additional hardware? > I'd think so. I am not current on what sort of timer support > Windows has, but you'll need sub-millisecond timer resolution. > You might need DMA - depends.The Win32 wave API takes care about all timing issues. The only drawback is the buffering delay which should be at least 100ms to get a reliable work. I didn't try Windows DirectSound or WDM API. It is declared that you can have the delay as low as 10ms in those modes. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com