首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用嵌入的matlab函数块在simulink模型中频繁地显示信号的内容?

使用嵌入的matlab函数块在simulink模型中频繁地显示信号的内容?
EN

Stack Overflow用户
提问于 2013-06-17 19:07:54
回答 1查看 1.5K关注 0票数 0

在模拟运行时,我正在尝试获取有关位移信号(例如,Vx)的频率信息。

我的想法是利用嵌入式Matlab功能块支持的fft命令。

我做的第一件事是将位移信号'Vx‘的值存储在一个长度为'L’的缓冲区中。

第二件事是计算存储在缓冲器中的那些值的fft,并计算对应于最大幅度的索引值。

第三件事是从索引值、采样频率和缓冲区长度中获取频率。

嵌入的Matlab代码如下:

代码语言:javascript
复制
  Function[freq_Vx,buffero_Vx] = fcn(Vx,bufferi_Vx)
  % This block supports the Embedded MATLAB subset.
  % See the help menu for details. 


  buffo_Vx = [Vx;buffi_Vx(1:end-1)];                 % buffer which stores the values of signal 'Vx'
  Fs = 2000;
  nfft = 2^nextpow2(length(buffo_Vx)); 
  [max_Vx,index_Vx] = max(abs(fft(buffo_Vx,nfft)));
  freq_Vx = index_Vx*Fs/length(buffo_Vx);

  end

这是在模拟运行时获取信号频率内容的正确方式吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-18 03:09:02

我相信你在模型中“实时”处理数据的方法是合理的,但是我相信index_Vx*Fs/length(buffo_Vx)不会给出预期的结果,buffo_Vx = [Vx;buffi_Vx(1:end-1)];可能需要buffo_Vx =Vx;bufferi_Vx(1:end-1);‘检查此link以进行频率转换。

出于诊断目的,请查看Simulink库浏览器上的Simulink Extras -> Additional Sink块。

谱密度应该是有帮助的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17146047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档