|
|||||||
| Home | Forums | Rules | Articles | Store | Gallery | Blogs | Register | Donations | FAQ | Calendar | Search | Today's Posts | Mark Forums Read | Search |
| Digital Source Digital Players and Recorders: CD , SACD , Tape, Memory Card, etc. |
|
Please consider donating to help us continue to serve you.
Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving |
|
![]() |
|
|
Thread Tools | Search this Thread |
|
|
#1 | |
|
diyAudio Member
Join Date: Feb 2011
|
I’d very much like to have an audio file based on Julian Dunn’s exact description for jitter testing (http://www.nanophon.com/audio/diagnose.pdf). As far as I know this file isn’t available for downloading. I’ve come to understand that such a signal would be possible to create with a program like MATLAB. However after some intense browsing a came to the conclusion that the scripting is beyond me. I’ve copied the original explanation from Dunn’s paper below. Maybe somebody is willing to figure it out.
Kind regards, Merlijn Quote:
|
|
|
|
|
#2 |
|
Banned
|
What do you want it as? A .wav file? Of what duration?
I haven't written a file from code probably since I wrote C under DOS, so it'll probably not arrive until tomorrow, unless somebody can write it off the top of their head. w |
|
|
|
#3 |
|
Banned
|
OK, here's a zip file (down at the bottom), it contains a file called jitter.exe. If you run it it will ask you to press a key to start, it takes a while to run, then it'll ask you to press a key again to indicate that it's done.
It'll create a file in the same directory, jitter.wav, of 17,280,044 bytes, the .wav header and one minute of stereo sound @ 48ksamples, 24 bit resolution. I've looked at the file with a hex editor, it looks OK to me, there's a mixture of Big- and Little-endian data in there, God knows what Microsoft were up to. Here's the code, it compiles under Microsoft QC25, if there are any problems you can look and see if you can see any errors, I haven't attempted to debug the output in any way apart from look at it in the hex editor, I haven't tried to run it. /*******************************************\ * jitter.c * * 14/02/2011 * * wakibaki * \*******************************************/ #include <stdio.h> #include <io.h> #include <fcntl.h> #include <ctype.h> void main(); void main() { FILE *fp; long length, fileptr; unsigned char d; int i; printf("\jitter\n\n"); printf("Press a key to continue...\n"); getch(); length=15000; if((fp=fopen("jitter.wav","wb"))!=NULL){ d='R'; /* Chunk ID*/ fputc(d,fp); d='I'; fputc(d,fp); d='F'; fputc(d,fp); d='F'; fputc(d,fp); d=0x24; /* Chunk Size, 36+No of samples */ fputc(d,fp); d=0xAC; fputc(d,fp); d=0x07; fputc(d,fp); d=0x01; fputc(d,fp); d='W'; /* Format */ fputc(d,fp); d='A'; fputc(d,fp); d='V'; fputc(d,fp); d='E'; fputc(d,fp); d='f'; /* SubChunk 1 ID*/ fputc(d,fp); d='m'; fputc(d,fp); d='t'; fputc(d,fp); d=' '; fputc(d,fp); d=0x10; /* SubChunk 1 size */ fputc(d,fp); d=0x00; fputc(d,fp); d=0x00; fputc(d,fp); d=0x00; fputc(d,fp); d=0x01; /* Audio Format*/ fputc(d,fp); d=0x00; fputc(d,fp); d=0x02; /* MumChannels */ fputc(d,fp); d=0x00; fputc(d,fp); d=0x80; /* Sample rate */ fputc(d,fp); d=0xBB; fputc(d,fp); d=0x00; fputc(d,fp); d=0x00; fputc(d,fp); d=0x00; /* Byte rate */ fputc(d,fp); d=0x65; fputc(d,fp); d=0x04; fputc(d,fp); d=0x00; fputc(d,fp); d=0x06; /* Block Align */ fputc(d,fp); d=0x00; fputc(d,fp); d=0x18; /* Bits Per Sample */ fputc(d,fp); d=0x00; fputc(d,fp); d='d'; /* SubChunk2 ID */ fputc(d,fp); d='a'; fputc(d,fp); d='t'; fputc(d,fp); d='a'; fputc(d,fp); d=0x00; /* SubChunk2 Size */ fputc(d,fp); d=0xAC; fputc(d,fp); d=0x07; fputc(d,fp); d=0x01; fputc(d,fp); for(fileptr=0;fileptr<length;fileptr++){ for(i=0;i<24;i++){ d=0x00; /* Data - Little Endian */ fputc(d,fp); d=0x00; fputc(d,fp); d=0xC0; fputc(d,fp); d=0x00; fputc(d,fp); d=0x00; fputc(d,fp); d=0xC0; fputc(d,fp); d=0x00; fputc(d,fp); d=0x00; fputc(d,fp); d=0xC0; fputc(d,fp); d=0x00; fputc(d,fp); d=0x00; fputc(d,fp); d=0xC0; fputc(d,fp); d=0x00; fputc(d,fp); d=0x00; fputc(d,fp); d=0x40; fputc(d,fp); d=0x00; fputc(d,fp); d=0x00; fputc(d,fp); d=0x40; fputc(d,fp); d=0x00; fputc(d,fp); d=0x00; fputc(d,fp); d=0x40; fputc(d,fp); d=0x00; fputc(d,fp); d=0x00; fputc(d,fp); d=0x40; fputc(d,fp); } for(i=0;i<24;i++){ d=0xFF; fputc(d,fp); d=0xFF; fputc(d,fp); d=0xBF; fputc(d,fp); d=0xFF; fputc(d,fp); d=0xFF; fputc(d,fp); d=0xBF; fputc(d,fp); d=0xFF; fputc(d,fp); d=0xFF; fputc(d,fp); d=0xBF; fputc(d,fp); d=0xFF; fputc(d,fp); d=0xFF; fputc(d,fp); d=0xBF; fputc(d,fp); d=0xFF; fputc(d,fp); d=0xFF; fputc(d,fp); d=0x3F; fputc(d,fp); d=0xFF; fputc(d,fp); d=0xFF; fputc(d,fp); d=0x3F; fputc(d,fp); d=0xFF; fputc(d,fp); d=0xFF; fputc(d,fp); d=0x3F; fputc(d,fp); d=0xFF; fputc(d,fp); d=0xFF; fputc(d,fp); d=0x3F; fputc(d,fp); } } fclose(fp); } else{ printf("\nError opening files...\n"); exit(1); } printf("\jitter\n\n"); printf("Press a key to continue...\n"); getch(); exit(0); } w |
|
|
|
#4 |
|
diyAudio Moderator
|
It seems to work. Here is an FFT. I had to convert it to 16 bits, but you get the idea.
__________________
Take the Speaker Voltage Test! |
|
|
|
#5 |
|
diyAudio Member
Join Date: Feb 2011
|
Great!
Thank you very much for the effort. It seems to work at my pc as well. I think I understand what you’ve done. I will be using the file hopefully to test the DAC’s of a Dolby Lake Processor. I’m curious to the differences between it’s PLL and ASRC. Regards, Merlijn |
|
|
|
#6 |
|
diyAudio Member
Join Date: Feb 2011
|
On second thought, would it be possible to also create a 16 bit 44.1 kHz version using the same method. I’ve come to understand that the following parameters (https://ccrma.stanford.edu/courses/4...cts/WaveFormat) need to be changed:
*This cycle rate or number of samples should stay unaltered to maintain the 4/1000 and 1/4 sample rate frequency ratio. Kind regards, Merlijn |
|
|
|
#7 |
|
diyAudio Member
Join Date: Jan 2008
Location: Virginia
|
|
|
|
|
#8 |
|
diyAudio Member
Join Date: Feb 2011
|
And yet this way of working produces bit accurate results that comply with Dunn’s original paper. I’ve downloaded at least one version of the 16 bit test signal claimed to be the “one”. But closer inspection using a hex editor shows small imperfections. I for one hope that this method can be used to create a 16 bit version.
Regards, Merlijn |
|
|
|
#9 |
|
diyAudio Member
Join Date: Jan 2008
Location: Virginia
|
I don't think it can be done. The whole ideea is based on using a "smaller" 24bit step to simulate the jitter of the "bigger" 16bit signal. You need to feed that 24 bit as a 16 bit signal to the receiver to be perceived as jitter.
If you have the same 16 bit for both, you will end up with just regular signal, and that will NOT be seen as jitter by the receiver. |
|
|
|
#10 |
|
diyAudio Moderator
|
|
|
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | Search this Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| generate jitter test signal and measurign jitter using AP2? | BJAMR | Digital Source | 11 | 1st November 2010 02:07 PM |
| FM test signal to indicate PIM? | PMA | Solid State | 1 | 17th February 2010 11:07 AM |
| Intermodulation test signal | BitPoint | Digital Line Level | 5 | 6th April 2009 11:06 AM |
| Jitter test signal - 11025+229.6875hz. How to ? | percy | Digital Source | 5 | 25th April 2007 12:13 AM |
| Best Digital (bit perfect) Test Signal? | drewm1980 | Digital Source | 3 | 23rd May 2005 12:09 AM |
| New To Site? | Need Help? |
| Page generated in 0.16032 seconds (87.27% PHP - 12.73% MySQL) with 11 queries |