Products > Test Equipment

Question: Cheap pure sine wave genertor 1khz?

<< < (17/19) > >>

scopeman:
Have you seen this? Looks like a great start to me:

https://www.romanblack.com/onesec/Sine1kHz.htm

Sam
W3OHM

jonpaul:
Jim Williams 1970s app notes from National Semiconductor and Linear Technology

j

scopeman:
Looks like this is the ticket:

Available in 1KHz -155 to -160dB Distortion level. A 10KHz version is slightly higher.

https://viccc42.wixsite.com/uld-audio

Sam

Grandchuck:
There is also this:  https://www.akitika.com/1kHzOscillator.html

I have this one and it works well; however to verify its extremely low distortion specifications is a bit beyond my current setup.  I am able (with REW and a Focusrite Scarlet Solo) to approach verifying that level of performance.

pandy:
If someone is interested then i've attached file (due limitations of upload extension is hex but in fact this is bin file with content of the 10 sine periods coded by delta sigma modulator like DSD) - file is small - 8192 bytes - technically it can be stored in some memory and after conversion from parallel to serial used to recreate sine with high quality - target sample rate should be around 6.5MHz to get 1kHz.
Signal should have around 160dB SNR but everything depends on power supply and remaining circuitry. Probably small (8 pin AVR like?) uC with SPI should be able to play such sine.

To generate file i used SoX from https://audiodigitale.eu/repo/sox/ - this SoX has added DSD converter, bellow commands i've used to create signal:


--- Code: ---@sox --multi-threaded --buffer 131072 -S -V -D -r 1024 -t raw -e unsigned-integer -c 1 -b 32 -n sine_period.raw synth 1 sine 10 gain -n -0.0021125518979949800 stats stat
--- End code ---
this one create 1024 samples of the sinewave (10 periods) as 32 bit PCM


--- Code: ---@sox --multi-threaded --buffer 131072 -S -V -D -r 44100 -t raw -e unsigned-integer -c 1 -b 32 sine_period.raw sine_period.wav
--- End code ---
this one read previously created 32 bit PCM sinewave and store it as wav - this is optional step - wav is widely supported so generated sinewave can be easily inspected with help of the common audio editor


--- Code: ---@sox --multi-threaded --buffer 131072 -S -V -D -r 44100 -t raw -e unsigned-integer -c 1 -b 32 sine_period.raw sine_period.dat
--- End code ---
another optional step - 32 PCM is converted to text file so it can be easily imported to for example spreadsheet


--- Code: ---@sox --multi-threaded --buffer 131072 -S -V -D -r 44100 -t raw -e unsigned-integer -c 1 -b 32 sine_period.raw -t raw -e unsigned-integer -c 1 -b 8 sine_pdm.raw rate -s -a 2822400 sdm -f sdm-8
--- End code ---
another optional step - delta sigma bitstream is stored as bytes so it can be easily imported to common sample editor as normal 8 bit signal and later for example filtered to recreate sinewave


--- Code: ---@sox --multi-threaded --buffer 131072 -S -V -D -r 44100 -t raw -e unsigned-integer -c 1 -b 32 sine_period.raw sine_pdm.dat rate -s -a 2822400 sdm -f sdm-8
--- End code ---
optional - delta sigma bitstream is created as text file so it can be imported to for example spreadsheet


--- Code: ---@sox --multi-threaded --buffer 131072 -S -V -D -r 44100 -t raw -e unsigned-integer -c 1 -b 32 sine_period.raw sine_pdm.dff rate -s -a 2822400 sdm -f sdm-8
--- End code ---

This one is non optional - delta sigma stream is created from 32 bit PCM and stored as DSD DFF file - after removing header (126 bytes) attached sine_pdm.bin was created

To remove 126 bytes header i use small but nice hexeditor called XVI32 http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm
bellow script for hexeditor to cut first 126 bytes

--- Code: ---ADR 0
DEL 126
EXIT
--- End code ---

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod