Hi Benny

>
> For a) & b) will use the sound card clock and using micro seconds timer. 
... that's not a solution, that's the original problem I state.

You don't *get* the sound card clock anywhere in software. If you did,
there would be no problem.


Respectfully,

Marcus


On 09/27/2017 10:15 AM, Benny Alexandar wrote:
>
> >>Could you maybe elaborate how you're planning to solve all a),b),c)
> instead of asking for new feedback?
>
>
>
> For a) & b) will use the sound card clock and using micro seconds timer.
>
> And for c) run the decoded PCM through a FIFO buffer this is a local
> buffer which is not part of gnu-radio connect buffers,  between the
> SRC and the play-out stage. The trade-off for this approach of course
> is increased latency.  
> This way any variable work-load length is not going to affect and the
> local fifo will have fixed length.
> Timing errors needs to be filtered using DLL which is  the same used
> in JACK.
>
> -ben
>
>
>
>
>
> ----------------------------------------------------------------
>
>
> And as also said earlier, I don't believe very much that it will work
> that easily, since the CPU clock is a) worse than the typical SDR and
> sound card clocks, b) has different resolutions, c) and needs to still
> be sufficiently interpolatable for the jittery,
> variable-workload-length that GNU Radio has. The point c) is what's
> different for Jack internally, because that can work on fixed-length
> buffers.
>
>
> This is a comment that you've gotten from me (and by the way, Fons,
> too) multiple times now. Could you maybe elaborate how you're planning
> to solve all a),b),c) instead of asking for new feedback?
>
>
>
> ------------------------------------------------------------------------
> *From:* Benny Alexandar
> *Sent:* Wednesday, September 27, 2017 6:50 AM
> *To:* Marcus Müller; GNURadio Discussion List
> *Subject:* Re: [USRP-users] Audio Control loop testing
>  
> Hi Marcus,
>
> As said earlier there is no true clock as such. We need to rely on CPU
> clock and measure the deviation. The reference clock is the
> transmitter time duration between two symbols which is a preset value.
> Do you have any suggestions for a *better reference clock*
>
> -ben
>
> --------------------------------------------------------------
>
> Hi Benny,
>
> you're, again, missing the core problem: it's hard to measure the time
> deviation between two symbols without a better reference clock. And
> you don't have that. And thus, we're back at the start of all our
> email chain.
>
> Best regards,
>
> Marcus
> ------------------------------------------------------------------------
> *From:* Benny Alexandar
> *Sent:* Tuesday, September 26, 2017 10:56 PM
> *To:* Marcus Müller; GNURadio Discussion List
> *Subject:* Re: [USRP-users] Audio Control loop testing
>  
> Hello,
>
> Now the timing of input side is after detecting the start of symbol.
> Every symbol will be timestamped and  measure the time deviation
> between two symbols.
>
> d = t1 -  t0,
> where t0 - time of arrival of symbol (n)
>              t1 - time of arrival of symbol (n+1)
>               d - time deviation between two symbols.
>
> D - time duration between two symbols according to digital radio
> standards, then  error =  ( D / d )  -  1 
>  
> Please send your suggestions feedback regarding this approach.
>
> -ben
> ------------------------------------------------------------------------
> *From:* Benny Alexandar
> *Sent:* Friday, September 22, 2017 10:26 PM
> *To:* Marcus Müller; GNURadio Discussion List
> *Subject:* Re: [USRP-users] Audio Control loop testing
>  
> Hi Marcus,
>
> Please find the attached  figure on how the audio control loop will be
> placed in
> Gnu Radio chain. In the figure the first block is the RF IQ 
> acquisition block which samples the RF samples and put a timestamp. It
> is then passed on  to channel and audio decoder and finally reaches
> the audio sink. Audio sink does the audio playback on fragments of audio.
>
> The audio control loop module has two inputs and one output. The
> inputs are for sending the timestamp of write side and read side. In
> this case write side is RF capture and read is from audio sink. Note
> these two time stamps are coming from different clock, the RF capture
> uses PC CPU clock where as the audio sink has sound card clock. The
> output of audio control loop is used to control the re sampler which
> sits in between audio decoder and audio sink.More details on how the
> audio control loop will be send soon.
>
> Please send your feedback regarding this approach.
>
>
> -ben
> ------------------------------------------------------------------------
> *From:* Marcus Müller <marcus.muel...@ettus.com>
> *Sent:* Tuesday, September 19, 2017 10:47 PM
> *To:* Benny Alexandar; GNURadio Discussion List
> *Subject:* Re: [USRP-users] Audio Control loop testing
>  
>
> Hi Ben,
>
>
>> May I know why not with JACK ? 
>
> From the very same email you're referring to:
>
>
>>  (not much sense writing it for the Jack sink, if Jack can already do
>> it internally)
> Also,
>> Here, I need your inputs. 
> I spent around 5 hrs on input on this topic already. I don't feel like
> you need more input, it feels more like you haven't had the chance yet
> to understand all the input that there is on the GNU Radio mailing
> list. We should also not be having this discussion on usrp-users, as
> your approach doesn't involve USRPs directly!
>
>> Can you please state the requirements. How it has to be in GNU radio
>> chain etc.
>
> Please re-read my previous email. I explicitly say I'm not even
> convinced this will reliably work in software. GNU Radio is software.
> What about you just start by trying to implement a control loop, and
> read as much on theory of discrete-time control systems as you'll need
> for this? I'm afraid I can't take that burden off your shoulder if you
> want to implement a control loop. It is hard stuff.
>
> Best regards,
> Marcus
> On 09/19/2017 10:10 AM, Benny Alexandar wrote:
>> Hi Marcus,
>>
>> Yes its true I couldn' t make much progress on this.  Not able to
>> find time as I have a full time job.  If I remember correctly, you
>> mentioned that no-one has implemented audio control loop within GNU
>> Radio. And you were suggesting to write it for ALSA and not with JACK.
>>
>> May I know why not with JACK ? If I need to make it with JACK, GNU
>> radio should run as  a client and output to JACK input port and
>> another client which does the audio control loop and send the output
>> for playback.  May be its not required, if we can make  a sink block
>> with ALSA and implement the audio control loop.
>>
>> Here, I need your inputs. Can you please state the requirements. How
>> it has to be in GNU radio chain etc.
>>
>> -ben
>>
>> ------------------------------------------------------------------------
>> *From:* USRP-users <usrp-users-boun...@lists.ettus.com> on behalf of
>> Marcus Müller via USRP-users <usrp-us...@lists.ettus.com>
>> *Sent:* Tuesday, September 19, 2017 2:10 AM
>> *To:* usrp-us...@lists.ettus.com; GNURadio Discussion List
>> *Subject:* Re: [USRP-users] Audio Control loop testing
>>  
>>
>> Hi Ben,
>>
>>
>> that's the old multi-clock problem we've been talking about multiple
>> times – it's hard to even define what the "correct" clock is, so you
>> usually just settle on recovering the transmitter clock and, if you
>> were doing this in hardware, would derive the audio DAC's clock from
>> that.
>>
>> In a software receiver, you need to estimate the offset of the audio
>> DAC clock from the sender's audio clock. That's hard to do properly,
>> because these clock offsets might be to fine to do it with general
>> purpose PC CPU software. But we've talked about all that before on
>> the Discuss-gnuradio list!
>>
>>
>> As a way around that, you might use the same clock to derive the RF
>> receiver's sampling clock and the audio DAC's sampling clock. You
>> then get a direct relation between RF sampling and audio playback,
>> for example "every 1 million RF samples, I need to produce one audio
>> sample". Fons and I really tried to explain that in about 20 emails
>> on discuss-gnuradio. So, I think we've covered the stage of "any
>> suggestions on this would be helpful" pretty well. It is a hard
>> problem, and there's a solid chance you can't solve it for all use
>> cases in software. There's also a solid chance you might be able to
>> solve it for a specific use case, but that would require you to
>> become an expert on multi-rate processing and clock matching, and
>> frankly, you're not showing much progress at that over last 10 months.
>>
>>
>> Best regards,
>>
>> Marcus
>>
>>
>>
>> On 09/16/2017 05:38 AM, Benny Alexandar via USRP-users wrote:
>>> Hi,
>>>
>>> I want to create an artificial audio drift in transmitter side and
>>> test it using my audio control loop in receiver. This is what I'm
>>> planning.
>>>
>>> Take an audio wav file which is sampled at 12 kHz. Re sample it such
>>> that the sample rate is now having a drift of 100 ppm, ie with
>>> sample frequencies with an error up to 12000*100e-6 is 1.2Hz in case
>>> of 12kHz sample frequency. Now transmit this audio file  using Gnu
>>> radio and USRP.
>>> Receiver does the channel decoding and audio decoding.
>>> So in this most extreme case the receiver drifts with more than one
>>> sample per second, so after an hour it is drifted by 1.2*3600 = 4320
>>> samples
>>>
>>> If the receiver doesn't have an audio control loop then it will go
>>> into under run.  By enabling the audio control loop i can check the
>>> drift compensation.
>>>
>>> Any suggestions on this method of testing.
>>>
>>> -ben
>>>
>>>
>>> _______________________________________________
>>> USRP-users mailing list
>>> usrp-us...@lists.ettus.com
>>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>>
>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to