# Tag Info

8

The problem that I have is that I always have a big spike (10-15 dB) directly on the center frequency (no matter what frequency I set). I am relatively new to all this so I would appreciate any pointers on how to get rid of the spike. That spike is probably nothing surprising – just the LO leakage/DC offset, a very common artifact in direct conversion ...

5

Ok I did some signal forensics on the data capture and believe the modulation is a form of FSK. The FSK modulation was +/- 20 KHz with a data rate of 38 KHz. UPDATE: The OP discovery that this is "io-homecontrol" and the datasheet from ADI that he found has confirmed that this is indeed FSK with a deviation of 20KHz and 38.4 Kbps data rate. Further ...

5

A square operation creates an unmodulated tone for a BPSK signal at 2x the carrier frequency (a pure tone for the case that the signal was unfiltered or rectangular pulses with perfect phase and amplitude balance in the BPSK modulation, and typically a stronger carrier with weaker sidebands in the more common filtered or pulse-shaped cases). For QPSK signals ...

5

That is above the Nyquist rate, so why is the signal degraded? It's not degraded in any way form or shape. The perceived degradation is purely cosmetic but not functional. See for example: How is sampling affecting this sine wave? But the time domain plot still shows something unexpected No it doesn't. It looks exactly as it should. If that's unexpected, ...

4

I also read this from a response to a USRP user's question about RSSI measurements: [The] Received Signal Strength [Indicator is] always relative to some signal model, incorporating considered bandwidth, assumptions on the modulation scheme, duration of transmission, generally: It's a estimation of received signal strength based on some property of ...

4

The channel frequency controls the local oscillator on your SDR which is the frequency about which it covers. So you are receiving signals from 16KHz below 107.5MHz to 16KHz above. The concept you want to look up is called heterodyning. When you modulate (multiply) a signal by a sine wave you end up with two copies shifted in frequency space by the ...

4

So, the important takeaway from your introduction is that you have an application which needs to get chunks of items out of the flow graph repeatedly. Which means you're in the streaming case. (for future readers: you'd just use a Vector Sink instead if you only wanted all the data at once after the flow graph has finished running) So, multiple approaches ...

4

Yes the OP is correct in that you can implement pulse shaping in less than 2 samples per symbol for exactly the reasons that was outlined. However importantly we must also keep in mind having excess bandwidth to simplify subsequent filtering required (such as after the DAC on the transmitter side). The Nyquist criteria is the sampling rate must be twice the ...

4

Unlike the Gardner Loop, the M&M synchronizer should be performed after the RRC filter in the receiver for best performance. With cases of high RRC alpha, the M&M won't work as expected without the complete Raised-Cosine filtering (RRC in transmitter followed by RRC in receiver) as the slope of the error term will reverse, with high self-noise, as I ...

3

There's a lot of different domains of knowledge coming together here, so I'll split my answer into multiple sections, each answering an implicit question that you raise in your explicit question. Hope that helps! Can your RTL-Dongle actually receive at 1.72 GHz? So, first the bitter pill: There's a lot of sellers out there that offer RTL dongles and claim ...

3

See pages 5 and 6 and the plots on the following pages specific to number of samples per symbol in this very helpful reference by Ken Gentile on designing RRC pulse shape filters: http://www.analog.com/media/en/technical-documentation/application-notes/AN-922.pdf An example I have previously done shows the consideration of filter length (how many symbols ...

3

Before I address your questions, you should understand: a. the integral branch of the loop filter maintains a average phase increment in units of radians/sample. It is not a frequency value, though in the right context it can be converted to a frequency value, using your sample rate as a conversion factor. b. the total output of the loop filter is an ...

3

Use a notch filter such as the one shown in the figure below, where $\omega_n =2\pi 60/f_s$, where $f_s$ is your sampling rate, and $\alpha$ is chosen based on the bandwidth of the notch and how long you can allow for settling in the time domain; the tighter the filter bandwidth the longer it will take to settle; you can use a first order approximation of 10%...

3

What you are seeing is the transitions from one constellation point to another. In order to reduce the signal bandwidth, the baseband signal is low-pass filtered. This causes the transitions to not be instantaneous (i.e. the I and Q are not square waves), so they take some time. You are simply seeing those transitions. The low-pass filtering also causes ...

3

Got me at that one! The "OFDM symbol acquisition" block is in fact not from gr-digital (where your other OFDM blocks come frome), but from gr-dtv, where it is used to capture DVB-T signals, if I remember correctly. It might be very DVB-specific! Let us have a look at the dvbt_rx_8k.grc example from gr-dtv (or, at least, the top half): So your understanding ...

3

Packet Encoder and Decoder are broken; they drop data. That's why they are in the deprecated category (for years now!). We've removed them, because as a project, GNU Radio has not been able to fix them (and also, they were terrible from an architecture point of view). So there's exactly one solution: don't use packet encoder / decoder.

3

Consider the formula for the DFT (which the FFT efficiently computes as an algorithm): $$X(k) = \sum_{n=0}^{N-1}x(n)e^{-j2\pi nk/N}$$ Notice that it is a summation over $N$ samples total. Also note using Euler's formula that a cosine function can be expressed as two exponential terms (that are visible in the DFT result) as: $$x[n] = cos(2\pi f n + \theta) = \... 3 I am not revealing any big secrets here on jamming and anti-jamming techniques, nor would I condone creating any such interference. What I am about to say is quite simplistic and well known, but knowing more details in how jamming can take place and being more educated on it in general can help good actors in minimizing vulnerabilities in future designs. Yes ... 2 Further inspection shows indicates that the serializer block only does remove non data carriers. It just probably so happens that anything that is non data is super noisy, and data carriers are not noisy at all, but I still wonder how is this possible. The magic that happens here is in the actual equalizer used in the frame equalizer block. If you'd scroll ... 2 For an FIR filter there are 3 main components that determine the filter length for equiripple designs: Passband ripple Stopband attenuation level Transition width (Width from the edge of the passband to the edge of the stopband) For other filter designs the filter order may be related to flatness of the passband and the rate of fall-off in the stopband (... 2 The stock FFT (in GNU radio?) is a complex-to-complex transform. Thus any positive frequency peak you see represents a complex signal (phasor) that can include both real and imaginary components. Since your cosine (or sine) waveform is strictly real (has zero or no imaginary component), the complex FFT result also includes a negative complex conjugated ... 2 I believe that what you are looking for is Bandpass Sampling. What Nyquist theorem says is that your sampling frequency must twice the bandwidth of your signal - not carrier frequency of it. Hence in FM modulated signals you don't need to take it into consideration. 2 I can only answer your second question: "How can the loop bandwidth in GNU Radio synchronization be configured as a percentage of the symbol rate?" The tracking loop in the symbol synchronizer block operates at the symbol rate, estimating timing error and making a correction once per symbol. So the sample rate of the error signal from the TED is at ... 2 The high-frequency (RF) section of an SDR is all analog. Typically, the analog receiver downconverts the RF signal to an intermediate frequency that is within the Nyquist range of the ADC. As Stanley points out, you can also do bandpass sampling, though that is less common, in my experience. 2 A few (hopefully useful) comments and ideas: The HackRF One is not a USRP. If you're receiving with an NI 2921 USRP, you should be using UHD to interface with it, not osmocom. Use a standalone spectrum analyzer, first to double-check that nobody else is transmiting at that frequency, and then to study your transmitted signal. Transmit a single sine wave and ... 2 Let's say you want to filter a signal x[n] through a Gaussian filter with impulse response h_g[n] and a Moving Average (the "sqwave") filter with impulse response h_s[n]. Then the resulting operation is$$y[n] = h_s[n] * (h_g[n] * x[n]) = (h_s[n] * h_g[n]) * x[n] So the a priori convolution of the two filter tap sets into one filter taps set, just ...

2

you can create flowgraph in c++ like gqrx and i think GNU Radio Manual and C++ API Reference documents will help you. This is gnuradio c++ document for top_block if you could not use it let me know to write a sample for you. These documents are for gnuradio version 3.7 and in gnuradio 3.8 there is c++ code generation and gnuradio blocks are porting to c++ ...

2

The Symbol Synchronizer block is a PLL-based synchronizer that is trying to estimate the symbol clock period and symbol clock phase (aka timing offset) based on the samples coming in that represent the data symbols. Being a PLL configured with static parameters, there is a fundamental trade off between acquisition speed and tracking stability of the symbol ...

2

Sounds like you have a very workable approach: Write a GNU Radio, Embedded Python, out-of-tree Python or C++, doesn't matter, which: is a general block (not a sync_block) has a member property triggered or similar, which is initialized to False in the constructor has a member property threshold or similar, which is initialized to the value passed as ...

2

The GNURadio Constellation modulator enforces a minimum of 2 Samples Per Symbol mostly due to simplicity and some practical reasons. Theoretically, if you're just transmitting PSK without any pulse shaping, you could do 1 sample per symbol (note these are complex symbols) . But typically we like filtered PSK, and the block does this with the RRC filter. ...

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