Hey, I am just working a problem regarding digital upconversion and I have encountered a problem that is probably very easy to solve Asssume I have a signal with a bandwidth B = 1/Ts. I want to convert this signal to a higher carrier frequency in digital domain. But how exactly do I do that in the digital domain? Specifically, I have a baseband signal that has a bandwidth of 5 MHz (symetrically around zero) and want to shift it to a carrier frequency of 5 MHz In my opinion, I should just multiple the signal with the carrier, right? supconv[t] = signal[t]*cos(2*pi*1/(B)*fc*[t]) t = 0,1,...., M-1 Thus supconv[t] = signal[t]*cos(2*pi*1/(5MHz)*5MHz*[t]) But obviously that does not work, since in i would always get multiples of 2*pi which is always one. So what am I missing. Do I have to upsample the signal before conversion? Best steve0 _____________________________ Posted through www.DSPRelated.com
Upconversion of digital signal
Started by ●January 19, 2015
Reply by ●January 19, 20152015-01-19
On 20.01.2015 0:41, steve_0 wrote:> Hey, > > I am just working a problem regarding digital upconversion and I have > encountered a problem that is probably very easy to solve > > Asssume I have a signal with a bandwidth B = 1/Ts. I want to convert this > signal to a higher carrier frequency in digital domain. But how exactly do > I do that in the digital domain? > > Specifically, I have a baseband signal that has a bandwidth of 5 MHz > (symetrically around zero) and want to shift it to a carrier frequency of > 5 MHz > In my opinion, I should just multiple the signal with the carrier, right? > > supconv[t] = signal[t]*cos(2*pi*1/(B)*fc*[t]) > > t = 0,1,...., M-1 > > Thus > > supconv[t] = signal[t]*cos(2*pi*1/(5MHz)*5MHz*[t]) > > But obviously that does not work, since in i would always get multiples of > 2*pi which is always one. So what am I missing. Do I have to upsample the > signal before conversion? > > Best > > steve0 > > > > _____________________________ > Posted through www.DSPRelated.com >Steve, there are three questions in your message. 1. "But how exactly do I do that in the digital domain?" A good reference is "Understanding Digital Signal Processing" by R. Lyons, chapter 8 "Quadrature signals". 2. "In my opinion, I should just multiple the signal with the carrier, right?" Yes. 3. "Do I have to upsample the signal before conversion?" It's not clear from your description what is the sampling rate of your signal. The Nyquist frequency of your digital signal prior to the frequency shift must be not less than the sum of the one-sided bandwidth of the signal and the carrier frequency. Whether you need to upsample or not depends on the initial sampling rate of the signal. Evgeny.
Reply by ●January 19, 20152015-01-19
On Mon, 19 Jan 2015 15:41:18 -0600, "steve_0" <103309@dsprelated> wrote:>Hey, > >I am just working a problem regarding digital upconversion and I have >encountered a problem that is probably very easy to solve > >Asssume I have a signal with a bandwidth B = 1/Ts. I want to convert this >signal to a higher carrier frequency in digital domain. But how exactly do >I do that in the digital domain? > >Specifically, I have a baseband signal that has a bandwidth of 5 MHz >(symetrically around zero) and want to shift it to a carrier frequency of >5 MHz >In my opinion, I should just multiple the signal with the carrier, right? > >supconv[t] = signal[t]*cos(2*pi*1/(B)*fc*[t]) > >t = 0,1,...., M-1 > >Thus > >supconv[t] = signal[t]*cos(2*pi*1/(5MHz)*5MHz*[t]) > >But obviously that does not work, since in i would always get multiples of >2*pi which is always one. So what am I missing. Do I have to upsample the >signal before conversion? > >Best > >steve0 > > > >_____________________________ >Posted through www.DSPRelated.comGoing from what you've said: B = 1/Ts That implies a complex-valued baseband signal, perhaps complex-valued symbols in communication signal. If it were not complex-valued, it could not support B with 1/Ts. A real-valued signal could have no more bandwidth than B = 1/(2*Ts) Since the signal bandwidth already occupoes all of the supportable bandwidth of the sampling interval Ts, it cannot be moved to a higher frequency without increasing the sample rate. You've also said 1/Ts = 5MHz, and that you wish to mix it up to 5MHz. This is essentially moving it from a complex baseband signal up to what is sometimes called single-sideband baseband. This requires increasing the sample rate to 10MHz maintaining complex-valued outputs. If you want real-valued outputs you need a sample rate of 20 MHz. Mixing it to 5MHz from complex baseband can be done by multiplying it by a complex phasor at 5MHz. Eric Jacobsen Anchor Hill Communications http://www.anchorhill.com
Reply by ●January 20, 20152015-01-20
On Tuesday, January 20, 2015 at 10:41:22 AM UTC+13, steve_0 wrote:> Hey, > > I am just working a problem regarding digital upconversion and I have > encountered a problem that is probably very easy to solve > > Asssume I have a signal with a bandwidth B = 1/Ts. I want to convert this > signal to a higher carrier frequency in digital domain. But how exactly do > I do that in the digital domain? > > Specifically, I have a baseband signal that has a bandwidth of 5 MHz > (symetrically around zero) and want to shift it to a carrier frequency of > 5 MHz > In my opinion, I should just multiple the signal with the carrier, right? > > supconv[t] = signal[t]*cos(2*pi*1/(B)*fc*[t]) > > t = 0,1,...., M-1 > > Thus > > supconv[t] = signal[t]*cos(2*pi*1/(5MHz)*5MHz*[t]) > > But obviously that does not work, since in i would always get multiples of > 2*pi which is always one. So what am I missing. Do I have to upsample the > signal before conversion? > > Best > > steve0 > > > > _____________________________ > Posted through www.DSPRelated.comYou are running out of BW because of the limitation of your original sampling freq. If your new centre freq is 5MHz and BW is 5MHz then your new Nyquist rate is 10MHz. So you need to sample at 10MHz or20MHz depending on whether it is a complex or real signal respectively.
Reply by ●January 20, 20152015-01-20
On Tue, 20 Jan 2015 02:14:26 +0300, Evgeny Filatov <e.v.filatov@ieee.org> wrote:>On 20.01.2015 0:41, steve_0 wrote: > >> Hey, >> >> I am just working a problem regarding digital upconversion and I have >> encountered a problem that is probably very easy to solve >> >> Asssume I have a signal with a bandwidth B = 1/Ts. I want to convert this >> signal to a higher carrier frequency in digital domain. But how exactly do >> I do that in the digital domain? >> >> Specifically, I have a baseband signal that has a bandwidth of 5 MHz >> (symetrically around zero) and want to shift it to a carrier frequency of >> 5 MHz >> In my opinion, I should just multiple the signal with the carrier, right? >> >> supconv[t] = signal[t]*cos(2*pi*1/(B)*fc*[t]) >> >> t = 0,1,...., M-1 >> >> Thus >> >> supconv[t] = signal[t]*cos(2*pi*1/(5MHz)*5MHz*[t]) >> >> But obviously that does not work, since in i would always get multiples of >> 2*pi which is always one. So what am I missing. Do I have to upsample the >> signal before conversion? >> >> Best >> steve0>Steve, there are three questions in your message. > >1. "But how exactly do I do that in the digital domain?" >A good reference is "Understanding Digital Signal Processing" by R. >Lyons, chapter 8 "Quadrature signals". > >2. "In my opinion, I should just multiple the signal with the carrier, >right?" >Yes. > >3. "Do I have to upsample the signal before conversion?" >It's not clear from your description what is the sampling rate of your >signal. The Nyquist frequency of your digital signal prior to the >frequency shift must be not less than the sum of the one-sided bandwidth >of the signal and the carrier frequency. Whether you need to upsample or >not depends on the initial sampling rate of the signal. > >Evgeny.Hello Evgeny, If you send me an e-mail then I'll be happy to send you the errata for my "Understanding Digital Signal Processing" book. [-Rick-]
Reply by ●January 20, 20152015-01-20
On Mon, 19 Jan 2015 15:41:18 -0600, "steve_0" <103309@dsprelated> wrote:>Hey, > >I am just working a problem regarding digital upconversion and I have >encountered a problem that is probably very easy to solve > >Asssume I have a signal with a bandwidth B = 1/Ts. I want to convert this >signal to a higher carrier frequency in digital domain. But how exactly do >I do that in the digital domain? > >Specifically, I have a baseband signal that has a bandwidth of 5 MHz >(symetrically around zero) and want to shift it to a carrier frequency of >5 MHz >In my opinion, I should just multiple the signal with the carrier, right? > >supconv[t] = signal[t]*cos(2*pi*1/(B)*fc*[t]) > >t = 0,1,...., M-1 > >Thus > >supconv[t] = signal[t]*cos(2*pi*1/(5MHz)*5MHz*[t]) > >But obviously that does not work, since in i would always get multiples of >2*pi which is always one. So what am I missing. Do I have to upsample the >signal before conversion? > >Best >steve0Hello Steve, Evgeny suggested that you have a look at Chapter 8 of my "Understanding Digital Signal Processing" book. That's a good suggestion. As much as I'd like for you to buy a copy of my book, which would enable me to buy milk and bread for my starving children, I'll tell you that much of my Chapter 8 material can be found on-line at: http://www.dsprelated.com/showarticle/192.php By the way, when Eric wrote: "Mixing it to 5MHz from complex baseband can be done by multiplying it by a complex phasor at 5MHz." he's referring to the complex valued signal shown on the right side of Figure 10 in the above link. The 'fo' frequency, in this case would be 5 MHz. In discrete samples, Eric's "complex phasor" (what I called a "complex exponential") would be: cos(2*pi*fo*n/Fs) +j*sin(2*pi*fo*n/Fs) where 'n' is the time-domain index of the discrete samples and 'Fs' is the signal sample rate measured in Hz. Good Luck, [-Rick-]
Reply by ●January 20, 20152015-01-20
>On Mon, 19 Jan 2015 15:41:18 -0600, "steve_0" <103309@dsprelated> >wrote: > >>Hey, >> >>I am just working a problem regarding digital upconversion and I have >>encountered a problem that is probably very easy to solve >> >>Asssume I have a signal with a bandwidth B = 1/Ts. I want to convertthis>>signal to a higher carrier frequency in digital domain. But how exactlydo>>I do that in the digital domain? >> >>Specifically, I have a baseband signal that has a bandwidth of 5 MHz >>(symetrically around zero) and want to shift it to a carrier frequency of>>5 MHz >>In my opinion, I should just multiple the signal with the carrier,right?>> >>supconv[t] = signal[t]*cos(2*pi*1/(B)*fc*[t]) >> >>t = 0,1,...., M-1 >> >>Thus >> >>supconv[t] = signal[t]*cos(2*pi*1/(5MHz)*5MHz*[t]) >> >>But obviously that does not work, since in i would always get multiplesof>>2*pi which is always one. So what am I missing. Do I have to upsamplethe>>signal before conversion? >> >>Best >>steve0 > >Hello Steve, > Evgeny suggested that you have a look at Chapter 8 >of my "Understanding Digital Signal Processing" book. >That's a good suggestion. > >As much as I'd like for you to buy a copy of my book, >which would enable me to buy milk and bread for my >starving children, I'll tell you that much of my Chapter >8 material can be found on-line at: > >Sorry to hear that Rick. If it is that bad out there I wouldn't make children in the first place. Kaz _____________________________ Posted through www.DSPRelated.com
Reply by ●January 20, 20152015-01-20
On Mon, 19 Jan 2015 15:41:18 -0600, steve_0 wrote:> Hey, > > I am just working a problem regarding digital upconversion and I have > encountered a problem that is probably very easy to solve > > Asssume I have a signal with a bandwidth B = 1/Ts. I want to convert > this signal to a higher carrier frequency in digital domain. But how > exactly do I do that in the digital domain?Do you say the bandwidth is B = 1/Ts because you are conflating bandwidth with Nyquist, because you are actually severely undersampled, or because you're just confused? The way that bandwidth is normally defined, you can't even sample at Fs = B: I'm not sure if you're confused about what's possible or if you're neglecting to define your terms.> Specifically, I have a baseband signal that has a bandwidth of 5 MHz > (symetrically around zero) and want to shift it to a carrier frequency > of 5 MHz.Again, I hope that you are defining "bandwidth" differently than normal: if you mean the signal extends from -2.5MHz to +2.5MHz, then you can at least get there from here theoretically, even if what you want is physically impossible (unless you've very patient -- can you wait around an infinite amount of time for your filters to settle?).> In my opinion, I should just multiple the signal with the > carrier, right? > > supconv[t] = signal[t]*cos(2*pi*1/(B)*fc*[t]) > > t = 0,1,...., M-1 > > Thus > > supconv[t] = signal[t]*cos(2*pi*1/(5MHz)*5MHz*[t]) > > But obviously that does not work, since in i would always get multiples > of 2*pi which is always one. So what am I missing. Do I have to upsample > the signal before conversion?You're standing in a rather silly spot in sampling theory, finding some apparent contradictions which really aren't there -- but which are resolved by understanding the math better. If you're sampling at 5MHz, then in the sampled-time domain, 5MHz is either the same as baseband, or it doesn't exist at all. So your upconversion that multiplies by cos(2*pi*integer) = 1 is exactly correct, if confusing. I don't know what your background in DSP is, but this article should help: http://wescottdesign.com/articles/Sampling/sampling.pdf It describes the sampled-time domain in the "f = 1/Ts doesn't exist" way -- keep in mind that that view is not the one commonly used by DSP practitioners: rather, it was the view that I felt that I could teach without making the article about 10 times longer and 100 times harder to read for the uninitiated. -- www.wescottdesign.com
Reply by ●January 20, 20152015-01-20
On Tue, 20 Jan 2015 06:16:16 -0600, "kaz" <37480@dsprelated> wrote: [Snipped by Lyons]>> >>Hello Steve, >> Evgeny suggested that you have a look at Chapter 8 >>of my "Understanding Digital Signal Processing" book. >>That's a good suggestion. >> >>As much as I'd like for you to buy a copy of my book, >>which would enable me to buy milk and bread for my >>starving children, I'll tell you that much of my Chapter >>8 material can be found on-line at: >> >> > >Sorry to hear that Rick. >If it is that bad out there I wouldn't make children in the first place. > >KazKaz, Did have your funny bone surgically removed when you were a kid? [-Rick-]
Reply by ●January 20, 20152015-01-20
On 1/20/2015 1:37 PM, Rick Lyons wrote:> On Tue, 20 Jan 2015 06:16:16 -0600, "kaz" <37480@dsprelated> wrote: > > [Snipped by Lyons] >>> >>> Hello Steve, >>> Evgeny suggested that you have a look at Chapter 8 >>> of my "Understanding Digital Signal Processing" book. >>> That's a good suggestion. >>> >>> As much as I'd like for you to buy a copy of my book, >>> which would enable me to buy milk and bread for my >>> starving children, I'll tell you that much of my Chapter >>> 8 material can be found on-line at: >>> >>> >> >> Sorry to hear that Rick. >> If it is that bad out there I wouldn't make children in the first place. >> >> Kaz > > Kaz, > Did have your funny bone surgically > removed when you were a kid?Do you have any mirrors in your home? Maybe you can find your surgery scar. -- Rick






