Design a filter given the magnitude / frequency array pair

8 visualizaciones (últimos 30 días)
Andreas Prokopiou
Andreas Prokopiou el 11 de Mayo de 2017
Comentada: Star Strider el 12 de Mayo de 2017
Hello all,
This might be a silly question but I could not find something online to help me find an answer.
I have the frequency response data of a transducer.
A small (fictional) example is as follows:
frequency = [100 1000 2000 3000]; % Frequency samples
responce = [120 100 80 30]; % Magnitude of transducer output in decibels at the previous frequency samples
I used the frd function to get the Frequency Response Data model
sysfrd = frd(responce,frequency,'Units','Hz');
where sysfrd is an frd object.
Now the question is; if I have a time varying input signal, how do I compute the output signal of this transducer, given the transducer's frequency response? I'm not quite sure how to proceed with the frd object formulation.
Any help, or suggestions of a different approach, are greatly appreciated,
Thanks in advance,
A.

Respuestas (1)

Star Strider
Star Strider el 11 de Mayo de 2017
Unfortunately, with a frd model, it seems you’re stuck with its myriad limitations. I experimented with options to recover transfer function data from it, convert it to a transfer function, state space representation, and everything else I could think of, including using lsim. No joy with any of these. I cannot figure any way to convert it to a more useful system object unless you have the System Identification Toolbox and can use those functions and begin afresh with a new approach. (I don’t use frd models for this reason.)
  2 comentarios
Andreas Prokopiou
Andreas Prokopiou el 12 de Mayo de 2017
Thank you for your reply! I was afraid this might be case.
I had a look at the System Identification Toolbox. I'm not sure how it can help me with the proposed problem. The description says that it needs input-output data and will give you a proposed model. My problem is that I have frequency response data, and I want to get the input-output data relation.
Star Strider
Star Strider el 12 de Mayo de 2017
My pleasure.
The only option I can suggest is the Signal Processing Toolbox invfreqz (link) function. It will return transfer function polynomials from your frequency data (assuming a linear system) that you can then use to create a tf object in the Control System Toolbox. From there, you have a much more versatile system that you can use with lsim.
That would be my approach.

Iniciar sesión para comentar.

Categorías

Más información sobre Model Interconnection en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by