Questions tagged [c]

C is a high level (i.e. not assembler) programming language often used to program DSPs and other embedded microprocessors as well as being used for systems programming. Features of the language make it especially suitable for programming hardware and writing device drivers.

Filter by
Sorted by
Tagged with
0 votes
0 answers
117 views

Efficient CIC Decimation Filter in C

Does anyone have advice on efficient CIC Decimation filter implementation. I designed a basic 4th order CIC filter with a 64 decimation ratio in C (below). I am currently testing this on a Sharc SC589 ...
  • 1
0 votes
2 answers
76 views

6x6 Complex Matrix Inversion on the ARM Cortex M4F processor

I want to do a 6x6 complex matrix inversion on the ARM Cortex M4F processor. I am getting the C code for doing the same with a real matrix using the CMSIS library. Has anyone written a similar C code ...
1 vote
1 answer
327 views

IIR Filter Implementation in C results in unstable system response

I need to implement a basic 6th order Butterworth lowpass filter on a DSP that sampled data at 50kHz. I calculate the coefficients using matlab for a filter with the following step response: $$\begin{...
2 votes
0 answers
93 views

pocketfft delivers wrong values

does anyone understand how to use the pocketfft by martin reinecke? Link: https://gitlab.mpcdf.mpg.de/mtr/pocketfft Basically it's just this snipped of code: ...
  • 21
1 vote
1 answer
89 views

How can I split a buffered audio signal into multiple frequency bands for visualisation in C?

Currently, I am trying to split a buffered audio signal (buffer size = 1024 samples) into several bands in order to output a bunch of numeric values of their levels (calculated as RMS values). So far, ...
  • 11
0 votes
0 answers
24 views

CMCIS library LMS does not converge

I have written this code with CMSIS DSP lms filter, but it does not converge, Ive checked input and desiered signal feed to filter but I think both are ok, both are in range of int32_t converted to ...
1 vote
1 answer
128 views

How to apply hann window to unsigned integer ADC

I am using Arm-Cortex M3 Microcontroller and CMSIS for FFT, my microcontroller does not support floating point unit therefore I have to use fixed point (Q15 or Q31) for calculation. Before calculate ...
  • 13
0 votes
0 answers
28 views

Question in DSP signal flow graph

How to convert signal flow in Fig3 to Fig4? Is these two equivalent? ZHANG Xiuli, ZHANG Ruihua, CHEN Weidong. Design of digital parametric equalizer based on second-order function[C]// IEEE ...
1 vote
2 answers
135 views

best way to converting data from uint16_t to q15 for least saturation error

Q15 standard is fixed point fraction from -1 to 1 represented by 15 bit, and uint16 is numbers from 0 to 2¹⁶. I have data range from 0 to 2¹², I can directly cast them to Q15 and all the data will ...
4 votes
2 answers
2k views

Implementing a Butterworth Filter Manually in C/C++ via Second Order Sections

Short background: I want to implement a lowpass butterworth filter in C/C++. The end goal is to use this in a low-latency Python program, for which of course ...
  • 143
11 votes
6 answers
4k views

How can I work on DSP using C/C++?

I have been working on MATLAB for signal processing for a while. Many companies from DSP for a communication background has asked me whether I know C/C++ very well. I am confused as to why the ...
4 votes
1 answer
243 views

Wrong result when realizing fixed-point biquad IIR filter

I'm implementing a fixed-point direct form I biquad filter with Q1.15 precision. I use fraction saving to improve quantization error. However, my function gives me the different results compared by ...
2 votes
2 answers
211 views

Non-Uniformly Partitioned Convolution Implementation

I've succeded in implementing the uniformly partitioned convolution algorithm and now I'm looking to implement the non-uniformly partitioned version. I've had no luck with running parallel threads on ...
  • 53
2 votes
1 answer
67 views

Audio, estimate codec's compression ratio only by content

I am about music audios. These can be compressed by different formats with different degree. (I.e. I don't mean the dynamic compression). After being compressed by a large degree (say 96kbps mp3) the ...
  • 87
0 votes
1 answer
46 views

Alg for identifying any temporal interfering signal

I'm a little bit on a loss at my search for an algorithm due to audio signals. I'm a sw-engineer with some basis knowledge in math here and there, know how to build and use FFT etc. but with no prof ...
  • 87
0 votes
1 answer
145 views

How to use Pffft FFT library

I am interested to use the pffft library, available here: https://bitbucket.org/jpommier/pffft/src/master/ I am currently using Intel MKL library, as well as a naive optimized reference implementation....
  • 13
4 votes
2 answers
731 views

How to set parameters of the PI controller inside the PLL?

I am going to implement in C++ software the synchronous frame phase locked loop (SFPLL) for estimation of angle and frequency of the three phase grid 220V/50Hz. For the internal PI controller setting ...
  • 255
1 vote
1 answer
111 views

Phase locked loop for three phase grid

I have been implementing a control software where one of its core functionalities is the ability to synchronize with the three phase grid. Basically I need to implement some form of the phase locked ...
  • 255
0 votes
0 answers
33 views

How to replicate/simulate experiments done on dsp kit 6713 without using hardware?

Due to covid, our university is now offering online classes to under grad students, even labs are conducted online. But we are bit confused regarding evaluation? We make videos of demonstration of dsp ...
  • 11
1 vote
1 answer
54 views

Matrices of complex numbers multiplication

I'm trying to implement the multiplication of two matrices something like this picture in c langage. I want to read the numbers from a text file of x and store it later in an array the code that i ...
2 votes
1 answer
205 views

How to optimally normalize filter coefficients?

I have designed an IIR filter in Matlab that comprises the following biquads ...
  • 145
1 vote
2 answers
720 views

Simulating a raised cosine filter

I am rewriting a simulation written in Matlab to C. I have a problem with a transmit data. The data is filtered by a raised cosine filter. In Matlab it was implemented by using the following function ...
  • 79
1 vote
0 answers
44 views

filter single radio station with sdr [closed]

I want to write a program to filter a single radio station using SDR. Not for any application just a stepping stone to learn. I am going to use C so it is easier for me to see the steps and things ...
0 votes
1 answer
1k views

simple iir filter implementation in C++

I am programming the simplest way of implementing and IIR filter. However, I am struggling with the use of buffers. Do any of you have any simple implementation of an IIR filter implementing manually ...
1 vote
0 answers
299 views

FIR filtering with C++ to a sinewave

I am translating my FIR filter script from python to C++. My problem is that I am following a workflow which in theory should work but I get weird results. 1st. I create a signal from 1 and 50 Hz sine ...
0 votes
0 answers
33 views

How to apply an offset to a complex exponential without chopping it off?

I am trying to encode a bitstream as offset in a complex exponential, but when I do, the sinusoids get chopped off. Do I need to apply a lowpass to the bitstream or is there a more elegant way? ...
  • 145
2 votes
2 answers
245 views

Fast algorithm for n-dimensional DCT

I need to implement an encoder which compresses a 5-dimensional structure of 10 bits values. Each dimension has between 4 and 12 elements. If a dimension ever has more than 12 elements, it is ...
1 vote
0 answers
83 views

Are there any State Space Control C libraries?

I'm searching for a C library which implements methods needed for state space control (e.g. state feedback controller and state observer equations). Googling various terms only brought up a non-C (C# ?...
  • 11
1 vote
3 answers
193 views

Sampling a low-frequency sound doesn't work at some sampling rates

When sampling a low-frequency sound (like a 55Hz sine wave) I hear an additional high frequency sound at certain sampling rates, but not at others. This happens in Audacity and in my own program. For ...
  • 111
1 vote
0 answers
76 views

Problem with natural logarithmic function in fixed point notation

I am facing a problem with natural logarithmic function in fixed-point notation. Let's say $$x = 0.54, \qquad\text{then}\qquad \ln(x) = -0.616186, \qquad\text{a negative number} \tag{1}$$ Then in ...
  • 59
0 votes
0 answers
33 views

Changing Coherence function from float to fixed point

I want to calculate the coherence between two audio signals. After referring a few websites, I found that the coherence is calculated by using the equation $(1)$ which is as follows $$\rm Coherence = \...
  • 59
1 vote
1 answer
599 views

Coding an LFO in C

I want to know how I could implement a Low Frequency Oscilator on a simple synth I've coded in C. First in order to understand how to make this happen I would like just to modulate a sine wave by a ...
0 votes
2 answers
812 views

Calculating the true values of biquad filter coefficients from normalized form

I have a C code in which the IIR filter(BiQuad) uses only 4 (normalized) coefficients per stage (a2/a0,a1/a0,b2/b0,b1/b0) instead of 6 coefficients (a0,a1,a2,b0,b1,b2). I know that the value of a0 is ...
  • 59
0 votes
1 answer
2k views

Comparison of results with Direct form1 and Direct form2 implementation of IIR filters

The results obtained from Direct form1 and Direct form2 implementations (in C language) of IIR (BiQuad) filters are a little different. In the implementation, i have made the b0 coefficient as 1. So, ...
  • 59
0 votes
1 answer
82 views

Carrier frequency offset in Bell 103 FSK system

This question is a sequel of the discussion that started in this question. Dan Boschen suggested some very nice solutions to decode a Bell 103 FSK signal. I am especially interested in decoding the ...
0 votes
2 answers
83 views

What's wrong with this implementation of my IIR filter?

I posted this originally in the electronics stack exchange, as it's for an electronic purpose (digitally controlled boost) but it was pointed out to me that this would be the more appropriate place - ...
0 votes
1 answer
562 views

Decoding a PCM BFSK signal (Bell 103)

A recent project requires me to get into some basic DSP, in C. I receive PCM samples of a BFSK signal (Bell 103). The sample rate is 8 kHz. The mark and space frequencies are 1070 and 1270 Hz. To ...
0 votes
1 answer
496 views

Calculating Cross Power Spectral density between two complex signals

I have a small misunderstanding of cross power spectral density between two complex signals. I know that it is the Fourier transform of cross correlation between two signals. Let's say the complex ...
  • 59
1 vote
1 answer
109 views

dB SPL readings differ from external sound level meter?

I'm trying to write a program that takes values from a MEMS microphone and calculates the dB of the incoming audio data. The microphone i'm using is this: https://www.mouser.es/datasheet/2/218/...
0 votes
1 answer
204 views

FIR Filter implementation without padding

Is it possible to implement FIR filtering action without padding the input and coefficients? i.e. Let's say if the input and filter coefficients are of size 4, then the output will be 7 samples. So, ...
  • 59
1 vote
1 answer
181 views

FIR Filter implementation vs Linear convolution implementation

I came across a C code for the FIR filter on one of the websites. It is as follows ...
  • 59
10 votes
8 answers
13k views

How can I generate a sine wave with time varying frequency that is continuous, in C?

How can I generate a sine wave with time varying frequency that is continuous? How can I resolve the following problem? I want a continuous graph. I'm generating this simply like this: ...
  • 103
0 votes
1 answer
63 views

Given a static time domain signal, why does the magnitude oscillate in the frequency domain after FFT?

I'm trying to: Generate a sine wave in the time domain (locally within my program at 500 Hz). Analyze it with FFT Print the results in the frequency domain. The expected results are that since the ...
  • 103
2 votes
0 answers
340 views

How to work with portaudio?

I am working in a project to record audio and process in real-time in C.For starting, I wanted to check how it works. I downloaded the pa_stable_v190600_20161030.tgz from here. I ran ,/configure and ...
2 votes
0 answers
354 views

Understanding and converting Matlab's coarse frequency compensation function

I am trying to understand and convert to C Matlab's coarse frequency compensator the documentation for which can be found here: Documentation Matlab's design itself is based on this IEEE paper: ...
0 votes
1 answer
124 views

Translating Matlab scrambler function to C

I am trying to implement the following matlab function in c: Mathworks scrambler Function Documentation This is the code I've written: ...
2 votes
1 answer
5k views

How to design a digital filter in python that will run over an uC?

I am trying to implement a digital filter over a uC (it doesn't really matter which filter and which micro controller because I'm looking forward to learn how to do it in the future with different ...
  • 21
0 votes
2 answers
146 views

Hyperbolic sine "sinh" in fixed-point?

As part of an audio peaking filter calculation, I need to implement hyperbolic sine ("sinh") function in a fixed-point arithmetic (fixed-point DSP processor). What is the proper way to do this?
  • 482
1 vote
2 answers
2k views

Hilbert Transform in C provides possibly strange results

I am calculating some signals that depend on the Hilbert Transform and, after following various guides online and SO, my function looks like this: ...
  • 13
1 vote
1 answer
885 views

How to properly filter a BPSK demodulated signal?

I am new to this field and yesterday I began a project for BPSK modulation. So this is what i did: $\ x(t) = 0 $ or$\ 1 $ binary data $\ Fs = 15 $ sampling frequency kHz $\ Fc = 10 $ carrier ...