Design a filter given the magnitude / frequency array pair

조회 수: 8 (최근 30일)
Andreas Prokopiou
Andreas Prokopiou 2017년 5월 11일
댓글: Star Strider 2017년 5월 12일
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.

답변 (1개)

Star Strider
Star Strider 2017년 5월 11일
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
Andreas Prokopiou
Andreas Prokopiou 2017년 5월 12일
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 2017년 5월 12일
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.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Model Interconnection에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by