Hello, I've been trying to understand today how does frequency deviation (Fd) affect the performance of FSK modulation. More specifically how can one express required receiver sensitivity (for a given bitrate and BER) as a function of Fd? I used to think, apparently naively, that the larger the Fd the better (leaving aside spectral efficiency considerations). However, I've found this paper from Atemel: discuss-gnuradio@gnu.org ... which shows that, for a given receiver (and other modulation params) there is a value for Fd that maximizes the performance of the receiver (see Figure 9-2). Unfortunately I was unable to find any more generic discussion on how to choose optimal Fd for a given receiver. I would also appreciate any suggestions as how to use USRP+gnuradio for evaluation of a 3rd party FSK link? I.e. I have a TX and RX units talking to each other, and might want to use USRP to introduce "controllable noise" so that I could observe how my link performs (in terms of BER)? Thanks, joanna.
on 2012-12-16 00:49
on 2012-12-16 21:35
Hi! - response interleaved. (after some sucking at list management) -nw On Sat, Dec 15, 2012 at 5:48 PM, Joanna Rutkowska < joanna@invisiblethingslab.com> wrote: > Hello, > > I've been trying to understand today how does frequency deviation (Fd) > affect the performance of FSK modulation. More specifically how can one > express required receiver sensitivity (for a given bitrate and BER) as a > function of Fd? > > I used to think, apparently naively, that the larger the Fd the better > (leaving aside spectral efficiency considerations). My understanding of FSK is that the most important factor is that the frequencies are orthogonal. It helps me to go through the math of creating the constellation points. The basis functions in FSK are cosines at whatever frequencies your choose, let's go with binary FSK. b1 = cos(2*pi*f1 * t); b2 = cos(2*pi*f2 * t); s1 = b1; s2 = b2; The constellation can be plotted by the zero-lag correlation of the symbols with the basis functions. symbol1 = [integral(0, bit time, s1.*b1 ), integral(0, bit time, s1.*b2 ) ] symbol0 = [integral(0, bit time, s2.*b2 ), integral(0, bit time, s2.*b2 ) ] Orthogonal frequencies will be at right angles (obviously), anything else will have an angular distance less than 90 degrees, which means they are "closer", so probability of bit error is worse. Orthogonal is basically equivalent to having an integer number of cycles in the bit time. So Fd is not so important, but orthogonality is. Somewhat counter-intuitive, but try giving the math a shot and playing with it in whatever software you use for this kind of stuff (octave, matlab, python, whatever). Here's something that I threw together in Octave pretty quickly. http://pastebin.com/TMMDASST Changing f2 to a decimal will cause non-integer number of cycles for the 2nd symbol, and you can see the angle change. It might help to make the time array something more useful, but hopefully it's good enough to see the concept. > However, I've found > this paper from Atemel: > > discuss-gnuradio@gnu.org > > Copy/paste error, so I'll comment on what I thought of when I read this. Granted I've only read a couple of textbooks with discussions on FSK I've only seen P(BE) plots and the like focusing on E_b/N_0. The equations they give will assume that the symbols are orthogonal. > ... which shows that, for a given receiver (and other modulation params) > there is a value for Fd that maximizes the performance of the receiver > (see Figure 9-2). > > Unfortunately I was unable to find any more generic discussion on how to > choose optimal Fd for a given receiver. > > I think as long as Fd will cause an integer number of cycles in the bit time, you're in business. > I would also appreciate any suggestions as how to use USRP+gnuradio for > evaluation of a 3rd party FSK link? I.e. I have a TX and RX units > talking to each other, and might want to use USRP to introduce > "controllable noise" so that I could observe how my link performs (in > terms of BER)? > > Hopefully someone else can help you with this, because I can't :-)
on 2012-12-16 23:29
On 12/16/12 04:32, Nathan West wrote: >> express required receiver sensitivity (for a given bitrate and BER) as a > The basis functions in FSK are cosines at whatever frequencies your choose, > > So Fd is not so important, but orthogonality is. Somewhat > concept. > Granted I've only read a couple of textbooks with discussions on FSK I've >> >> I think as long as Fd will cause an integer number of cycles in the bit > time, you're in business. > > Hi Nathan, Thanks for the detailed answer! I did some more study and my understating is that what you wrote above applies to (theoretical) coherent demodulation. AFAIU nearly all practical receivers use non-coherent demodulation (because it's cheaper, and apparently, has about 1dB penalty only on sensitivity?). This non-coherent detection is apparently realized using two bandpass filters centered around the two frequencies. So, my understanding goes, in any practical realization, it should be better (not worse at least) to use as large Fd as one can, because it makes the job of the two filters easier... But, it's apparently not like this. Here's the link to the Atmel paper I mentioned before (again, please take a look at Figure 9-2): www.atmel.com/Images/doc9174.pdf Also, please take a look at the datesheet for the IC that is referred in the paper above: http://www.atmel.com/Images/doc4596.pdf This is an FSK receiver from Atmel. Even though it apparently supports only data rates between 1-20 kbps, its supported Fd is within a range of 18kHz-50kHz. This seems to contradict "your" theory above -- why would Atmel use such a wide bandwith if they could just use no more than 20kHz for 20kbps? Thanks, joanna.
on 2012-12-17 03:40
On Sun, Dec 16, 2012 at 11:27:47PM +0100, Joanna Rutkowska wrote: > > Thanks for the detailed answer! I did some more study and my > understating is that what you wrote above applies to (theoretical) > coherent demodulation. AFAIU nearly all practical receivers use > non-coherent demodulation (because it's cheaper, and apparently, has > about 1dB penalty only on sensitivity?). This non-coherent detection > is apparently realized using two bandpass filters centered around the > two frequencies. I believe you are correct that sensitivity vs. deviation is strongly dependent on the receiver implementation. You may not be correct assuming anything about the particular receiver implementation in the Atmel part. > So, my understanding goes, in any practical realization, it should be > better (not worse at least) to use as large Fd as one can, because it > makes the job of the two filters easier... > > But, it's apparently not like this. Here's the link to the Atmel paper > I mentioned before (again, please take a look at Figure 9-2): > > www.atmel.com/Images/doc9174.pdf Making a guess about the receiver implementation, I'd say you correctly describe why the sensitivity improves as Fd increases toward 50 kHz. I'd further guess that the reason sensitivity gets worse above 50 kHz deviation is that the bandwidth of the signal exceeds the fixed IF filter in the receiver.
on 2012-12-17 05:37
On Sun, Dec 16, 2012 at 9:39 PM, Michael Ossmann <mike@ossmann.com> wrote: > I believe you are correct that sensitivity vs. deviation is strongly > > > > www.atmel.com/Images/doc9174.pdf > > Making a guess about the receiver implementation, I'd say you correctly > describe why the sensitivity improves as Fd increases toward 50 kHz. > I'd further guess that the reason sensitivity gets worse above 50 kHz > deviation is that the bandwidth of the signal exceeds the fixed IF > filter in the receiver. > The IF filter says it's around 400kHz wide at the 3dB points, so I doubt a 50kHz deviation is hitting those limits. They also have frequency offset numbers which suggest they can handle significant frequency offset and still get their data through. Looking at the graph and reading through the datasheet it seems there is a noise figure of around 10dB and 8.5dB SNR required to work well. At the 120kHz deviation, we can get the input level at room temperature as such: -174 dBm/Hz + 10*log10(120e3*2) + 10dB + 8.5dB = -101.7dBm Very close to the -102dBm they show in their graph. Even at 30kHz deviation which is shown as -107dBm on the graph comes up with a very close -107.7dBm from the calculation. What's actually interesting is for a value of 100kHz deviation shows on the graph a sensitivity of -105dBm whereas the calculation comes up with -102.5dBm. If the receiver were actually implemented as a pair of bandpass filters as in Figure 9-1, then the above calculation wouldn't hold since the noise between the filters would be filtered out and not contribute to the SNR calculation. If the two bandpass filters actually covered -f_dev to just below carrier and just above carrier to +f_dev they would effectively cover the entire -f_dev to f_dev bandwidth. If the lower cutoff of each bandpass filter was actually pushed out (like in Figure 9-1), filtering out the noise and limiting the bandwidth of the system to be less than the occupied bandwidth of the transmission, that might explain what is happening. It's really just an SNR in a given bandwidth problem. Your two frequencies could be hundreds of MHz apart. If the two bandpass filters are the same width, the effective bandwidth of the system is the same - is it not? After writing all this, I am not sure I've convinced myself I am right or wrong but it's fun to think about. Thanks! Brian
on 2012-12-17 05:45
On Sun, Dec 16, 2012 at 11:36:56PM -0500, Brian Padalino wrote: > > It's really just an SNR in a given bandwidth problem. That makes sense. Looking back through the datasheet, I suspect that FM demodulation is implemented by the PLL phase detector rather than by bandpass filters.
on 2012-12-17 06:15
On Sun, Dec 16, 2012 at 2:27 PM, Joanna Rutkowska < joanna@invisiblethingslab.com> wrote: > > This is an FSK receiver from Atmel. Even though it apparently supports > only data rates between 1-20 kbps, its supported Fd is within a range of > 18kHz-50kHz. This seems to contradict "your" theory above -- why would > Atmel use such a wide bandwith if they could just use no more than 20kHz > for 20kbps? > Joanna, Increasing deviation beyond the deviation of MSK (i.e. the minimum) does not help performance, but it can help ease receiver design. The reason to use a very high deviation at a low data rate is to make it easier to deal with frequency error with low cost crystals. If you have low cost 50ppm crystals on both ends, you could have 100 ppm total error. 100 ppm at 450 MHz is 45kHz. Spreading the 2 tones further apart allows you to guarantee that one will always have positive deviation and the other will have negative deviation. The FSK demodulation method with 2 filters is almost never used. This chip likely uses either direct frequency measurement (derivative of phase) or a PLL. Matt
on 2012-12-17 23:43
On 12/17/12 06:13, Matt Ettus wrote: > > 100 ppm at 450 MHz is 45kHz. Spreading the 2 tones further apart allows > you to guarantee that one will always have positive deviation and the other > will have negative deviation. > > The FSK demodulation method with 2 filters is almost never used. This chip > likely uses either direct frequency measurement (derivative of phase) or a > PLL. > > Matt > Thanks Matt. This makes sense. joanna.
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.