# Time delaying a signal

**URL:** <https://www.ruby-forum.com/t/time-delaying-a-signal/241085>\
**Category:** GNU Radio\
**Created:** [May 12, 2014, 8:03pm UTC](https://www.ruby-forum.com/t/time-delaying-a-signal/241085 "2014-05-12T20:03:25Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Detlef\_R](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@Detlef\_R](https://www.ruby-forum.com/u/Detlef_R)\
**Post date:** [May 12, 2014, 8:03pm UTC](https://www.ruby-forum.com/t/time-delaying-a-signal/241085/1 "2014-05-12T20:03:25Z")

</div>

I want to introduce a time delay in a signal received through USRP…I  
have used the ‘Delay’ block but it is not showing any delay…what is  
the appropriate block to use??  
Can i delay the phase instead? Are time and phase delay equal?

---

<div class="post-metadata">

**Author:** ![asad\_umer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/dfb087/32.png) [@asad\_umer](https://www.ruby-forum.com/u/asad_umer)\
**Post date:** [May 12, 2014, 8:05pm UTC](https://www.ruby-forum.com/t/time-delaying-a-signal/241085/2 "2014-05-12T20:05:17Z")

</div>

On 05/12/2014 02:02 PM, asad umer wrote:

> I want to introduce a time delay in a signal received through USRP…I  
> have used the ‘Delay’ block but it is not showing any delay…what is  
> the appropriate block to use??  
> Can i delay the phase instead? Are time and phase delay equal?
> 
> * * *
> 
> Discuss-gnuradio mailing list  
> [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> [Discuss-gnuradio Info Page](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio)

The delay block is in samples.

–  
Marcus L.  
Principal Investigator  
Shirleys Bay Radio Astronomy Consortium

> **[Live Draw HK Tercepat | Result HK | HK Pools | Live HK | HK Prize Hari Ini](https://www.sbrac.org)**
>
> Temukan live draw hk tercepat melalui halaman hk pools yang resmi dan dapatkan result hk prize melalui live hk secara langsung di situs kami.

---

<div class="post-metadata">

**Author:** ![asad\_umer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/dfb087/32.png) [@asad\_umer](https://www.ruby-forum.com/u/asad_umer)\
**Post date:** [May 12, 2014, 8:15pm UTC](https://www.ruby-forum.com/t/time-delaying-a-signal/241085/3 "2014-05-12T20:15:44Z")

</div>

On 5/12/14, Marcus D. Leech [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

---

<div class="post-metadata">

**Author:** ![asad\_umer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/dfb087/32.png) [@asad\_umer](https://www.ruby-forum.com/u/asad_umer)\
**Post date:** [May 12, 2014, 8:20pm UTC](https://www.ruby-forum.com/t/time-delaying-a-signal/241085/4 "2014-05-12T20:20:02Z")

</div>

The delay block works in samples so to get seconds you have to multiply  
the  
sample rate by the number of seconds you want to be delayed by.

Mike

---

<div class="post-metadata">

**Author:** ![asad\_umer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/dfb087/32.png) [@asad\_umer](https://www.ruby-forum.com/u/asad_umer)\
**Post date:** [May 12, 2014, 8:21pm UTC](https://www.ruby-forum.com/t/time-delaying-a-signal/241085/5 "2014-05-12T20:21:53Z")

</div>

Well, not that I’m aware of.  
However, FFT, multiplication with a signal source, IFFT is not really  
hard  
to do, and it’s what a time shift mathematically is.

Greetings,  
Marcus

---

<div class="post-metadata">

**Author:** ![asad\_umer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/dfb087/32.png) [@asad\_umer](https://www.ruby-forum.com/u/asad_umer)\
**Post date:** [May 12, 2014, 8:20pm UTC](https://www.ruby-forum.com/t/time-delaying-a-signal/241085/6 "2014-05-12T20:20:39Z")

</div>

On 05/12/2014 02:14 PM, asad umer wrote:

> > so there is no exclusive block for this purpose in GRC??  
> > A delay in samples is a delay in time:

1 sample == 1/sample-rate seconds of delay

–  
Marcus L.  
Principal Investigator  
Shirleys Bay Radio Astronomy Consortium

> **[Live Draw HK Tercepat | Result HK | HK Pools | Live HK | HK Prize Hari Ini](https://www.sbrac.org)**
>
> Temukan live draw hk tercepat melalui halaman hk pools yang resmi dan dapatkan result hk prize melalui live hk secara langsung di situs kami.

---

<div class="post-metadata">

**Author:** ![asad\_umer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/dfb087/32.png) [@asad\_umer](https://www.ruby-forum.com/u/asad_umer)\
**Post date:** [May 12, 2014, 8:29pm UTC](https://www.ruby-forum.com/t/time-delaying-a-signal/241085/7 "2014-05-12T20:29:17Z")

</div>

To shift just the phase you can use the ‘Complex To Float’ block in GRC  
which separates the stream into real and imaginary components. After  
adding the delay block in line with the imaginary component you can then  
recombine the stream by using the ‘Float To Complex’ block.

Mike

–  
Mike J. M0MIK BSc MIET  
Email: removed\_email\_address@domain.invalid  
Web: [http://scanoo.com](http://scanoo.com)

---

<div class="post-metadata">

**Author:** ![asad\_umer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/dfb087/32.png) [@asad\_umer](https://www.ruby-forum.com/u/asad_umer)\
**Post date:** [May 13, 2014, 7:15am UTC](https://www.ruby-forum.com/t/time-delaying-a-signal/241085/8 "2014-05-13T07:15:18Z")

</div>

I am also using the delay block in the way u have mentioned but the  
signal  
in scope doesn’t act accordingly ,it remains in phase with the  
original…

---

<div class="post-metadata">

**Author:** ![asad\_umer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/dfb087/32.png) [@asad\_umer](https://www.ruby-forum.com/u/asad_umer)\
**Post date:** [May 12, 2014, 8:24pm UTC](https://www.ruby-forum.com/t/time-delaying-a-signal/241085/9 "2014-05-12T20:24:58Z")

</div>

On 05/12/2014 02:19 PM, Marcus Müller wrote:

> Well, not that I’m aware of.  
> However, FFT, multiplication with a signal source, IFFT is not really  
> hard to do, and it’s what a time shift mathematically is.
> 
> Greetings,  
> Marcus  
> Also, a phase-shift is just a complex multiply by:

complex(cos(ang),sin(ang))

With angle in radians

That’s how I do manual phase correction in the interferometer support in  
simple\_ra

–  
Marcus L.  
Principal Investigator  
Shirleys Bay Radio Astronomy Consortium

> **[Live Draw HK Tercepat | Result HK | HK Pools | Live HK | HK Prize Hari Ini](https://www.sbrac.org)**
>
> Temukan live draw hk tercepat melalui halaman hk pools yang resmi dan dapatkan result hk prize melalui live hk secara langsung di situs kami.

---

<div class="post-metadata">

**Author:** ![asad\_umer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/dfb087/32.png) [@asad\_umer](https://www.ruby-forum.com/u/asad_umer)\
**Post date:** [May 13, 2014, 10:08am UTC](https://www.ruby-forum.com/t/time-delaying-a-signal/241085/10 "2014-05-13T10:08:36Z")

</div>

On 12.05.2014 20:19, Marcus M. wrote:

> Well, not that I’m aware of.  
> However, FFT, multiplication with a signal source, IFFT is not really  
> hard to do, and it’s what a time shift mathematically is.

Careful… if you do that on a stream, you have to keep track of phases.  
I know Marcus knows this – consider this a “don’t do this at home  
unless you know what you’re doing” 🙂

Martin

---

<div class="post-metadata">

**Author:** ![asad\_umer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/dfb087/32.png) [@asad\_umer](https://www.ruby-forum.com/u/asad_umer)\
**Post date:** [May 13, 2014, 10:09am UTC](https://www.ruby-forum.com/t/time-delaying-a-signal/241085/11 "2014-05-13T10:09:50Z")

</div>

On 13.05.2014 07:14, asad umer wrote:

> I am also using the delay block in the way u have mentioned but the  
> signal in scope doesn’t act accordingly ,it remains in phase with the  
> original…

That’s unlikely. Do this:

1. Connect sig source into port 1 of your scope (e.g. create a sine  
wave)
2. Connect same sig source to delay
3. Connect delay to port 2 of your scope
4. Choose a good delay that’s not multiples of your “wave length”
5. Et voil, phase shift.

M
