Hi all, I am a newbie in DSP and need your help on understanding Hilbert transform... I have a real, double sided signal coming in. I want to use Hilbert transform to get rid of the negative side spectrum. Then, since I have only one side of spectrum expressed in an analytic signal, I want to down sample it by 2. When the signal is expressed in analytic signal (after Hilbert FIR), the bandwidth should be from 0 to fs/2. Before I read a chapter in my multi-rate DSP book, I thought I always have to shift it down to baseband before the down sampling. However, one example I saw in the book performed down-sample by 2 right after the Hilbert FIR. I don't understand why it does not create aliasing...Wouldn't it "fold" the signal between fs/4 and fs/2 to fs/4 to 0? Thanks, Thomas
Hilbert transform and down sampling
Started by ●March 6, 2012
Reply by ●March 7, 20122012-03-07
On 3/6/12 7:20 PM, Thomas wrote:> Hi all, > > I am a newbie in DSP and need your help on understanding Hilbert > transform... > > I have a real, double sided signal coming in. I want to use Hilbert > transform to get rid of the negative side spectrum. Then, since I have > only one side of spectrum expressed in an analytic signal, I want to > down sample it by 2. > When the signal is expressed in analytic signal (after Hilbert FIR), > the bandwidth should be from 0 to fs/2. > > Before I read a chapter in my multi-rate DSP book, I thought I always > have to shift it down to baseband before the down sampling. However, > one example I saw in the book performed down-sample by 2 right after > the Hilbert FIR. I don't understand why it does not create > aliasing...Wouldn't it "fold" the signal between fs/4 and fs/2 to fs/4 > to 0?i think in principle it should work because when you go from real to analytical, you changed it from one wire to two. and then if you sample those two wires at 1/2 the sampling rate, you end up with the same amount of information as when you sampled the real signal (before the hilbert) at the full sampling rate. essentially the spectrum from -fs/2 to 0 gets aliased on top of what lives between DC and +fs/2. but since that spectrum in the negative frequencies is known to be zero, no aliasing occurs in the overlap. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
Reply by ●March 7, 20122012-03-07
On Tue, 6 Mar 2012 16:20:33 -0800 (PST), Thomas <gongdori@hotmail.com> wrote:>Hi all, > >I am a newbie in DSP and need your help on understanding Hilbert >transform... > >I have a real, double sided signal coming in. I want to use Hilbert >transform to get rid of the negative side spectrum. Then, since I have >only one side of spectrum expressed in an analytic signal, I want to >down sample it by 2. >When the signal is expressed in analytic signal (after Hilbert FIR), >the bandwidth should be from 0 to fs/2. > >Before I read a chapter in my multi-rate DSP book, I thought I always >have to shift it down to baseband before the down sampling. However, >one example I saw in the book performed down-sample by 2 right after >the Hilbert FIR. I don't understand why it does not create >aliasing...Wouldn't it "fold" the signal between fs/4 and fs/2 to fs/4 >to 0? > >Thanks, > >ThomasA little off topic but thought I would post it here. A while ago someone posted this in IEEE Signal Processing. It was a lower noise version of the typical analytic signal conversion. Ie. Matlab hilbert function. Not sure how it compares with the filtering method. function [ z ] = analytic( s ) %ANALYTIC Compute the analytic function N = length(s); S = fft(s,2*N); S(2:N) = S(2:N).*2; S(N+2:2*N)=0; z = ifft(S); z(N+1:2*N) = 0; end
Reply by ●March 7, 20122012-03-07
Thank you all for your reply. But, I still don't understand how it works. If I have a real signal whose spectrum is spread from -fs/2 to fs/2 (double sided), I can get rid of the negative portion by creating analytic signal. Then, after the Hilbert transform, I would have one sided spectrum which occupies 0 to fs/2. I think it can be decimated by 2 because the bandwidth was reduced by 2 (from double to single side) as you mentioned. However, wouldn't it be possible only when I shift the spectrum to baseband? (by shifting the spectrum left by fs/4) If I have a spectrum from 0 to fs/2, and change the sampling rate from fs to fs/2, the spectrum between 0 to fs/4 and fs/4 to fs/2 will overlap... wouldn't it? Thomas
Reply by ●March 7, 20122012-03-07
On 3/7/2012 7:34 AM, Thomas wrote:> Thank you all for your reply. > But, I still don't understand how it works. > > If I have a real signal whose spectrum is spread from -fs/2 to fs/2 > (double sided), I can get rid of the negative portion by creating > analytic signal. > Then, after the Hilbert transform, I would have one sided spectrum > which occupies 0 to fs/2. > > I think it can be decimated by 2 because the bandwidth was reduced by > 2 (from double to single side) as you mentioned. > However, wouldn't it be possible only when I shift the spectrum to > baseband? (by shifting the spectrum left by fs/4) > > If I have a spectrum from 0 to fs/2, and change the sampling rate from > fs to fs/2, the spectrum between 0 to fs/4 and fs/4 to fs/2 will > overlap... wouldn't it?No, because each of your analytic samples has two parts, real and imaginary. There is just as much information in the down-shifted analytic samples as there was in the two-sided ones, just in a different form. A signal with a bandwidth B needs 2*B pieces of information per second. Some combinations are 2*B real samples, B real and B imaginary samples, and B amplitude samples with B slope samples. All sets allow reconstruction and each set is barely sufficient. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by ●March 7, 20122012-03-07
On Tuesday, March 6, 2012 7:20:33 PM UTC-5, Thomas wrote:> Hi all, >=20 > I am a newbie in DSP and need your help on understanding Hilbert > transform... >=20 > I have a real, double sided signal coming in. I want to use Hilbert > transform to get rid of the negative side spectrum. Then, since I have > only one side of spectrum expressed in an analytic signal, I want to > down sample it by 2. > When the signal is expressed in analytic signal (after Hilbert FIR), > the bandwidth should be from 0 to fs/2. >=20 > Before I read a chapter in my multi-rate DSP book, I thought I always > have to shift it down to baseband before the down sampling. However, > one example I saw in the book performed down-sample by 2 right after > the Hilbert FIR. I don't understand why it does not create > aliasing...Wouldn't it "fold" the signal between fs/4 and fs/2 to fs/4 > to 0? >=20 > Thanks, >=20 > ThomasHello Thomas, Perhaps you need to try something simple to see why this works. As you know analytic signals have one sided fourier transforms and each sin= usoidal component of the original signal when analytically extended may be = written as Z[n] =3D A*e^(j*phase) * ( cos(2pi*n*f/fs) + j*sin(2pi*n*f/fs) ) where fs is the smaple rate and f is the frequency of the component. The am= plitude A and complex phase factor are constant and just carry thru the ana= lysis. Now this expression for a single freq component may simply be rewritten as Z[n] =3D A*e^(j*phase) * ( cos(2pi*2n*f/(fs/2)) + j*sin(2pi*2n*f/(fs/2))= ) which if we substitute m=3D2n and fss =3D fs/2 Z[m] =3D A*e^(j*phase) * ( cos(2pi*m*f/fss) + j*sin(2pi*m*f/fss) ) Which we can still see is analytic and is comprised of every other sample o= f Z[n]. Now at which point does Z[m] have its frequency wrap? In the original analy= tic signal (sampled at fs), f may range from [0, fs) without being remapped= , likewise for the decimated version, Z[m], f may range from [0, fss] witho= ut remapping which of course ranges from [0, fs/2]. IHTH, Clay
Reply by ●March 8, 20122012-03-08
On Mar 7, 7:34=A0am, Thomas <gongd...@hotmail.com> wrote:> Thank you all for your reply. > But, I still don't understand how it works. > > If I have a real signal whose spectrum is spread from -fs/2 to fs/2 > (double sided), I can get rid of the negative portion by creating > analytic signal. > Then, after the Hilbert transform, I would have one sided spectrum > which occupies 0 to fs/2. > > I think it can be decimated by 2 because the bandwidth was reduced by > 2 (from double to single side) as you mentioned. > However, wouldn't it be possible only when I shift the spectrum to > baseband? (by shifting the spectrum left by fs/4) > > If I have a spectrum from 0 to fs/2, and change the sampling rate from > fs to fs/2, the spectrum between 0 to fs/4 and fs/4 to fs/2 will > overlap... wouldn't it? > > ThomasI haven't checked the math exactly, but because you've reduced the frequency bandwidth in producing the analytic signal, you can decimate. The real tradeoff is that now the samples are complex instead of real. The aliasing is deterministic in this case. Consider the samples of the modulation function for fs/4: exp(j*2*pi*(0:10)/4) =3D 1, i, -1, -i, 1, i, -1, -i ... So modulating by this and decimating (and if you take the samples corresponding to 1, -1 , 1, -1). You can see you don't really need to apply the modulation function to start with. You could decimate and then just multiply every other sample by -1. Cheers, David