-
Notifications
You must be signed in to change notification settings - Fork 548
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Iq tool formats #1013
base: master
Are you sure you want to change the base?
Iq tool formats #1013
Conversation
68e428f
to
5184d86
Compare
5184d86
to
65f7ea7
Compare
Rebased on top of actual iq_tool_gui_fixes. |
9a51eca
to
4ab2883
Compare
1798dc5
to
615a38d
Compare
615a38d
to
1c418eb
Compare
Quick rebase to resolve conflicts. Needs more testing. |
1c418eb
to
3a1c392
Compare
3a1c392
to
6f933a7
Compare
da23764
to
1662025
Compare
1662025
to
00e2569
Compare
00e2569
to
25b9e09
Compare
25b9e09
to
8ffccbe
Compare
Would it make sense to split this into more MR's? Splitting it would make testing and review easier and it might possibly go faster into the I'm just at starting point here, but it would personally help me to try to help here. |
Hmmm. This PR is really small, compared to #1106 for example... It's already split into 3 PRs: Consider starting review from #1010 and continue with #1011 once #1010 gets merged/replaced. |
Sure I get it now. Thx, would make sense to reference the other MRs? Also wold make sense to keep this draft until ready to merge? It took my a while to dig throught this and it would help me. Just asking. |
Ok, I'm probably blind and should go to bed now, they are mentioned in the description, of course, sorry! |
You are fine. |
8ffccbe
to
4d4239a
Compare
@vladisslav2011
|
4d4239a
to
ae7ab7a
Compare
The jumping slider fix is now merged into master. Thanks to @argilo finding some time to review it. |
ae7ab7a
to
42583f0
Compare
...while playing back IQ file. Problem: It is possible to change the center frequency while playing an IQ file. In this case the real file center frequency does not get shifted to a correct position, so the spectrum plot/waterfall becomes shifted from actual played frequency, bookmarks become not valid, freqCtrl shows wrong frequency, plotter shows wrong frequency and so on. This commit changes frequency setting logic to be more staraightfroward and consistent. Independent of frequency change event source (freqctrls, plotter, remote) do the things in a same way: calculate new center and offset, taking into account the fact, that the center frequency may be loked due to IQ file playback, set the new frequency on a receiver side, then update all GUI controls to reflect changes. Enforce new frequency limits on the plotter side when IQ playback is started.
Reselect file before starting playback. Fixes incorrect sample rate when playback is started, stopped, devices switched, dsp started, stopped and then started playback of the same IQ file.
10 bit: 2 samples packed into 5 bytes 12 bit: 1 sample packed into 3 bytes 14 bit: 2 samples packed into 7 bytes
And some generic optimizations
Changing IO devices and loading/saving settings does not look like good thing to do while recording/playing an IQ file. Disable seek slider during recording as it has no function in this state. Disable file list and directory selector during recording/playback.
42583f0
to
0adeba6
Compare
Updated with packed 10/12/14 bit formats and real (not I/Q) formats to avoid wasting disk space when recording from direct-sampling SDRs like RX-888 or MSi SDR in Low-IF mode. |
IQ Tool: Implement playback and recording in different integer IQ formats.
I/Q formats (filename suffix description):
fc 32bit float I/Q
gr_complex
orstd::complex<float>
. Old format.32 32bit signed integer I/Q
std::complex<int32_t>
.16 16bit signed integer I/Q
std::complex<int16_t>
.8 8bit signed integer I/Q
std::complex<int8_t>
. HackRF native format .32u 32bit unsigned integer I/Q
std::complex<uint32_t>
.16u 16bit unsigned integer I/Q
std::complex<uint16_t>
.8u 8bit unsigned integer I/Q
std::complex<uint8_t>
RTL SDR native format.14 14bit signed integer packed I/Q format. Not very useful.
12 12bit signed integer packed I/Q format. Best dynamic range for many "16 bit" SDRs.
10 10bit signed integer packed I/Q format. Good dynamic range and storage efficiency.
Real formats:
32i 32bit signed integer real, sampled from I branch.
16i 16bit signed integer real, sampled from I branch.
8i 8bit signed integer real, sampled from I branch.
14i 14bit signed integer packed real, sampled from I branch.
12i 12bit signed integer packed real, sampled from I branch. Just enough dynamic range to record from RX-888mk2 "16 bit" SDR or something similar without any noticeable quantization noise.
10i 10bit signed integer packed real, sampled from I branch.
Close #881.
Close #1030.
Includes #1010 and #1011 as it depends on some previous IQ Tool changes.