【问题标题】:Convert frequency Domain data of transducer to time Domain Transfer Function将换能器的频域数据转换为时域传递函数
【发布时间】:2017-01-23 05:11:11
【问题描述】:

我有几个 .mat 文件表示传感器(发射器)的特性;我想将这些数据用于我的 Matlab 代码,以观察它对我的传输信号的响应。

第一个文件包含传感器的幅度如下:每一行包含一个角度的频率响应。每列包含一个频率的角响应。

同样,我还有另一个 .mat 文件,其中包含发射电压响应的相应相位(以度为单位)

频率(以赫兹为单位)(对应于行)位于由第三个 .mat 文件给出的另一个矩阵中

同样,角度(以度为单位)(对应于列)位于由第 4 个文件给出的另一个矩阵中。

有人可以帮我将这些转换为特定角度的时域表示(使用特定角度的幅度和相位信息)并构造要使用的传递函数吗???

任何帮助将不胜感激。

【问题讨论】:

    标签: matlab frequency-analysis transfer-encoding


    【解决方案1】:

    要将响应从频域转换到时域,您需要执行inverse Fourier transformation。在 matlab 中,这是通过函数 ifft 完成的。

    假设您将第一个文件中的数据加载到变量magnitude 中,并将第二个文件中的数据加载到变量phase 中。您必须首先将这两个变量合并为一个复数值矩阵

    f_response = complex(magnitude.*cosd(phase),magnitude.*sind(phase));
    

    f_response 是传感器的实际响应,可以提供给ifft 以获得时域响应。但是有一个复杂的情况,ifft 隐含的假定频率顺序。虽然 matlab 没有提供这方面的太多细节,但是如果你查看fft docs,你会看到fft 返回了两个频率分支。频率响应的排序方式必须与 matlab 的预期顺序相对应。以docs中的第一个例子为例

    Fs = 1000;            % Sampling frequency
    T = 1/Fs;             % Sampling period
    L = 1000;             % Length of signal
    t = (0:L-1)*T;        % Time vector
    S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
    X = S + 2*randn(size(t));
    Y = fft(X);
    

    与每个傅里叶变换输出Y 条目对应的频率数组为:

    f = Fs/L*[0:(L/2-1),-L/2:-1];
    

    为了正确应用傅立叶逆变换,您必须检查频率文件中的顺序(假设您将其内容加载到变量frequencies)必须与f 完全相同。请注意,f 有一个规则增加的第一个分支,然后不连续地跳转到负频率。频率的符号用来表示行波的传播方向。如果您的数据仅包含正频率,那将非常好,因为您可以轻松构建负频率分支:

    [frequencies,ix] = sort(frequencies);
    f_response = f_response(:,ix);
    f_response = 0.5*[f_response(:,1:end-1),f_response(:,end:-1:2)];
    

    然后通过做反转它

    t_response = ifft(f_response,[],1);
    

    请注意,由于您需要每个角度的响应,因此必须对每一行进行逆变换。这是通过ifft 的第三个输入来实现的。

    如果您的frequencies 数据文件有负频率,那么您必须对其进行正确排序,然后相应地重新排序f_response 列。您需要上传一些示例数据,以便我能够提供更多帮助。

    【讨论】:

    • 非常感谢这一切。我一直在努力。请耐心等待,因为我是 MATLAB 和 DSP 的新手。无论如何,我已经做到了;在看到这些图时,我意识到这些不受频带限制,因此我将较高和较低的频率值外推为零。仍在努力;但希望您能提供更多帮助。我不确定如何,但想向您发送 .mat 文件。电子邮件????
    • 补充一点,我有包含幅度、角度和相位响应的文件。频率没有这样指定。该怎么做?假设这是一个低频通信问题,您有什么建议?
    • @Sal,查看this 了解如何将文件添加到您的问题中。然后编辑您的问题以添加 mat 文件,以便我查看它们
    • 嗨卢锡安。我非常感谢您为我指明了正确的方向。数据已整理出频率;它实际上是一个矩阵,包含与换能器辐射模式有关的数据。通过使用幅度和相位信息,我们以复数形式计算频域响应;通过 ifft 将其转换为时域响应,然后使用任何给定角度的任何特定频率和相位信息,我们可以选择我们想要的换能器特性..= 这确实是一个简单的查询,但我的思想被锁定了;谢谢你让我走上正轨。
    猜你喜欢
    • 2012-12-11
    • 2012-08-15
    • 1970-01-01
    • 2014-08-29
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多