[已答复] 使用simulink中的Frequency response功能报错

[复制链接]
heyoh 发表于 2021-7-9 17:23:17
如题,我用simulink构建了一个音频放大系统,系统由于有回声,导致正反馈啸叫,所以想使用simulink中的frequency response功能分析一下系统中的相位裕度是否足够,结果报下面的错误。
In "frestimate(modelname,op,io,in)", the input signal "in" is a frest.Sinestream signal which has parameter values for "Frequency" and "SamplesPerPeriod" such that it inherently has multiple sample times. Using such an input signal requires that samples rates belonging to the Simulink signals where your linearization input and output points are located are either continuous or fixed in minor time step and the linearization I/O io(1) does not satisfy this requirement. Consider either changing the sample time of Simulink signal where io(1) is located to continuous sample time or using frest.createFixedTsSinestream utility to create a sinestream signal that has a single sample rate.
我对这个错误的理解是,由于频率响应使用一个频率不断变化的输入给到系统中去看系统的反应,所以需要我原系统的输入和输出是连续的或者设置成最小的步长。但是我的输入是离散的,所以报错。
由于我处理的是音频信号,输入都是按照采样时间分隔开的离散信号,无法选成连续的,而且即使我把仿真的配置设置成0.0000001的定步长,然后把音频读取模块中的采样时间也设置成0.0000001,依然报上面的错误。

请问在我能处理音频的前提下,怎么正确的使用frequency response这个功能?

新建位图图像.bmp

3 条回复


TCCMATLAB 发表于 2021-7-12 08:49:30
看着上面的报错,感觉和你的理解不太一样。
我觉得如果‘输入都是按照采样时间分隔开的离散信号’ 应该不会报出这个错误。
错误里面有‘such that it inherently has multiple sample times’ 说明你的输入里面应该有多个采样时间点,这个应该是导致报错的主要原因。
建议先往frest.Sinestream 有没有固定采样点的形式?
或者音频转换为in输入信号,如何才能具有固定采样点? 这些方向去考虑。

heyoh 发表于 2021-7-12 09:42:01
TCCMATLAB 发表于 2021-7-12 08:49
看着上面的报错,感觉和你的理解不太一样。
我觉得如果‘输入都是按照采样时间分隔开的离散信号’ 应该不会 ...

这个frest.Sinestream就是frequency response这个功能向我的系统注入的信号,为了得出我的系统的频率响应,frest.Sinestream会扫频。现在的问题是,这个报错的信息似乎是表明,如果我要使用frequency response这个功能,我系统的输入(也就是错误信息里面的IO(1)),似乎至少要是连续的或者用最小步长。

TCCMATLAB 发表于 2021-7-12 13:53:45
heyoh 发表于 2021-7-12 09:42
这个frest.Sinestream就是frequency response这个功能向我的系统注入的信号,为了得出我的系统的频率响应 ...

尝试在你的输入和你的系统之间,添加Zero-Order Hold 模块。
模块的作用就是将continuous sample time 转换为 discrete sample time.
也就是,将所有的输入都转换为固定的离散采样步长,看下是否还会报错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表