Home > Back-end >  How to do a signal generator with sound card?
How to do a signal generator with sound card?

Time:10-09

I want to have a program, through the sound card to generate sine wave, the size and frequency of the sine wave can be adjusted, through the lead can be output to my instrument (instrument can draw graphics, through graphical instrument is known to the size of the input line is normal), could you tell me how to do such a is equal to the signal generator software?

CodePudding user response:

Sound card is analog signal output, digital signal, sine wave is suggested using a serial port output directly

CodePudding user response:

reference 1st floor zhiyuandigital response:
sound card is analog signal output, the serial digital signal, sine wave is recommended directly output


Is to want to put the analog signal to the instrument,

CodePudding user response:

I think the sound card is not enough, because of the sound card mainly for voice service, relatively low frequencies are
If you need the high frequency output, or recommend the use of professional DA card

CodePudding user response:

reference behard reply: 3/f
I think the sound card is not enough, because of the sound card mainly for voice service, relatively low frequencies are
If need high frequency output, or recommend the use of professional DA card


I need the frequency of 10 hz

CodePudding user response:

10 hz but people can't hear the bass oh, doubt sound card whether to have this ability,

CodePudding user response:

10 KHZ is a bit of trouble, general audio work tend to be 44 KHZ, a cycle and there were only four points,

CodePudding user response:

Series of 10 Hz can use Waveform Functions provides function to
Check the waveOutWrite function help

CodePudding user response:

refer to the eighth floor behard response:
10 Hz can use Waveform Functions provides a series of Functions to
Check the waveOutWrite function with the help of


Thank you, I'll find the waveOutWrite help

CodePudding user response:

10 KHZ is a little bit of a problem

CodePudding user response:

I send a writing class, do the 7 years ago, at that time I haven't break up with his girlfriend, also don't know now wife,
 
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# # ifndef TAudioIOH
# define TAudioIOH
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# include "is the Main. H"
# include & lt; Mmsystem. H>
//this class is applied to sound card two channel output, used in two way power switch control
The class TAudioIO
{
Private:
Byte * _Output;//output signal
WAVEFORMATEX _WaveFormatEx;
HWAVEOUT _hWaveOut;
WAVEHDR _lpHdrOut;
Public:
Byte * _Input;//input signal
Public:
TAudioIO (void);
~ TAudioIO (void);
Void AudioOutStart (void);
Void AudioOutStop (void);
Void SetRCOutput (bool);//set the right channel output data, the parameter to true for high level, whereas for the low level
Void SetLCOutput (bool);//set the left channel output data, the parameter to true for high level, whereas for the low level
};
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# endif


//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
# pragma hdrstop
# include "TAudioIO. H"
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# pragma package (smart_init)
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
TAudioIO: : TAudioIO (void)
{
_WaveFormatEx. WFormatTag=WAVE_FORMAT_PCM;
_WaveFormatEx. NChannels=2;
_WaveFormatEx. WBitsPerSample=8;
_WaveFormatEx. CbSize=0;
_WaveFormatEx. NSamplesPerSec=8000;
_WaveFormatEx. NAvgBytesPerSec=_WaveFormatEx. NChannels * _WaveFormatEx nSamplesPerSec * _WaveFormatEx wBitsPerSample/8;
_WaveFormatEx. NBlockAlign=_WaveFormatEx. NChannels * _WaveFormatEx wBitsPerSample/8;
_Output=new Byte [_WaveFormatEx nSamplesPerSec * 2];
Memset (_Output, 0, _WaveFormatEx nSamplesPerSec * 2);
_lpHdrOut lpData=https://bbs.csdn.net/topics/_Output;
_lpHdrOut. DwBufferLength=_WaveFormatEx. NSamplesPerSec * _WaveFormatEx nBlockAlign;
_lpHdrOut. DwFlags=WHDR_BEGINLOOP | WHDR_ENDLOOP;
_lpHdrOut. DwLoops=0 XFFFFFFFF;
_hWaveOut=NULL;
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
TAudioIO: : ~ TAudioIO (void)
{
AudioOutStop ();
The delete [] _Output;
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void TAudioIO: : AudioOutStart (void)
{
WaveOutOpen (& amp; _hWaveOut WAVE_MAPPER, & amp; _WaveFormatEx, 0, 0);
WaveOutPrepareHeader (_hWaveOut, & amp; _lpHdrOut, sizeof (WAVEHDR));
WaveOutWrite (_hWaveOut, & amp; _lpHdrOut, sizeof (WAVEHDR));
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void TAudioIO: : AudioOutStop (void)
{
WaveOutReset (_hWaveOut);
WaveOutClose (_hWaveOut);
WaveOutUnprepareHeader (_hWaveOut, & amp; _lpHdrOut, sizeof (WAVEHDR));
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void TAudioIO: : SetRCOutput (bool VTag)
{
If (VTag==true)
{
For (unsigned int I=0; i<_WaveFormatEx. NSamplesPerSec; I++)
{
_Output [I * 2 + 1)=255;
}
}
The else
{
For (unsigned int I=0; i<_WaveFormatEx. NSamplesPerSec; I++)
{
_Output [I * 2 + 1)=0.
}
}
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void TAudioIO: : SetLCOutput (bool VTag)
{
If (VTag==true)
{
For (unsigned int I=0; i<_WaveFormatEx. NSamplesPerSec; I++)
{
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
  • Related