添加偏移量和延迟
Adding offset and delay
我有一个信号,我想在其中引入几个偏移和延迟,其中偏移范围从 0.5
到 5
,延迟范围从 1
到 7
.
我在这里提供了一个示例信号来演示我遇到的问题,但我的真实数据的大小是 1x1666520。
如何将这些变化引入信号?
示例代码:
t = [ 0 : 1 : 50]; % Time Samples
f = 45; % Input Signal Frequency
Fs = 440; % Sampling Frequency
data = sin(2*pi*f/Fs*t)';
T.InputOffset = 5;
T.OutputOffset = 5;
addoffset = retrend(data);
Y = step(delay,data);
figure(); plot(t,addoffset,t,Y);
在尝试 运行 您的示例代码时,出现此错误:
Undefined function retrend
for input arguments of type double
.
原因是retrend
function, which is part of the System Identification Toolbox, requires a data object (iddata
)作为输入。
如果您有上述工具箱,您可以像 example for retrend
中那样创建一个数据对象,然后添加一个 趋势 类似于您已经尝试过的。
据我了解,添加 delay 比较棘手,因为您需要保持相同的向量长度。您可以在正确的方向上用一些虚拟值(例如 NaN
)填充向量。
应用于您的情况我们得到:
function q45688607
%% Generate data:
t = (0 : 1 : 50).'; % Time Samples
f = 45; % Input Signal Frequency
Fs = 440; % Sampling Frequency
y = sin(2*pi*f/Fs*t);
d_data = iddata(y, t, 1/Fs);
%% Add offset:
T = getTrend(d_data);
% <detrend data if needed>
T.InputOffset = 5;
T.OutputOffset = 5;
afterOffset = retrend(d_data,T);
%% Add delay:
delaySamples = 8; % Must be a non-negative value
afterDelay = iddata([NaN(delaySamples,1); d_data.OutputData],...
[d_data.InputData; NaN(delaySamples,1)], 1/Fs);
%% Plot:
figure(); plot(d_data,afterOffset, afterDelay);
产量:
我有一个信号,我想在其中引入几个偏移和延迟,其中偏移范围从 0.5
到 5
,延迟范围从 1
到 7
.
我在这里提供了一个示例信号来演示我遇到的问题,但我的真实数据的大小是 1x1666520。
如何将这些变化引入信号?
示例代码:
t = [ 0 : 1 : 50]; % Time Samples
f = 45; % Input Signal Frequency
Fs = 440; % Sampling Frequency
data = sin(2*pi*f/Fs*t)';
T.InputOffset = 5;
T.OutputOffset = 5;
addoffset = retrend(data);
Y = step(delay,data);
figure(); plot(t,addoffset,t,Y);
在尝试 运行 您的示例代码时,出现此错误:
Undefined function
retrend
for input arguments of typedouble
.
原因是retrend
function, which is part of the System Identification Toolbox, requires a data object (iddata
)作为输入。
如果您有上述工具箱,您可以像 example for retrend
中那样创建一个数据对象,然后添加一个 趋势 类似于您已经尝试过的。
据我了解,添加 delay 比较棘手,因为您需要保持相同的向量长度。您可以在正确的方向上用一些虚拟值(例如 NaN
)填充向量。
应用于您的情况我们得到:
function q45688607
%% Generate data:
t = (0 : 1 : 50).'; % Time Samples
f = 45; % Input Signal Frequency
Fs = 440; % Sampling Frequency
y = sin(2*pi*f/Fs*t);
d_data = iddata(y, t, 1/Fs);
%% Add offset:
T = getTrend(d_data);
% <detrend data if needed>
T.InputOffset = 5;
T.OutputOffset = 5;
afterOffset = retrend(d_data,T);
%% Add delay:
delaySamples = 8; % Must be a non-negative value
afterDelay = iddata([NaN(delaySamples,1); d_data.OutputData],...
[d_data.InputData; NaN(delaySamples,1)], 1/Fs);
%% Plot:
figure(); plot(d_data,afterOffset, afterDelay);
产量: