3

First, 0.3dB is generally considered small potatoes in signal processing. Second, the documentation for scipy.signal.decimate states that it uses an 8th-order Chebychev filter by default (without specifying the ripple, dangit!). Chebychev filters have some ripple in the passband; if the bulk of your signal's energy is falling into the troughs of the ripple,...


3

Below shows design considerations for the filter design and you can use common tools in Matlab/Octave and Python Scipy.Signal to determine the filter coefficients (impulse response) using this criteria. (such as the firls and firpm filter design commands in Matlab). When you insert zeros, you create replicas in frequency such as I show in the diagram below, ...


3

I will explain why method 2 is often a better choice over method 3. The frequency domain approach is equivalent to the "Windowing" method of filter design- in that to do that approach correctly you should window your data before taking the FFT. For an anti-alias filter design in the time domain approach, the least squares filter design algorithm outperforms ...


2

must maintain a specific FFT length and small FFT bin width, down at baseband. Well, the FFT bin width is defined as $\frac{f_\text{sample}}{N}$, with $N$ being the FFT length and $f_\text{sample}$ the sampling rate of the signal that undergoes the FFT. So, if both these parameters are fixed, you have no freedom in choosing the bin width whatsoever. Note ...


2

I'd consider why you really want to do this - I personally can't think of a reason why I'd want to downsample to a specific sample number but I don't know your project Floating an alternate idea, you could downsample until you're near around that level of decimation and then truncate? It won't be 100 samples exactly but it might be easier in the long run to ...


2

The dot in that summation is just scalar multiplication. And yes, it's a convolution -- you're convolving the input signal by the filter.


2

There is no image problem related to carrier offsets. Image issues are the result of quadrature and ampitude imbalance. Also, the graphic doesn't look correct to me, as a Zero-IF receiver would translate both $f_c +\Delta f$ and $f_c -\Delta f$ to baseband without overlap. It appears the OP may be confusing an image reject down-converter with a zero-IF ...


2

Having images of a signal is very different from having a frequency offset in the signal. Having an image means the signal spectrum is replicated at two or more places.Having a frequency offset in a signal means the spectrum is just shifted in frequency. First let us look at it from the point of view of the innocent receiver who does not know that such a ...


2

The whole point of aliasing and the sampling theoreme is that you cannot (generally) know what an aliased signal was, as you cannot represent infinite bandwidth using finite infornation. If you have extra knowledge of the input signal (eg that DC is not possible, then you might deduce what a string of 1-1-1 was originally.


1

You really need to look at the problem in the frequency domain. There are too many bit patterns that will create an obvious dilemma with respect to decimation, but these will invariably be in violation of the rules of the sampling theorem—something obvious in looking at the frequency spectrum, but perhaps not obvious looking at a list of sample values. For ...


1

Yes. With upsampling, the number of pixels increase. But it is not just an arbitrary addition of pixels. Generally, the idea is to end up with a higher resolution version of the original image. So certain algorithms may need to be used to interpolate, etc. With downsampling, on the other hand, the number of pixels decrease, and it would end up with a lower ...


1

Yes, that's correct. It's a natural extension of one dimensional up and down Sampling. However, one can define lattices (arbitary shapes) for sampling images, so one could downsample more in a particular axis than the other. Essentially instead of a sampling period, we have a sampling grid. There are benefits of using different freqeuency grids. Of course ...


1

Anytime you take away "actual" data samples away by donwsampling, yes, you are loosing on finer granular data in time domain and hence reducing resolution. However, consider, the following case, an input signal is first up sampled by 2(interpolation) and then down sampled by 2, does it decrease resolution of actual data, not quite, because the upsampled new ...


1

As mentioned in your other question IQ Mismatch and Image if you directly down-convert from $f_c$ as per your figure, the frequencies around $f_c+\Delta f$ is what you ideally want at the baseband. It still has frequency offset of $\Delta f$ which you will be able to correct if it is small, using preamble and other known symbols. But if the Direct ...


1

For a 2D FFT (fft2), first do an "fftshift" to center the low frequency portion of the 2D FFT in the center of the matrix. Select this inner region and then do an inverse 2D FFT (ifft2) of the fftshifted result. The format of the result also needs to be 8-bit unsigned. The image below depicts the low frequency portion of the frequency domain of the image ...


1

If you can assure that the physical signal being measured by A has no detectable components above 50Hz, then you could take 1 every 10 samples. However, if you have CPU power available, it is much better to filter the signal (lowpass, with stop-band starting below 50Hz) before downsampling. This way, components above 50Hz won't be aliased down to your ...


1

Downsampling (taking every Dth sample and discarding the rest) is an identical process to sampling a continuous time signal; so you approach the continuous time signal as your sampling rate is increased. So you can access the impact of a lower sampling rate by simply downsampling a signal that has a higher number of samples. Note that down-sampling and ...


1

Given strictly real data as input, the "upper half" of an FFT is simply a redundant mirrored complex conjugate of the lower half. And in order for an IFFT to produce a strictly real result, you have to maintain this symmetry or you will probably end up with lots of complex numbers in your downsampled result, which is likely not what you want. So you can'...


1

Note that the result of a DFT is inherently periodic, so the second half of the resulting output vector does not correspond to the highest frequencies, but to the negative frequencies. The highest frequency (Nyquist) is in the middle of the vector, after that you get the most negative frequency and the last element is the smallest negative frequency just ...


1

This demonstrates till what level of Cb, Cr downsampling human eye can't detect: from PIL import Image import numpy as np def downsample_cb_cr(ycbcr, ds_level): w, h = ycbcr.size ycbcr_np = np.asarray(ycbcr) ycbcr_res = ycbcr.resize((w//ds_level, h//ds_level)) ycbcr_ds = ycbcr_res.resize((w, h)) ycbcr_ds_np = np.array(ycbcr_ds) ...


1

JPEG compression relies on a number of techniques while reducing an image's storage size. Primarily it's the DCT stage which accounts for the gross bit reduction. This stage is controlled by the quality parameter. However, color is also used to advantage as follows. It's experimentally verified that our eyes are more sensitive to brightness resolution than ...


1

You seem to be confused between the difference between what you want to do, the standards that exist for doing it with video, and tools that you might use to do it with -- apparently -- still images. What you want to do You want to separate out the chrominance channel, then you want to average it in 10x10 blocks (for a factor of 100), then you want to make ...


1

For demonstration purposes GIMP is just fine. It can split an image to three separate YUV/YCbCr images. You can then manually resize the UV/CbCr images by any amount to downsample the chroma. Then upsample back to original resolution and recombine the image again.


1

I am doing something similar to your application with 1D CNN. I think scipy.resample_poly is the most versatile function since it allows both upsampling, downsampling, or a combination of both. Also your comment about "values beyond the boundary of the signal to be zero" can be solved by using the option "line" in padtype, as shown in the function ...


1

First, all of these routines act on an input array. Your comment "values beyond the boundary of the signal are NOT zeros" implies that you want to process a continuous signal, or at least one that is longer than a single call and array. If you want to use these routines, you’ll need some buffer management of your signal. Second, for converting 611 to 100, ...


1

The recommended way of converting an oversampled bandlimited signal into its critical sampling rate (or somehow above that) is to use a time-domain LP filter and decimate approach. This can be efficiently implemented using a polyphase filterbank architecture as well. The lowpass filter can be implemented using DFT/FFT frequency domain techniques if the ...


1

Assuming that you have a sufficient number of samples, throwing away odd / even samples does not matter. The DWT can be thought of as measuring time/frequency content with varying levels of time/frequency resolution. For non frequency varying signals (like chirps), the odd and even samples both contain the same frequency and time content. (Unless we are ...


1

The variance of sampled white noise that is filtered by a brick-wall lowpass filter is reduced by a factor equal to the ratio of the filter cutoff frequency to 1/2 the sample-rate. You start off with the same variance for the 100mhz and 10mhz cases, but the reduction factors are different due to the different sample-rates. Or to put it another way, the ...


1

There are few problems in the code and question. In your question 'given a sine wave at a given frequency for example, how would you proceed to downsample it to a lower frequency' this statement is not right. We are not reducing the frequency of sinewave, we are reducing the sampling frequency with which we sampled it. Second, the code just inserts zeros ...


1

Here's how I like to think about the expression $$ \displaystyle \frac{1}{D} \sum_{k=0}^{D-1} e^{j 2 \pi k m / D}. $$ For any value of $D$, the first term is 1, and all of the terms lie on the unit circle. Assuming $D > 1$, each term after the first is found by rotating the previous term through an angle of $2 \pi m / D$ radians. If $m$ is not a multiple ...


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