ΣSigmaStudio Ask AI Русский Log in

"Time Probe" (impulse response) display in Sigmastudio

SigmaDSP & SigmaStudio dzingoni Dec 10, 2011 00:00 5 replies Original on forum ↗
Subscribe
dzingoni Question
Dec 10, 2011 00:00

Is there a way, or is it planned in the future, to have a "Time Probe" display in Sigmastudio?

The existing Frequency and Phase response display is extremely useful, but sometimes it would be very interesting to see

the equivalent impulse response ...

Is there a plan to add something like this in the future (maybe another "Tab" with "Impulse Response in the Probe display)?

This would be very interesting to develop processing that mostly work in the time domain ....

Regards.

ADIApproved Reply
Dec 14, 2011 00:00

I was pulled into several high-priority, time-critical projects at work over the past few weeks and unfortunately I had to de-prioritize my participation in the forum as a result. So, I apologize for making you wait so long for an answer. I am going to try to respond to everybody's questions within the next few days.

It would indeed be interesting to have a time probe in SigmaStudio. I'm sure there are code libraries available that could convert SigmaStudio's frequency response view to an impulse response view. I will ask the software team about that.

ADIApproved Reply
Dec 15, 2011 00:00

Hello,

Apparently it is not easy to go from the frequency response to an impulse response. This involves an inverse FFT, and with the way that we store this data in SigmaStudio, it would be very tricky.

How were you planning to use the impulse response? It doesn't typically provide much useful information for system design. Usually an impusle response is run through an FFT in order to determine the frequency response, but I'm not aware of applications that would need to do this the other way around.

If you're looking for the phase response or group delay, those are actually shown in the Probe window already (enable magnitude + phase). That provides you with details about the time domain characteristics of filters.

dzingoni Reply
Dec 15, 2011 00:00

Hi Brett,

as regards the difficulty of getting an impulse response I frankly think that it should be very easy, whatever the format of frequency response data you have.

As a professional programmer with more of 30 years of expertise I can assure you that the net is full of direct and inverse FFT routines, and the problem

should only be to copy the data that you have at hand into a suitable array, call the IFFT routine, get the data and display. If you don't have them ... just ask!

As regards the usage of a "time probe" ... well, there are many. If all you design is a filter, or a crossover, the usage is limited, but frequency domain behaviour is only half of the story. If you use the chips for speaker equalization and compensation, then the time behaviour is extremely important. The same can be said of applications of echo cancellation, or impulse response compensation with FIR filters.

My personal usage is in the field of high quality dsp for audio, including speaker and room equalization. In such applications having a look at the behaviour in the time domain would be extremely important.

Moreover but I'm sure that more and more people are actually using SigmaDSP chips for usages that were not initially intended as the main ones. The large availability of computing blocks (delays, thresholds, FIR and IIR filters ...) allows to imagine and implement many different applications, even based on time domain design. That's the main reason for having a "time probe".

While we're discussing about time probe, let's clarify a doubt that I have about the approach used to display the "probe" in SigmaStudio. As SigmaDSP chips are all based on processing in the time domain, I thought that the most natural way to create a "probe" would be to start from time domain and then obtain frequency data with a FFT. In other words I initially thought that SigmaStudio, to analyze the response of a system, would simply generate an impulse at the "impulse" block, acquire whatever time response is generated by the dataflow in the "probe" block ( by simply executing what each intermediate block is supposed to do), and then perform a frequency analysis. I thought that the time response was already (internally) available.

What I read in various responses in the forum, if I'm not mistaken, is that the analysis in the "probe" block is performed in a different way, working

in the frequency domain. This in my opinion is more complex to perform, and also limited in the sense that some workflows (especially those with recursive blocks) would not be properly analyzed. I had, effectively, the impression that the "probe" was unable to properly analyze really complex workflows.

Can you clarify this?

As a professional programmer in C#, and expert of DSP programming, I'm ready to offer some help for developing a "time probe" function. I would also be very interested in knowing if and how I can develop new processing blocks to be used in SigmaStudio (especially for time domain designs).

Thank you for your support. Daniele.

ADIApproved Reply
Dec 15, 2011 00:00

Hi Daniele:

Let me step in here for a minute. It's not that is difficult to calculate the IFFT, it's the way we have the points distributed in the time axis that makes it difficult. One tradeoff we had to do was to avoid having ploting a linear set of points in a logarithmic grid. We needed to provide access to the frequency domain without incurring in vast CPU computations, therefore we needed to generate an array of logarithmically spaced complex points. Because of this logarithmic nature we can not simply calculate the IFFT.

You are correct in saying that the current probe cannot analyze more complex signal flow including dynamics library. It was only included as an additional way to test filters and provide some visual feedback for the user but it comes with limitations (such as when using feedback within blocks)

I also agree that looking at reflections in the time domain is useful for testing reverbs and other algorithms but for now, I can only recommend to create or enter an impulse and capture it at the output for your signal flow.

Real time domain metrics and measurement is something we are very interested these days.

Hope this helps.

Miguel

EZAdministrator Reply
Aug 2, 2018 00:00

This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.

Thank you,
EZ Admin