概述
MATLAB&Simulink的重复方式
以Simulink里面的repeat
的模块为例再了解一下MATLAB的frame based
和sample based
的两种处理方式。
repeat的参考页面
repeat就是进行重复,除了指定重复率(L)之外,还有几种常用的重复设置,这些设置选项在downsample等等模块当中也很常见。从两种重复思路Frame-Based Processing
和Sample-Based Processing
来说。
沿着原来的例子操作,搞一下原网页没说清楚的内容。与原网页的设置一致,这里假设输入数据的形状为(M_i-by-N),上采样率为(L)。
Frame-Based Processing
- Enfore single-rate processing:此时输入数据是(N)个不同的通道,此时采样的时候是对每个通道进行上采样。因为是single-rate processing,所以输入输出的数据速率是一样的。所以上采样的数据会在行的方向扩展。比如说2倍上采样,那么(M_i)行数据会间隔重复,变成(2M_i)行。所以最终输出数据格式为(2M_i-by-N)。
- Allow multirate processing:此时仍然是(N)个独立的通道,但是因为是multirate,所以输入输出的形状是一样的。假如说上采样率是2,那么假如说有(M_i-by-N)的数据进去,你得到的就应该
是两个重复的(M_i-by-N)的数据(注意不是把相邻通道重复)其实就是上面间隔的结果拆分,也就是说原来一个样本的时间周期内,输出应该是single rate下上半段加上single rate下半段。
举个例子,输入为reshape(1:16,8,2)
,2倍repeat,采样时间为1,multi rate
下得到的样本为
simout(:,:,1)=
1 9
1 9
2 10
2 10
3 11
3 11
4 12
4 12
simout(:,:,2)=
5 13
5 13
6 14
6 14
7 15
7 15
8 16
8 16
在single rate
下得到的样本为
simout(:,:,1)=
1 9
1 9
2 10
2 10
3 11
3 11
4 12
4 12
5 13
5 13
6 14
6 14
7 15
7 15
8 16
8 16
Sample-Based Processing
- 他会把(M_i-by-N)的输入当成是(M_i times N)个独立的通道。
repeat
模块此时只有一个选项就是multirate。假如说上采样率是2,那么假如说有(M_i-by-N)的数据进去,你得到的就应该是两个重复的(M_i-by-N)的数据(注意不是把上面的间隔重复)。这时候对于repeat
模块来说只有multirate可选。 - 其他情况:
- 对于downsample模块结果会有些不同;这里允许
single rate
的选项。但是这里的结果说出来有点扯蛋的是,实际上这里还是会进行时域上的采样,但是输出的size和sample time都一样,实际上这里被采掉的部分做了个前面的重复。似乎不太像是真正的采样了。
- 对于downsample模块结果会有些不同;这里允许
同样是上面的设置,因为这里是对时间进行重复所以完全看不来任何变化就是重复的
simout(:,:,1)=
1 9
2 10
3 11
4 12
5 13
6 14
7 15
8 16
simout(:,:,2)=
1 9
2 10
3 11
4 12
5 13
6 14
7 15
8 16
总结就是,这里说的通道就是进行操作的牢锢。比如说Frame Based
的情况下,columns就是通道,所以就对列进行操作,而不是时域上的操作。sample Based
的情况就是每个样本都是通道,对时域上进行操作。
以上。
posted on
2018-12-28 21:35
luckfyzh 阅读(
...) 评论(
...)
编辑
收藏
转载于:https://www.cnblogs.com/lafiizh/p/10193003.html
最后
以上就是怕孤独毛豆为你收集整理的MATLAB&Simulink的重复方式的全部内容,希望文章能够帮你解决MATLAB&Simulink的重复方式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复