Hey Dirk,

Just curious, are you doing this for fun or profit?

On Mon, Feb 6, 2017 at 3:40 PM Dirk Gorissen <dgoris...@gmail.com> wrote:

> Thanks Marcus & Martin for the responses.
>
> To clarify, Im working on a wildlife tracking problem but from the air
> (drone). Im purely interested in finding out if the pulse (which gets
> transmitted at a fixed interval of 1500ms) occurred or not. If it did, I
> know Im within some range of the animal of interest. I have no control over
> the transmitter and no further technical details (unfortunately). I did
> take some screenshots to give you an idea what it looks like:
>
> https://goo.gl/photos/Y3Ea6kJo1ewrcDYM8  (taken with tx at close range to
> static antenna)
>
> I expect quite a bit of (fairly uniform) background noise from other
> electronics to deal with and there are hardware things that can be
> improved. But for the purposes of this thread I want to ensure Im doing the
> right things on the DSP side.
>
> And yes, Im pretty much a DSP novice but happy to learn. So be gentle :)
>
> >So, my understanding is that your SDR device first downconverts your
> 150.22
> >MHz signal to complex baseband, is that right?
>
> Yes, so think something like an rtlsdr or airspy.
>
> About the FFT question, thanks I got a bit confused. I now understand that
> if I want FFT over a longer timeframe I should just take a larger size and
> I can vary the sampling rate (e.g., via decimation) to get the resolution
> (Hz per bin) I require.
>
> Im now wondering if there is a founded way to pick an optimal FFT size
> given my pulse is only 10ms long. Im guessing it should not be much longer
> than the 10ms equivalent but maybe there is a noise tradeoff (?).
>
> In any case I agree this is a time based phenomenon so a time domain
> approach should likely be the main one.
>
> So it seems I should at least be trying an FIR filter to do cross
> correlation. Not quite clear how I would actually do that in practise with
> the gr block though. How would I provide the second input (the synthetic
> pulse)?
>
> I have come across matched filters before but so far failed to bridge the
> gap from theory to code. This is partly the reason I came to gnuradio.
>
> >You can implement a limited-length autocorrelation/crosscorrelation
> relatively
> >easily; we can talk about how that would look like, but my gut feeling is
> that this
> >might be something that might not make too much sense in your specific
> use
> >case.
>
> Not too sure myself tbh, but happy to take your lead.
>
> >it's possible cyclostationary estimation methods might be helpful here.
>
> So I googled this and poked around a bit on https://cyclostationary.blog.
> Looks really interesting but out of my depth here..
>
> Thanks for the tip on gr-fosphor.
>
> Cheers
> Dirk
>
> On 5 February 2017 at 12:06, Marcus Müller <marcus.muel...@ettus.com>
> wrote:
>
> Hi Dirk,
>
> nice to have you around, welcome to GNU Radio! I don't know your level of
> DSP knowledge, so please excuse if I either throw too many high-level
> concepts at you or assume you could want to read up on something that you
> already know. If something in my reply is unclear, please don't hesitate to
> ask for clarification.
>
> So, my understanding is that your SDR device first downconverts your
> 150.22 MHz signal to complex baseband, is that right?
>
> So, what is the objective here? You say you need to /detect/ the pulse,
> but for what purpose? Is it just about detecting the presence of the pulse,
> or is it used for eg. time detection?
>
> Your filter->decimate approach sounds very reasonable; I'm not 100%
> convinced by using the FFT for something that is concentrated in *time*
> domain, but that might depend on the purpose mentioned above.
>
> 2) Im somewhat confused about the FFT block if I just pipe the SDR
> straight into it. The FFT size is set to 1024 and the window is set to
> "window.blackmanharris(1024)". So Im assuming the FFT just applies one
> window (?) and outputs 1024 bins. However, how many samples are
> accumulated before the FFT is run? I would have assumed I can control
> that too. And if so, should I best be doing this every 50ms, 500ms,
> 2000ms, ..?
>
> I'm not sure I understand the question. An FFT is simply an DFT. It's a
> mapping of N-dimensional vector to N-dimensional vector, [image:
> tblatex-3.png]. The window is multiplied point-wise with the input vector
> prior to the DFT to avoid spectral leakage.
>
> There's no accumulation involved anywhere.
>
> 3) I can use the rational resampling block to bring the sample rate
> down to 48khz so I can use the audio sink. From that I can still hear
> the pulse even if it is not visible in the spectrum (gui sink). Im
> assuming this is just because the plotting cannot keep up?
>
> Maybe, or maybe the spectrum sink really isn't the right tool to visualize
> a pulse! Again, we might want to discuss what this pulse is and what it's
> used for.
>
> 4) In the time domain I guess I can generate a synthetic pulse of the
> same length / frequency and then cross correlate.
>
> Hm, but correlating a signal with a known fixed sequence is,
> mathematically, a convolution.
>
> That is identical to doing FIR filtering – in fact, if we consider the
> shape of your pulse as what is often referred to as *pulse shape filter*,
> then that filter in the receiver would simply be the *matched filter* to
> that.
>
> Not obvious to me
> how to generate the required pulse in gnuradio though (would a
> continuous signal work?).
>
> "Continuous" would mean you'd do an infinite-length correlation, so that's
> not 100% possible.
>
> I also notice there are no built in
> (auto)correlation blocks?
>
> Hm, but an autocorrelation would take a complete signal, shift it by all
> possible shifts and calculating the dot product between the shifted version
> and the unshifted, right? That would require to have the complete signal at
> once.
>
> But GNU Radio is a streaming architecture, so that can't work.
>
> You can implement a limited-length autocorrelation/crosscorrelation
> relatively easily; we can talk about how that would look like, but my gut
> feeling is that this might be something that might not make too much sense
> in your specific use case.
>
> I found the "correlation estimator" but not
> clear how to use it. As for dealing with the frequency uncertainty
> problem. Does one just try correlating with different freuencies and
> pick the best one? Or what is the good thing to do here given I may
> also have to deal with quite a bit of noise.
>
> As a gut feeling: you don't really care about whether the pulse is
> *exactly* at a certain frequency (it's absolutely not normal for wireless
> receivers to know the exact frequency a priori), but when it happens. So we
> might want to discuss the kind of pulse, and kind of noise we're talking
> about.
>
> As a further gut feeling: I think your autocorrelation question indicates
> you might be on a very good track – it's possible cyclostationary
> estimation methods might be helpful here.
>
>
> Best regards,
>
> Marcus
>
>
>
> On 02/04/2017 11:39 PM, Dirk Gorissen wrote:
>
> Fist of all, while Im a newbie to (gnu)radio, congrats to the dev team
> for a great piece of software.
>
> My question is about the need to detect a weak, noisy, short (10ms)
> pulse that occurs every 1.5 seconds. It is transmitted at a particular
> frequency (e.g., 150.22 MHz) but in practise I have found this can
> vary by as much as +/- 500Hz. There is no modulation, it is simply an
> on/off keyed pulse.
>
> Say I have an SDR generating data at 2.5 MSPS. I have so far been
> experimenting with standard scipy/numpy routines to collect a batch of
> samples, perform a FFT (freq domain) and do a cross correlation (time
> domain). However, Im by no means a dsp guy and would like to leverage
> gnuradio as much as I can. I have been poking a bit but have some
> basic questions.
>
> 1) 2.5 Msps gives me way more bandwidth than I neeed. Assuming, for
> now, I only care about a single pulse frequency I really only need
> ~1khz bandwidth. In the frequency domain I can directly decimate down
> (with a big factor) to the 1-2 khz range using the low pass filter
> block, do an fft, and look for peaks. Is that the right approach?
>
> 2) Im somewhat confused about the FFT block if I just pipe the SDR
> straight into it. The FFT size is set to 1024 and the window is set to
> "window.blackmanharris(1024)". So Im assuming the FFT just applies one
> window (?) and outputs 1024 bins. However, how many samples are
> accumulated before the FFT is run? I would have assumed I can control
> that too. And if so, should I best be doing this every 50ms, 500ms,
> 2000ms, ..?
>
> 3) I can use the rational resampling block to bring the sample rate
> down to 48khz so I can use the audio sink. From that I can still hear
> the pulse even if it is not visible in the spectrum (gui sink). Im
> assuming this is just because the plotting cannot keep up?
>
> 4) In the time domain I guess I can generate a synthetic pulse of the
> same length / frequency and then cross correlate. Not obvious to me
> how to generate the required pulse in gnuradio though (would a
> continuous signal work?). I also notice there are no built in
> (auto)correlation blocks? I found the "correlation estimator" but not
> clear how to use it. As for dealing with the frequency uncertainty
> problem. Does one just try correlating with different freuencies and
> pick the best one? Or what is the good thing to do here given I may
> also have to deal with quite a bit of noise.
>
> Any guidance appreciated.
>
> Many thanks,
>
> Dirk
>
> _______________________________________________
> Discuss-gnuradio mailing 
> listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
>
>
> --
> _________________________________________
> Dr. Dirk Gorissen
> Mob: +44-7763-806-809 <+44%207763%20806809>
> Web: dirkgorissen.com
> Skype: dirk.gorissen
> Twitter  : twitter.com/dirkgor
> LinkedIn: linkedin.com/in/dirkgorissen
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
-- 
Very Respectfully,

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

Reply via email to