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 Center および File ExchangeModel Interconnection についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by