Prev: Floating point DSPs
Next: MATLAB indexing issue
From: Jitendra Rayala on 15 Jul 2010 12:25 On Jul 14, 4:35 am, dvsarwate <dvsarw...(a)gmail.com> wrote: > OK, I am confused even more. The OP said > (without defining what is meant by pulsewidth > or bandwidth) > > OP> bandwidth = 1/pulsewidth. Why? > > to which several people replied, and Robert > Bristow-Johnson said (I think) that the > relationship stated by the OP is true for > Gaussian pulses if pulsewidth and > bandwidth are defined in terms of 92.4% > energy containment. Jitendra Rayala said > in his second post that the OP's relationship > holds for some pulses (but did not specify > which ones he had in mind). He also > said that when bandwidth and pulsewidth > are taken to mean rms bandwidth df and > rms pulsewidth dt, then the inequality > > JR1> dt*df >= 1/2 > > or perhaps > > JR2> dt*df >= 1/(4 pi) > > is applicable to *all* pulses (neither of > which contradict the assertion that the > product equals 1 for some pulses). > For *most* pulses, the inequality would > be strict: dt*df is *larger* than 1/2 or > 1/(4 pi). But for a few select pulses > (Gaussians?), it might be that dt*df > *equals* 1/2 or 1/(4 pi). Does it? and > which is the minimum value that is > achieved: 1/2 or 1/(4 pi)? > > --Dilip Sarwate Sorry for the confusion. I got mislead by notation in a paper. The value is 1/2. The RMS widths that I mentioned are related to the Gabor widths [1]. Here is small Octave/Matlab script to check the time-bandwidth product based on this definition for Gaussian pulse. ============================================================ clear; fs = 200; t = [-10:1/fs:10]; L = length(t); f = fs*[-(L-1)/2:L/2]/L; w = 2*pi*f; sigma = 1; g = (1/sqrt(2*pi*sigma^2))*exp(-0.5*t.^2/sigma^2); gf = abs(fftshift(fft(g, L))); dt = sqrt(sum(t.^2.*g.^2)/sum(g.^2)); dw = sqrt(sum(w.^2.*gf.^2)/(sum(gf.^2))); df = 2*pi*sqrt(sum(f.^2.*gf.^2)/(sum(gf.^2))); figure(1); plot(t, g); grid figure(2); plot(w, gf); grid [dt, dw, df, dt*dw, dt*df] =================================================== The results from a single run of this script would be: [0.70711 0.70711 0.70711 0.5 0.5]. One can change the value of sigma and see that the time-bandwidth product remains the same. This definition of widths (especially for bandwidth) is just one. For more information on other definitions, Amoroso [2] is a good reference. It's been a while so I can not recall how these RMS definitions can be used in signal design for band limited channels. I think Nutall [3] or some other papers would have some information. Proakis [4] (chapter 9) discusses signal design for band limited channels but not based on RMS definition. Here the pulse is truncated in frequency so that it is limited both in time and frequency. Thanks for keeping the discussion alive. It gave me a chance to revisit some of these. I will try but unfortunately may not be able to continue as I need to take care of some other priorities. Jitendra [1] Gabor D. "Theory of Communication," J. IEE, vol 93, pp. 429-457, November 1946 [2] Frank Amoroso, "The Bandwidth of Digital Data Signals," IEEE Communications magazine, pp. 13-24, November 1980. [3] Albert Nuttall, "Minimum RMS Bandwidth of M Time-limited Signals with Specified Code or Correlation Matrix," IEEE Trans on Information Theory, vol. IT-14, pp.699-707, September 1968. [4] John G. Proakis, "Digital Communications", 4th ed., McGraw Hill, 2001.
From: dvsarwate on 15 Jul 2010 22:20 On Jul 15, 11:25 am, Jitendra Rayala <jray...(a)hotmail.com> wrote: > > [dt, dw, df, dt*dw, dt*df] > > =================================================== > > The results from a single run of this script would be: >[0.70711 0.70711 0.70711 0.5 0.5]. I find it very interesting that the rms bandwidth dw in radians/s is the same as the rms bandwidth df in Hz instead of differing by a factor of 2*pi. I wonder if this is a property of Gaussian pulses, or does it apply more generally to any pulse? Or is this curious phenomenon an artifact of MATLAB programming? --Dilip Sarwate
From: robert bristow-johnson on 15 Jul 2010 23:48 On Jul 15, 10:20 pm, dvsarwate <dvsarw...(a)gmail.com> wrote: > On Jul 15, 11:25 am, Jitendra Rayala <jray...(a)hotmail.com> wrote: > > > > > [dt, dw, df, dt*dw, dt*df] > > > =================================================== > > > The results from a single run of this script would be: > >[0.70711 0.70711 0.70711 0.5 0.5]. > > I find it very interesting that the rms bandwidth dw > in radians/s is the same as the rms bandwidth df in Hz > instead of differing by a factor of 2*pi. but it *did* differ by such a factor, no? what is the difference between these two lines: > > dw = sqrt(sum(w.^2.*gf.^2)/(sum(gf.^2))); > > df = 2*pi*sqrt(sum(f.^2.*gf.^2)/(sum(gf.^2))); if Jitendra did not toss in that factor of 2*pi (and i do not know why he/she did that), df *would* have been dw/(2*pi). > I wonder > if this is a property of Gaussian pulses, or does it > apply more generally to any pulse? Or is this curious > phenomenon an artifact of MATLAB programming? it appears to me because of a spurious factor of 2*pi tossed in. r b-j
From: dvsarwate on 16 Jul 2010 07:52 On Jul 15, 10:48 pm, robert bristow-johnson <r...(a)audioimagination.com> wrote: > but it *did* differ by such a factor, no? what is the difference > between these two lines: > > > > dw = sqrt(sum(w.^2.*gf.^2)/(sum(gf.^2))); > > > df = 2*pi*sqrt(sum(f.^2.*gf.^2)/(sum(gf.^2))); Well, if w.^2 were the same as f.^2, then the two lines would give numbers differing by the "spurious factor" 2*pi, and indeed, less mathwork (pun intended) would be required if Jitendra had simply written df = 2*pi*dw. But he didn't, and I don't understand MATLAB, and so cannot figure out what is going on. All I am going by is the claim that df and dw happen to have the same value sqrt(2) which puzzles me. The great god MATLAB as spoken, but I am a non-believer.... --Dilip Sarwate
From: Jitendra Rayala on 16 Jul 2010 12:04
On Jul 16, 4:52 am, dvsarwate <dvsarw...(a)gmail.com> wrote: > On Jul 15, 10:48 pm, robert bristow-johnson > > <r...(a)audioimagination.com> wrote: > > but it *did* differ by such a factor, no? what is the difference > > between these two lines: > > > > > dw = sqrt(sum(w.^2.*gf.^2)/(sum(gf.^2))); > > > > df = 2*pi*sqrt(sum(f.^2.*gf.^2)/(sum(gf.^2))); > > Well, if w.^2 were the same as f.^2, then the two lines > would give numbers differing by the "spurious factor" > 2*pi, and indeed, less mathwork (pun intended) would be > required if Jitendra had simply written df = 2*pi*dw. The 2*pi is meant to show that the dw and df are also related to each other by the factor 2*pi (dw=2*pi*df) similar to w=2*pi*f. Nothing more. Actually if we consider df without the 2*pi, then dw*dt >= 1/2 and df*dt >= 1/(4pi) > But he didn't, You knew I am a male but robert played it safe by saying he/she. I get mails addressed to me as Ms. and found that name ending with "a" is considered a female name in some parts of the world. > and I don't understand MATLAB, and so > cannot figure out what is going on. All I am going by > is the claim that df and dw happen to have the same > value sqrt(2) which puzzles me. The great god MATLAB > as spoken, but I am a non-believer.... > > --Dilip Sarwate I occasionally visit comp.dsp and I see much negative view of Matlab which I find bit surprising. It's just a tool. Isn't it the the user's responsibility to check what they provide and what comes out? If somebody does not like it, they can use some other tool if available or may be start a company and develop another tool? Jitendra |