### David Shaw (@dgshaw6)

There is a fairly complete C source library from ITU that has lots of basic functions that deal with saturation and overflow protection.G.191

There are many interesting answers in the thread.I have believed for a long time that the effective quantization noise in individual bins after an FFT is > the...

Is there any implicit assumption that the utterances came from the same person?If so, then some of what you have suggested might work. You will probably need some...

One of the best books I have found recently, is Digital Signal Processing in Modern Communications Systems, by Andreas Schwarzinger.It is self published and comes...

The earlier DJI drones used proprietary modulation, but the newer ones use an LTE chipset.There is a company that you may want to look at, that is doing what you...

Hi all,In the 3GPP standard 38.215 Section 5.1.19, there is a reference to the definition of the RSRP for SRS.It appears to simply be the average of the power in...

I think is it is as simple as performing the IFFT on the combined received signal, selecting only the impulse response for the UE of interest, by zeroing out the...

Hi Kaz,The cyclic shift (as defined actually) amounts to a time delay.If you go to the time domain, and then window the specific "impulse" of interest, you can separate...

Hi Kaz,I've been working a lot with the Zadoff Chu sequences for 5G lately.For my case, I am able to retrieve the frequency domain bins from the receiver where the...

Very cool, and I bet he is writing backwards on a large transparent panel!The reason why, is that he is probably right handed, and I watched him erase some things.Also,...

Thanks to all for the kind contributions.It turns out that I found an extremely promising scheme (since the realistic number of modes is low) that is referred to...

Thanks Chuck.We are using Matlab for the "offline" processing right now, and it does the job we need.In fact, we are able to run in "real-time" for a significantly...

Thanks for your insight.For our Matlab implementation, we have used svds() which allow us to specify that the processing should find only the first N singular values.For...

I have a matrix that is complex but truly symmetric (not conjugate symmetric).I'm trying to find a reference that will help me build an extremely efficient implementation...

Many excellent answers here, but 1 item I think has not been mentioned.The word reflection is used in several of them, and that is the essence of my comment.An exchange...

If you only care about signals up to 1kHz, you can filter and decimate the sample data down to a lower rate, and then run 2048 point FFTs on the lower sampling rate...

Again, I agree Tim.I view Goertzel as a "sympathetic" driven oscillator.The poles are on the unit circle (zero damping as you said) as they would be if you chose...

I just looked up the details of the computing platform described (Jetson Xavier AGX) in the original problem statement, and it appears to have several floating...

Thanks Tim,I totally agree, and you still have to run the correct number of samples through it to get to the right result.Just thought it might be an option for...

A Goertzel filter is effectively a 1 bin FT.Have you looked into it for what you need?It is effectively implemented using a biquad section for each desired frequency.All...

Hello Rich,The concept in the book is related to requirements for sampling relative to the content of the signal.If you are working in audio, then the hardware will...

I confess that you have confused me a little.You started with some recorded data that had a certain sample rate.You performed an FFT of that data at some specific...

The plot you show, of the time domain response should also have an fftshift applied to it to bring the impulse into the middle where the new 0 delay will be.The...

We don't know the format of your data, but it seems that the name "knownsym" implies data communications, so I would guess that fixed point math should be the most...

In the work that I was doing, the problem showed up in very narrow bandpass filters, which are almost always either a single biquad or combination of biquads.I have...

I believe that the size of the internal variables inside the fixed point IIR filters is actually the harder problem to deal with.Most IIR filters are > order...

One source of other correlation components is pilot signals.Almost every OFDM system has pilot symbols to assist with certain timing acquisition.Depending on your...

Hi Kaz,I think you may have your IFFT length wrong.1 Ts is 1/30.72e6, and the 20 MHz band is assumed to have a symbol length of 2048 samples, and so is the length...

It is not easy to see from your plots, but there are clearly some repeating stripes in the lower spectral plot.16e3 * 0.003 gives 48 samples per frame, but you...

This problem is studied extensively in the context of OFDM modulation in data communications, where the power amplifiers are non-linear as you push closer to full...

I'm going to try to understand what you "meant", and comment based on those assumptions.First, in my mind, zero-IF implies that correct downshifting would give...

I think the "driven" oscillator approach will work well.Do you have access to a copy of the power-line noise independently?That could be used as a reference for...

I saw you additional question in another post, so I understand you problem a little better now.I incorrectly assume that you would be working on audio, sampled at...

I think that your best approach is in fact an adaptive filter, which I now see you posted a question about in a different posting.It is not that hard to remove a...

Hi sh_ee,I'm not sure that the information that you have provided is enough to answer the question.Lets assume that you are talking audio, and that you sample rate...

Hi napierm,I went through almost the exact same idea several years ago for measuring signal power in an audio application.The only thing I would mention that relates...

As you suggest Rick, it certainly looks like a 4 AM symbol sequence.I'm guessing that the sample rate of the captured data is 53 MHz, but that the symbol rate is...

I'm confused by your results too.10^-4 at baseband (presumably without fading) and 10^-5 at passband (with fading) is the opposite of what we would expect.Did I...

Aha! Nice work.My bet is that the 500 or so samples of delay are dominated by the buffering. If we guess 480 samples, that is 10 msec at 48k sampling.My first...

Hi planb_buzz,If your measured delay is only 6 samples, and you are looking at a room impulse response of, probably, hundreds of samples, then I don't understand...

Hi Artur,If the interference is a pure sine wave, even fluctuating slightly, then consider a driven oscillator, in which you have a second order IIR filter that...

Should not be any different if you are starting with time domain samples. If you up-convert the baseband to 800 MHz (interpolated by 20) for the real and imaginary...

Hello Amit,Sorry to be too basic if this is such.Just a quick question as to whether you are carefully choosing a sampling rate that can handle the real only signal...

Hi Rick,Farrow's original paper.All the plots in the paper were generated by Bill using HTBasic, which was his favorite platform.00015483.pdfOne of the references...

Hi Rick,I started my career at Bell Labs in 1981 and worked for several AT&T elements and derivatives including AT&T Information Systems, AT&T Microelectronic, Lucent,...

You can use a Farrow interpolator to resample from 25 kHz to whatever rate is supported by your sound card. (22.050, 24, 44.1, 48 ksps etc) However, if you are...

Very good overview Rick,@amitjonak Very often, the design of the transmit and received filter pair are designed as root-raised-cosine pulse-shaping filters.The TX...

Many, many years back I worked with Bill Farrow of Farrow interpolator fame. He worked out an incredibly clever scheme to get an LMS filter to converge extremely...

For humor's sake.In the EE department at Columbia University, there was a great black and white picture, in the hallway, of a faculty member and some students on...

Is there a compelling reason why you want to prove the theorem with M-PSK signal?It is far easier to prove the theorem using a simple sine wave that is close to...

One of the best books I have found recently, that is very practical, but not down to the FPGA level, is Digital Signal Processing in Modern Communications Systems,...

Hi Sharan,Several good suggestions here so far from drmike, ChuckMcM and Neil.However, your question is vague, so it is not clear what you are trying to achieve.Some...

Thanks Rick.I agree completely. The bandwidth of the signal is not changed based on the number of bits per sample. Only the signal to quantization noise ratio...

Is your question related to the comments I left about bandwidth in the OFDM discussion the other day?I may be wrong in my understanding of your question here, but...

As suggested by SlartibartFast, the usage of the subcarriers and symbols within a frame are a shared resource between the user equipment (UE) and the base station...

The parameters you defined sound exactly like the 10 MHz LTE channel commonly used for cellular telephony.1) It does matter which subcarriers are used. So, for...

20 ppm is even better then, and I re-enforce my previous statement. If you think about it, then it takes 50,000 samples to have a one sample shift in timing. I...

A questions related to your estimation process.What is the worst case difference between the TX and the RX clock in PPM?Remember, that you have an uncertainty problem...

First, I assume in my technique that the stretch/shrink factor is consistent across the entire capture. If this is true, then no windowing is necessary, and the...

The most typical application for the sample rate conversion technique has been in modem signal analysis/reception. This is often referred to as timing recovery and...

I'm not sure that you care necessarily to make the signals the same length. I think that the technique I propose does not care about the relative length of the...

I have had to do this several times. I have used a Farrow interpolator to do fractional rate sample rate conversion on only one of the signals (presumably the...

I have to confess that I am a little confused by the question.You mention random hopping over a range of F0 + [500:300:5000]The you mention another type of hopping...

Can you give us a little more information?What is the size if the FFT? How much zero padding did you have to do, since the % of zero padding defines the width...

Fun problem.Many, many years ago, we had this same problem when synchronizing the internals of the first Sirius Satellite Radio receivers to the audio play-out.We...

Hi Rick,Thanks for your confidence in assuming I know something.The simple answer is yes. The signal sees an analog low pass filter. The process is a little more...

Many years ago, I worked on the development of the modem for the AT&T VideoPhone 2500.We had an oversampling rate that allowed for the equivalent of 3 sampling...

I agree with lamabrew.However, I do find that even on my phone, the current format is readable if I turn my phone to landscape mode. Unfortunately in this mode,...

I have read the responses from Dr. Mike and Slartibartfast, and their ideas are completely valid, and should work.Here are some other ideas.How much do you know...

I agree with the general principles espoused in the other comments here, but I think that things can be made less complicated.However, there is an important question we...

I agree with the single polyphase structure you suggests, but I would implement it so that you get 1 new output for every 3 or 4 inputs.So you have a delay line...

fred harris' response is spot on, as stated.The control signal he mentions can be run into a PLL to smooth the process significantly, and the phase difference derived...

In addition to the responses already given, I believe that MatLab is likely to have a very optimized compiled routine that is called for filter() or conv(), that...

This idea, as a general concept, is the essence of mu-law or a-law coding.https://www.itu.int/rec/T-REC-G.711-198811-I/en

One more piece of advice, that no-one has mentioned here.You will have much more success with this whole thing if you go to sub-band processing using a polyphase...

I totally agree with achesir (hello by the way).However, I would also caution, that the recording into the mic will probably be in a space that has some significant...

I disagree slightly here.The dispersion of the channel is alway causal, so that the ISI from one symbol to the next (if there is any) will always creep into the...

That makes sense now.However, the code looks wrong now. What you really need is the last part of the FFT segment rather than the earlier part of the cyclic prefix.You...

Not sure I quite understand the situation.If symOffset is set to 0.75, how can it be used as an index into an array in the line: postCPRemoval = x([CPLen+1:FFTLen+symOffset,...

Thanks for the correction to an obvious error in my first response. I have attempted to make the correction above.I took a trip down a deep rabbit hole as I was...

Fairly simple answer for waveforms with relatively clean tones.Simply demodulate successive samples against each other:y = x(n)*conj(x(n-1));If you normalize the...

The way in which MatLab views wave files is simply to scale them so that they fall in the range +- 1.0.If you had access to the original samples, they would fall...

You are using a 1st order farrow, which is nothing more than a linear interpolation.From your diagram, I see a link from a scaled (by the left interpolator coefficient)...

The 3gpp standard for wide-band speech coders, has an example C code reference that includes the full sub-band separation for the noise reduction algorithm. This...

Unfortunately, am not familiar with MCLT, so can't comment on their use here.Thanks for the reference though.

For cancellation, and noise reduction, the most common frequency domain techniques use FFTs, but usually as part of a sub-band processing scheme using filter-banks. ...

Sorry to say I don't have an answer, but rather a question to consider.From a practical point of view, can your forcing function, applied to your non-linear elastic...

There are so many places where this synchronization problem occurs, that it is in fact a very common problem. Some applications places identified below: Modems,...

In my experience with telecom, where we often use similar filters for telephone bandwidth speech, we typically use a set of elliptic IIR filters. One HP and one...

I assume that you are decimating after the filtering operation. In order to bring the signal back up to a reasonable level, you probably need to scale up by your...

Replace the data with signed values of -1 and +1 instead of 0 and 1, by converting your uint8_t to int8_t, multiply by 2 and subtract 1.No need for high pass.

Plot your constellations as a 3D plot.plot3(symbol1:symbolN,real(symbol1:symbolN),imag(symbol1:symbolN))I even go so far as to plot two to form a stereoscopy image.---------figure(1)subplot(1,2,1)plot3(symbol1:symbolN,real(symbol1:symbolN),imag(symbol1:symbolN))camproj('perspective')view(50,10)grid...

Before you throw out the conventional techniques, it seems appropriate to ask a few questions.1) Are you trying to just determine the existence of certain known...

The sub-band separation requires polyphase filtering and a DFT.In our case, we were processing 8ksps data for 3.4 kHz audio, and we used a very odd number selection. ...

In the field of acoustics, there is a concept of T60 time. This is how long an impulse takes to decay by 60 dB as a result of the reverberation within an acoustic...

Fun to hear about your experience with noise cancellation. I worked for more than 30 years on adaptive filtering techniques for audio and data communications cancellation...

My understanding is that the design of the IIR filter you want will define the delay. A parallel or cascade implementation in the form of biquads are just different...

An FIR filter with minimum phase response can - at best - match the delay of a set of biquads.I believe that you won't be able to do any better WRT delay.A typical...

Looks like I may have missed the essence of your issue.I re-read you comment and see that you are trying to align your RMS estimate with the signal itself.If this...

For decimation, you will have to have some anti-aliasing filtering.Decimation will add to delay, but it is un-avoidable.You have expressed a desire to measure RMS...

Can you decimate a couple of times first, and then do the Biquad?Consider a cascade of half-band filters to get the sampling rate down first.Also, if you are measuring...

I'm not sure exactly where to jump in here.I have read the discussion with @Slartibartfast, and I'm not as pessimistic as he is about what you can achieve.If you...

You make it sound simple, but a complex multiply by what?How much has to be done to figure out the values of the complex coefficients for the multiplies? Table...

The Goertzel is very efficient.It is effectively the left side of a biquad with only one coefficient requiring a multiply and a couple of added, and two data element...

Your are most welcome. I have built these detectors more times than I care to mention.Goertzel detectors require some experimentation to get them right. Depends...

The detection of the "tring tring" is a standard call progress detection problem.There are three tones to look for: 350, 440, 480 and 620 Hz.Each call progress is...

In the design of anti-aliasing filters, we have very often used IIR filters. They are almost alway elliptic designs. They are also most often higher order than...

Hi Steve and nelsona,I have responded to some of nelsona's previous postings - about his thesis - a long time back.One thing that has not been mentioned in any of...

Just a little less than half of the 45 msec?That is pretty good. I suspect that atan2 will bring you a lot of savings too.

Hi,What percentage of your total real time is 6000 cycles?I don't have a tutorial for you, I'm afraid. Most of the hard learn comes from experience.Overflows are...

Hi again.Again angle takes on values between 0x0000 and 0x7fff.0x7fff represents 2*pi - epsilon.Remember that angle "value" = "value" & 0x7f80 + "value" &...

First, of course you are right that 256/4 is 64. My mistake.Next. The table entries are not calculated from the index, but rather from a fraction of a cycle.table[0x00]...

My advice, is not to try to convert from float to fixed. Rather, start in the fixed point domain.For the sin and cos, start with the identity sin(a+b) = sin(a)*cos(b)+cos(a)*sin(b)....

Wow! Your code is ripe for some clever stuff.Don't be scared of fixed point math.Sin and cos in 4 multiplies and 2 adds etc.Keep angle as binary between 0 and 0x7FFF...

Have you run a profile of your code to see where the major real time is consumed?Can you "compromise" the algorithms to reduce their real time and possibly their...

I have to ask the question. How can the first 10 chunks be reverberation only? Almost by definition, reverberation is delayed compared to the original signal.Am...

Y. Ephraim and D. Malah, "Speech Enhancement Using a
Minimum Mean-Square Error Short-Time Spectral Amplitude
Estimator", IEEE Trans. on Acoustics, Speech, and
Signal...

In order to create a signal that is shifted by 90 degrees, the Hilbert filter is an interpolator. This virtually requires some sort of low pass filtering. That...

@NatiyalTD,I have some specific results.I went about the process in the following order.
Zoomed in on one of the longest bursts of tone.
Used just the cleanest part...

You just updated your need by saying "My goal with this exercise is to clean my signal from noise and possible interference."If you are trying to remove some noise...

As a result of your post, I tried the goetzel in Matlab, and I cannot imagine how they could have made it more confusing. It is not well documented. Why would...

I tried to type a long response, and it was all lost, because the system thought I was not logged in, which I in fact was.I will reiterate only a very small portion...

Which segments do you consider damaged?The earliest utterances are definitely lacking in higher frequency components (muffled).The four counting sequences in the...

I simpathize with Tim. I don't think you can recover from the terrible non-linearity of the sample data.

Hi,No one has yet suggested a bank of closely space Goertzel detectors. If you space then fairly close together around the expected frequency, then you should...

I have used you fundamental approach several times.I have even used it for data communications, where I synthesized a transmit signal, and manually tinkered with...

I'm not a control expert, but I assume the speed requirements are most likely related to physical world activities. For many of these, the time constants are...

As a first experiment, run the filtering in the frequency domain. Overlap add, or overlap save etc..Do 4096 point FFTs and kill the first 8 bins to have an effective...

I believe that you need the complex data input to do the shift correctly. The Hilbert Filters can be very simple FIR implementation. The delayed real input is...

You might want to create a complex version of you signal by using a Hilbert filter which will then give you a real and imaginary part in the time domain, and then...

Hi,I think that you simply need atan2(y,x) for the phase. I may be wrong.Remember that atan has a range of only -pi/2 -> pi/2 if you don't have the full values...

Thanks for your message. I have seen several articles that mention the same issue of the non-linear relationship that you have mentioned.The problem I am trying...

Thanks for your response.The frequency deviation I was defining is the deviation from the carrier for the mark and space frequencies, rather than the carrier offset...

I'm trying to understand the exact relationship between the frequency deviation and the time-bandwidth product for GFSK modulation.The basic set of parameters for...

Hi,Thanks for the correction to my understanding of the pwelch function. It has caused me to go back and reconsider some of the work I have done using spectrogram...

1) Yes each bin is 10 Hz DC, 10Hz, ... Fs/2. DC and Fs/2 will have real content only.2) Yes. The pwelch function will pull blocks of data in that are 4410 samples...

Hi,Sorry to take so much time to get back to you.By the time of this writing, you have many of your questions answered, and it sounds like you have the tools needed...

Hi,In answer to the question about conj(f0) vs. 3*f0. Remember, that in the digital domain, there is a limit of Fs/2 for the highest representable frequency. Since...

Just a couple of observations.1) It is clear from the spectra shown, that the recordings were actually captured at 32 kHz sampling before being converted to 44.1...

Hi,1) You are correct. If you have 4 time domain points, then you will have 4 frequency domain points. The frequency domain points will be complex even if the...

Hi Roger,The Goertzel detector is the most effective solution that I know of with respect to noise.The items that you really need to look at are essentially specs....

Hi Roger,Do you really need to reconstruct the signal or is it really a detection problem?My best suggestion for your detection problem is to use a Goertzel detector...

I believe that you have all the information (and more) that you need.If the sampling rate that the author was using is 192kHz, and the sub-carrier frequency is 5...

Sometimes the confusion is related to the fact that some/many of the frequency domain bins may not be occupied for the inverse FFT.In WiFi for example, only 52 bins...

Hi,I reviewed the document, but I'm not sure what advice you are looking for. I don't think I can offer more unless I can look at the data myself.David

Hi SenSen,Your first diagram is exactly as I had suggested. PR can be used for carrier offset and some phasing information, but not for EQ. TR1 and TR2 should...

What about the spectrum do you not like that makes you want to smooth it?Remember, that the spectrum of speech is always very dynamic and rough when comparing across...

Hi SenSen,Re: 3. above: The second repetition of the very first sequence has the same spectral problems as the very first sequence. These two repetitions are...

One more thing.The frequency response of this early sequence has intentional ripples in the transmit signal. If you equalize the rest of the burst with this early...

Hi SenSen,A couple of observations.You might be better off doubling your sampling rate and doubling your FFT length. The reason is that the phase of the sample...

How about a simple sum(abs(coefficients)*32768)?This will tell you the largest result that you could ever get at the output, because it assumes that the samples...

Hello Rick,Thanks for your kind words. Coming from someone who has contributed so many extremely useful ideas, I take your comment as a great compliment.I am...

I was going to propose an adaptive filter so that you can run the data over and over to get a good averaged correlation.However, I was not even able to run you code,...

That was quick.The principle is simple.Normally to up-sample, we would add zeros between existing samples, and run through the newly designed h1.Instead we keep...

Sorry, I seem to have caused confusion.Use the two sets of coefficients to interpolate your existing FIR filter.1) Your empirical FIR filter, that needs to be resampled, we...

Hi Probbie,How about a simple interpolation of the coefficients?Design a new FIR filter that is low pass with cutoff at quarter of the sampling rate. Then divide...

Hi SenSen,The sequence is so short, that I cannot make much of it at all.I performed the standard test for FSK looking for differential phase (frequency):1) ann...

Hi SenSen. David again.Is this the same data set that we discussed before?I don't believe that there is any FSK sequence for the preamble.I am posting a plot from...

I like Fred's response.I have an additional thought to keep in mind.If there are an integer number of cycles of the sine/s in the length of you data sample, then...

Hi Kaz,I can see your concern, but every accumulator is preceded by a subtraction from which the output magnitude is expected to be less than either of its inputs....

Hi Deba,Looking at the block diagram that you have shared with us, I conclude that all the bit precision at each stage is set up to preserve the required number...

The only difference for the baseband will be the signal to quantization ratio SQR.For most modulation schemes though, there is an optimal received signal level.For...

My immediate response it in relation to the baseband signal to which you refer.The level of the analog signal will also define the signal to quantization ratio....

At the RF front end of the receiver, there is a Low Noise Amplifier (LNA).Sometimes, there is both an analog and a digital AGC that adjusts the signal to bring into...

dudelsound is exactly right about the issues of SNR.Everything about the receiver should be designed to maximize the SNR and in the "N" he has correctly added the...

I agree with Joe West on the programming issues.Have you considered a huge heat sink on top of the DSP to keep it cool. Lots of wings.Maybe it requires some clever...

Hi SenSen,I apologize for taking so long to get back to you.Did you get everything figured out?David

Thanks for your kind response.I guess that you can tell that I have a passion for this stuff.Best wishes for your research.David

Nelson,What you require, is certainly the Nth level of exactness.However, if you just want to cancel enough so that the residual is pretty small and basically inperceptable....

Hi Nelson,Wow! You have just set up a "contest" to see if we can do it.I love being a sleuth. :-)1) To do what you said means that you can never send any of...

Hi Nelson,What you are after is related to a fairly standard system identification problem. Very often this identification is made using an adaptive filter. Echo...

Thanks for this reminder.When I use the RIR software for simulating a room, I assign a positive sign to one and and a negative sign to the other of two opposing...

Hi Tim,Part of my thinking relates to the way in which a recording studio is designed to avoid "modes". The walls are never parallel, the glass window - used by...

Sorry Joe, but I'm now going to nit-pick.I believe Tim is correct. Maybe our definition of reflect and scatter are different, but reflect to me implies bounce off...

Hi Nelson,First answer is that you assertions are not correct.Only the amplitude of the various frequency components is changed by the reflections off the surfaces.Reflections...

I really like Tim's answer.I would like to add a couple of ideas related to the filter design.A typical implementation would use a polyphase decomposition of the...

Hi SenSen,I am working on a more formal reply, but for now, please note above that i was using fhss_2 for my experiments. Your document indicates that you were...

Hi Tim,I realize that you used the term gut feeling, but I would like to know why your gut believes that 20 dB is the best you could get?David

Hi SenSen,I have decoded the first L2 correlation sequence and found 54 subcarriers each side of DC. So there are 108 occupied bins. Each is carrying a BPSK constellation.I...

Hi Loganathan N,
Please be careful not to confuse the MatLab plot display with some real spurious modulation.
The plot of the waveform shows an envelope due to...

Hello khurram6050,You said that you up-sampled and then interpolated.Then you said that you also tried after you low pass filtered the inputs.This lowpass filtering...

Hi SenSen,I have modulated the fhss_2 source by exp(2i*pi*32.99666e6) and resampled it at 5.6e6 Hz and find some very satisfactory results using a 512 point FFT.Attached...

Hi SenSen,You are correct that there appear to be three copies of the short sequence.Careful review will show that the third is in fact a reflection of the back...

Hi SenSen,A little more digging verifies that the correlation sequence pair that is usually allocated early - for fine frequency estimation and fine timing alignment...

Hi SenSen,Your modulation looks like OFDM.I simply looked at the fhss_1 data. It is sitting at about 29e6 based on the 40e6 sampling rate that you mention.I...

Use this form to contact **dgshaw6**

Before you can contact a member of the *Related Sites:

- You must be logged in (register here)
- You must confirm you email address