在matlab中生成离散时间周期信号
Generating discrete time periodic signal in matlab
x[t]是一个离散时间周期信号,在一个周期内定义如下
x[t] = {1 , 2 , 1 , 2 , 3 , 1 , 2 , 3 , 4.....}
我想在 Matlab 中将其生成为区间 [0,100] 中的周期信号。但是,我无法为此编写代码。
在 matlab 中,如果你想生成一个周期信号,有很多方法,其中之一是:
%x is array that represent discrete time signal.
%y is generated periodic signal
%n the number of periods
temp=x'*ones(1,n);
y=temp(:);
% where x' is transpose of x.
% if we suppose x=[1,2,3]
% if we want to repeat it five times we can say n = 5
% then temp will equal [ 1 1 1 1 1
% 2 2 2 2 2
% 3 3 3 3 3]
%fianlly y will equal [1 2 3 1 2 3 1 2 3 1 2 3 1 2 3]
也许你可以像下面那样尝试arrayfun
X = arrayfun(@(k) 1:k, 2:4, "UniformOutput",false);
x = repmat([X{:}],1,2);
这给出了
x =
1 2 1 2 3 1 2 3 4 1 2 1 2 3 1 2 3 4
x[t]是一个离散时间周期信号,在一个周期内定义如下
x[t] = {1 , 2 , 1 , 2 , 3 , 1 , 2 , 3 , 4.....}
我想在 Matlab 中将其生成为区间 [0,100] 中的周期信号。但是,我无法为此编写代码。
在 matlab 中,如果你想生成一个周期信号,有很多方法,其中之一是:
%x is array that represent discrete time signal.
%y is generated periodic signal
%n the number of periods
temp=x'*ones(1,n);
y=temp(:);
% where x' is transpose of x.
% if we suppose x=[1,2,3]
% if we want to repeat it five times we can say n = 5
% then temp will equal [ 1 1 1 1 1
% 2 2 2 2 2
% 3 3 3 3 3]
%fianlly y will equal [1 2 3 1 2 3 1 2 3 1 2 3 1 2 3]
也许你可以像下面那样尝试arrayfun
X = arrayfun(@(k) 1:k, 2:4, "UniformOutput",false);
x = repmat([X{:}],1,2);
这给出了
x =
1 2 1 2 3 1 2 3 4 1 2 1 2 3 1 2 3 4