Hot answers tagged

9

I think that you could get the best performance in terms of demodulator bit-error rate (BER) with a phase-locked loop. You need it to be fast, though. I think your best bet for a fast algorithm that still performs reasonably well is zero crossing. On a side note, I would like to suggest that you change the 2200 Hz to 2400 Hz. A naive implementation of ...


8

As you have realized, the hard part of doing digital communications is carrier, symbol and frame synchronization, and channel estimation/equalization. The bad news is that you can't get around these problems. The good news is that implementing these is not that hard, as long as you limit yourself to narrowband BPSK. I know, because I have done this myself, ...


8

I am currently implementing acoustic FSK modulation and demodulation. I am not a signal processing guy… Since you say you have matched filters, and you mention non-coherent detection, I think you're pretty much of a digital communication person already – the step to being a DSP person is pretty small :) The fully-fledged synchronizer SDR approach So, the ...


7

The $BT$ product is the bandwidth-symbol time product where $B$ is the $-3\textrm{ dB}$(half-power) bandwidth of the pulse/filter and $T$ is the symbol duration. For different applications you will find varying recommended values. In GSM telephony for instance, a $BT=0.3$ is recommended. In satellite communications with GMSK, for near-earth missions the ...


6

What is the advantage of performing the FSK using IQ modulation? You only need one RF oscillator operating at a single frequency, instead of having 2 (or more in the case of M-ary FSK) oscillators operating at separate frequencies for each bit/symbol. Since you only have one oscillator, you don't have to worry about discontinuities in the phase of the ...


6

This is actually a really tough problem because of the channel characteristics. Most computer speakers have fairly limited bandwidth, have significant non-linearities and the room acoustics are often time variant. Life becomes A LOT easier if you can just run a cable from the headphone output of one PC into the line input of the other.


5

For continuous-phase FSK, frequencies $f_1$ and $f_2$ and phases can be chosen so that a frequency spacing of $\frac{1}{2T}$ gives orthogonality. Note that it is not sufficient to have just $\Delta f = \frac{1}{2T}$; both $f_1$ and $f_2$ have to be integer multiples of $\frac{1}{2T}$ or $\frac{1}{4T}$ etc. Look for Sunde's FSK and minimum-shift keying (MSK) ...


5

I made a decoder for AFSK (Bell 202 standard) using correlation receivers for 1200 Hz and 2200 Hz, with very good results. Since the phase of the signal during a symbol is unknown, a solution is to work in the complex domain: instead of multiplying by real sinusoids, multiply by complex exponentials. This means multiplying by $\sin$ and $\cos$ independently,...


5

With integer modulation indices, each symbol is actually an integer number of full oscillations. You DFT that, and get a sharp, discrete spectrum of tones, convolved with the pulse shape. With non-integer indices, you get "cutoff" oscillations. That is, we need to dsitinguish between two cases: Continuous-Phase FSK: your next oscillation starts with a ...


4

In the end, I used DTMF (Dual Tone Multi Frequency signaling). The original DTMF has 16 signals each using a combination of 2 frequencies. But here I only used "1"(697 Hz and 1209 Hz) and "0" (941Hz and 1336 Hz) An outline of how the code works: The sender converts text to binary, then transmit "0" / "1" DTMF signals (here the timing is 0.3s for tone ...


4

After playing around in GNURadio, this waveform looks like 2 level ASK bursts (OOK bursts plus some residual carrier). The carrier appears to be at 12.4 kHz. At the 44.1 ksps sample rate, there appears to be about 7.6 samples/symbol or a symbol period of about 173.5 microseconds (assuming the symbols are not Manchester encoded). See the top plot in the ...


3

The confusion comes from the fact that what is tagged as "transmitted" isn't the real transmitted waveform but its baseband representation, which are $\left\{+1,-1\right\}$ symbols in 1 dimension. For 2-FSK, that representation would be $\left\{\left(+1,0\right), \left(0,+1\right)\right\}$ symbols in 2 dimensions. A common convenient way to handle such 2 ...


3

With Frequency Shift Keying, the modulation (digital data) takes up bandwidth, so you can't just keep only the frequencies of the mark and space tones. A firm lower bound on how little bandwidth you can use is the distance between the mark and space frequencies, plus half the baud rate on either side. So for 1200 baud with frequencies of 1300 hertz and 2100 ...


3

Since the comments on the question and the OP's responses don't seem to be converging, here goes. Pick a data rate $R$ bits/second (e.g. $10$ kilobits/second) that is acceptable to your client or boss. The FSK signal will then convey one bit every $R^{-1} = T$ seconds (every $T= 100$ microseconds if you chose the $R =10$ kbps data rate suggested as an ...


3

There are many ways of demodulating the FSK signal Indeed! What is the advantage of performing the FSK using IQ modulation? Depends. Generally, IQ is the only shape you have your signal in, so using that is not much of a question – a direct downconversion system has IQ signals, and that's what you'll use. Using such a system has a lot of advantages, ...


3

The answer to your question is yes, these two representations are equivalent. The first important thing to note is that in your formula, $d_k$ must be either $1$ or $-1$, because the frequency difference for MSK must be $\Delta f=1/2T$. I'll add some information showing the equivalence of the two representations. Expanding your first formula gives $$\begin{...


2

People have been decoding FSK signals for ages with very weak microprocessors. The usual method is called zero crossing detection. You basically just measure time (count the number of samples) between the times when the signal crosses the zero volt line. The number of samples multiplied by the sampling rate tells you the rate as a time period. One divided ...


2

There's a time vs. frequency trade-off that can work against you. At a given signal-to-noise ratio, it takes longer (and often more compute power) to reliably determine which of two frequencies are being sent when they are close together than when they are far apart or orthogonal within the time interval. So if you use 10 times more frequencies within the ...


2

The three main reasons appear to be these: 1) In AFSK, it's not just jumping back and forth between frequencies. The tones must also be continuous phase. In other words, when the tone changes, there can't be any jump in phase. For example, if you're sending a 1200 hz tone and the waveform is at its peak when you switch to 2200 hz, the waveform is still at ...


2

So, ignoring noise, the input into the receiver multiplier coming from the channel is either $\cos(2\pi f_0t)$ or $\cos(2\pi f_1t)$. The other multiplier input is $\cos(2\pi f_0t)-\cos(2\pi f_1t)$. All signals are defined from 0 to $T$. Let's assume the transmitted signal has frequency $f_0$. Then you have an integrator: \begin{align} &\int_0^T \cos(2\...


2

One approach could be to perform an FM-detection step (e.g. an atan2() operation followed by a first-order difference) to transform the waveform to measurements of the approximate received frequency versus time. Your FSK signal should then look like a binary-modulated baseband waveform. Then you can apply a nonlinearity to the signal to induce a discrete ...


2

You can make a very simple frequency discriminator by multiplying your received signal with a delayed version of itself, followed by a low pass filter. Adjust the delay to set the frequency range of your discriminator. This works because a multiplier followed by a low pass filter is a phase detector (multiply two sinusoids with same frequency and different ...


1

After thinking for a while i came up with my own proof. I hope it is helpful to you and correct! Definition: Frame-Structure The frame structure used in the following is one of one-periodic signals, with a constant header and a uniform distributed payload. The ratio between payload and total frame is given as $$ p_{\%} = \frac{|payload|}{|frame|} $$ the ...


1

That looks very nice: I don't 100% agree with your phrasing on this one: however, my quadrature demod is capturing large amounts of noise during the idle periods. Well, the quadrature demod takes successive samples and gives you the phase advance between them. If you only capture silence, or more precisely, the noise between packets, the phase of each ...


1

In communications engineering this problem is called "Unequal error protection" and you can find many references on google. It can be a very involved topic. However, a simple method is to group your bits of each sample into N groups (e.g. if you hve a 16-bit sample, you have N=4 groups, of 4 bit each). Then, you can encode each group with a different code ...


1

(I assume maintaining the same symbol duration) nope! That is usually not the case, because it would be unfair – if you send the same number of symbols per second, you'd get twice as many bits per second using 4-FSK rather than 2-FSK. Therefore, the comparison is typically done with identical Bit Energy rather than identical Symbol duration (which would ...


1

You should read https://en.wikipedia.org/wiki/Minimum-shift_keying. The minimum frequency distance between two FSK tones is half the baud rate. But even at 1X the baud rate, the tones look blurred together in the spectrum. Note that, without any pulse shaping, the bandwidth of each tone is effectively the baud rate. This is related to the implicit ...


1

The spectrum of your windowed sinusoid is just a shifted sinc function (assuming a rectangular window). If $T=0.015s$ is the length of the signal then the magnitude of the spectrum at positive frequencies is given by $$S(f)=T|\text{sinc}((f-f_0)T)|,\quad f>0$$ with $f_0$ the frequency of the sinusoid, and where I use the definition $\text{sinc}(x)=\sin(\...


1

With things indexed from $1$ instead of $0$, $x(t)$ a sinusoid of frequency $18900$ Hz followed by a sinusoid of frequency $19950$ Hz with each tone lasting for $42/441000$ seconds and a sampling interval of $T = 1/44100$ seconds, you sample values should be $$x[n] = \begin{cases} \sin\left(2\pi (18900)(n-1)T\right), &1 \leq n \leq 43,\\ \sin\left(2\pi (...


1

I think what you hear is probably some type of aliasing because your sampling frequency is too low given the FSK signal you're using. If you look at the plot you see that you do not get a constant envelope as you should. This is due to the relatively low sampling frequency. The maximum carrier frequency is almost 20kHz, and the upper limit of the FSK ...


Only top voted, non community-wiki answers of a minimum length are eligible