DSPRelated.com
Forums

Bell 103 / v.21 modem emulation software (FSK modutaion with sound card or WAVE file output under DOS or Win32)

Started by Daktaklakpak October 15, 2006
I'm looking for some DOS/Win32 software that will emulate a Bell 103 and
ITU-T v.21 modem that uses a WAVE format file or a computer's sound card
for the modulation/demodulation audio signal output/input.

These modems use AFSK modulation at 300 baud and 300 bps, at the following
frequencies (in Hertz):

Bell 103
  Originate
    1170 = Carrier
    1070 = Space (Carrier - 100Hz)
    1270 = Mark (Carrier + 100Hz)
  Answer
    2125 = Carrier
    2025 = Space (Carrier - 100Hz)
    2225 = Mark (Carrier + 100Hz)

ITU-T v.21
  Originate
    1080 = Carrier
    1180 = Space (Carrier + 100Hz)
    980 = Mark (Carrier - 100Hz)
  Answer
    1750 = Carrier
    1850 = Space (Carrier + 100Hz)
    1650 = Mark (Carrier - 100Hz)

While analyzing recorded Bell 103 transmissions spectrally, I haven't been
able to find the carrier frequency actually being used (seems to be using
the Mark frequency for carrier detection at a terminal), but it's listed
here because it is found in some specification documents.

A full-fledged terminal package that does Data and Text modes outputting
sound card audio and WAVE files would be great, but all I really need is
Bell 103 modulation only (Answer and Originate), using an 8-bit ASCII text
file as input and outputting a WAVE format file of at least 8-bit Mono @
8000Hz, and preferably 16-bit Mono @ 44100Hz. This amounts to a converter
type program (Text File -> Bell 103 Audio).

There is a driver similar to this called "soundmodem" (easily found with a
search engine), but unfortunately it was designed for packet radio
transmission and only seems to work with some sort of modified terminal
emulator for this purpose. There might be some way to interface an
existing DOS/Win32 terminal emulator with its DLL, but I haven't
discovered one yet.

Any help in this matter would be appreciated.



Daktaklakpak wrote:

   ...

> These modems use AFSK modulation at 300 baud and 300 bps, at the following > frequencies (in Hertz): > > Bell 103 > Originate > 1170 = Carrier > 1070 = Space (Carrier - 100Hz) > 1270 = Mark (Carrier + 100Hz) > Answer > 2125 = Carrier > 2025 = Space (Carrier - 100Hz) > 2225 = Mark (Carrier + 100Hz) > > ITU-T v.21 > Originate > 1080 = Carrier > 1180 = Space (Carrier + 100Hz) > 980 = Mark (Carrier - 100Hz) > Answer > 1750 = Carrier > 1850 = Space (Carrier + 100Hz) > 1650 = Mark (Carrier - 100Hz)
... I'm confused by your numbers. How does the carrier fit in? Being extensions of a current-loop standard, these standards all run "mark idle" and the signal has only two states, mark and space. (Extended space is "break", the equivalent of breaking the current loop.) Jerry -- "The rights of the best of men are secured only as the rights of the vilest and most abhorrent are protected." - Chief Justice Charles Evans Hughes, 1927 ���������������������������������������������������������������������
Jerry Avins wrote:
> Daktaklakpak wrote: > > ... > >> These modems use AFSK modulation at 300 baud and 300 bps, at the >> following >> frequencies (in Hertz): >> >> Bell 103 >> Originate >> 1170 = Carrier >> 1070 = Space (Carrier - 100Hz) >> 1270 = Mark (Carrier + 100Hz) >> Answer >> 2125 = Carrier >> 2025 = Space (Carrier - 100Hz) >> 2225 = Mark (Carrier + 100Hz) >> >> ITU-T v.21 >> Originate >> 1080 = Carrier >> 1180 = Space (Carrier + 100Hz) >> 980 = Mark (Carrier - 100Hz) >> Answer >> 1750 = Carrier >> 1850 = Space (Carrier + 100Hz) >> 1650 = Mark (Carrier - 100Hz) > > > ... > > I'm confused by your numbers. How does the carrier fit in? Being > extensions of a current-loop standard, these standards all run "mark > idle" and the signal has only two states, mark and space. (Extended > space is "break", the equivalent of breaking the current loop.) > > Jerry
Wouldn't that be covered by Daktaklakpak's observation that: "While analyzing recorded Bell 103 transmissions spectrally, I haven't been able to find the carrier frequency actually being used (seems to be using the Mark frequency for carrier detection at a terminal), but it's listed here because it is found in some specification documents." ?
Daktaklakpak wrote:

> I'm looking for some DOS/Win32 software that will emulate a Bell 103 and > ITU-T v.21 modem that uses a WAVE format file or a computer's sound card > for the modulation/demodulation audio signal output/input. > > These modems use AFSK modulation at 300 baud and 300 bps, at the following > frequencies (in Hertz): > > [SNIP] > > There is a driver similar to this called "soundmodem" (easily found with a > search engine), but unfortunately it was designed for packet radio > transmission and only seems to work with some sort of modified terminal > emulator for this purpose. There might be some way to interface an > existing DOS/Win32 terminal emulator with its DLL, but I haven't > discovered one yet. > > Any help in this matter would be appreciated. >
You might also wish to search for "winmodem" [term covers multitude of 'sins' ;] or "software modem" [possibly more useful] IIRC software modems existed back in days of "8 bit" S-100 computers. So when doing Google search you might wish to *exclude* "Win", "Windows" or "Linux".
Jerry Avins wrote:

(snip)

>> Bell 103 >> Originate >> 1170 = Carrier >> 1070 = Space (Carrier - 100Hz) >> 1270 = Mark (Carrier + 100Hz)
(snip)
> I'm confused by your numbers. How does the carrier fit in? Being > extensions of a current-loop standard, these standards all run "mark > idle" and the signal has only two states, mark and space. (Extended > space is "break", the equivalent of breaking the current loop.)
It makes a little sense as the center frequency, with +/- 100Hz variation. It would, for example, be the center frequency for a bandpass filter or for a PLL demodulator. Other than that, I agree that it would normally not be mentioned, but would be useful for someone designing a modem. -- glen
Jerry Avins wrote:
>I'm confused by your numbers. How does the carrier fit in?
Please refer to the the section concerning spectral analysis (right after the frequency listing) in the original post and/or Richard Owlett's response, "Wouldn't that be covered by Daktaklakpak's observation..." :) Clarification and Example: The term "carrier" seems to be used in the ITU-T's Recommendation v.21 (Blue Book) in order to describe the AFSK signal in terms of the Mark and Space frequencies, using "+/- 100 Hz" as a reference. I assume this was to allow the presentation of the document to proceed logically in accord with the related definition/standard. and as glen herrmannsfeldt wrote:
>It makes a little sense as the center frequency... >...for a bandpass filter or for a PLL demodulator
--- Richard Owlett wrote:
>You might also wish to search for...
Indeed, I scoured the web for a week looking for various implementations before posting here. The most common found were *nix versions, including one for an SGI Indy (huh? had to research that one). Even with source code, they communicate with drivers for those systems, or sometimes directly with specific hardware, making a difficult translation to DOS/Win32 architecture, at least for me. Thanks for the suggestion, I did come across some new information because of it. Figured it was worth a shot, so I put in your *exact* search criteria for grins, and whadayaknow? :) --- Another request: If anyone is proficient with MatLab/Simulink, I've been told that a Simulink model could accomplish this task. I failed to find any implementation on this platform either. Although, a lot of "close, but no cigar" models were found, I couldn't find any AFSK models, emphasis on the A (Audio) *sigh*, but this does look like a very promising solution. Unfortunately I'm not versed in MatLab coding, but have been offered access to an installation, so if anyone knows where I can find something like this (or could make a model :), it might solve my problem. Avowal! Daktaklakpak
Daktaklakpak wrote:
> Jerry Avins wrote: >> I'm confused by your numbers. How does the carrier fit in? > > Please refer to the the section concerning spectral analysis (right after > the frequency listing) in the original post and/or Richard Owlett's > response, "Wouldn't that be covered by Daktaklakpak's observation..." :) > > Clarification and Example: The term "carrier" seems to be used in the > ITU-T's Recommendation v.21 (Blue Book) in order to describe the AFSK > signal in terms of the Mark and Space frequencies, using "+/- 100 Hz" as a > reference. I assume this was to allow the presentation of the document to > proceed logically in accord with the related definition/standard.
Thanks for the explanation. Sometimes I'm a little slow. ... Jerry -- "The rights of the best of men are secured only as the rights of the vilest and most abhorrent are protected." - Chief Justice Charles Evans Hughes, 1927 ���������������������������������������������������������������������

Daktaklakpak wrote:


> Clarification and Example: The term "carrier" seems to be used in the > ITU-T's Recommendation v.21 (Blue Book) in order to describe the AFSK > signal in terms of the Mark and Space frequencies, using "+/- 100 Hz" as a > reference. I assume this was to allow the presentation of the document to > proceed logically in accord with the related definition/standard. > > Indeed, I scoured the web for a week looking for various implementations > before posting here. The most common found were *nix versions, including > one for an SGI Indy (huh? had to research that one). Even with source > code, they communicate with drivers for those systems, or sometimes > directly with specific hardware, making a difficult translation to > DOS/Win32 architecture, at least for me.
Hello Daktaklakpak, You can have the V.21 or Bell 103 modem implementation for PC using the soundcard (C++ source, Win32). This is a commertial product. If you are interested, the contact email is on our web site. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Vladimir Vassilevsky wrote:
>...This is a commertial product.
Vlad, After browsing the Comp.DSP archives for a while and seeing the various solutions you have offered (mostly hinting at your services), I was wondering if you would chime in here, heh heh. :) Sadly, I am what you would call a "starving artist", so I cannot offer you any money until I win the lottery or strike oil while mining for diamonds in my backyard. I guess I could have mentioned that this project is strictly a hobby and related specifically to a musical project. If, however, you are feeling charitable and would like to make a contribution to all of humanity by supporting the arts, feel free to let me know! Avowal! Daktaklakpak

Daktaklakpak wrote:

> > Vlad, > > After browsing the Comp.DSP archives for a while and seeing the various > solutions you have offered (mostly hinting at your services), I was > wondering if you would chime in here, heh heh. :)
Beleive me, I am worth every penny :)
> Sadly, I am what you would call a "starving artist", so I cannot offer you > any money until I win the lottery or strike oil while mining for diamonds > in my backyard. I guess I could have mentioned that this project is > strictly a hobby and related specifically to a musical project. If, > however, you are feeling charitable and would like to make a contribution > to all of humanity by supporting the arts, feel free to let me know!
In the attic, I have the old project which is similar to what you are looking for. I can do a favor to humanity, however 1) you have to adapt everything yourself 2) what is your real name and email? Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com