I have a signal into which I want to introduce several offsets and delays, where offsets range from 0.5
to 5
and delays range from 1
to 7
.
I'm providing an example signal here to demonstrate the problem I'm having, but the size of my real data is 1x1666520.
How do I introduce these changes to the signal?
Example code:
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);
When trying to run your example code, I'm getting this error:
The cause of this is that the
retrend
function, which is part of the System Identification Toolbox, requires a data object (iddata
) as an input.If you have the aforementioned toolbox, you can create a data object as in the example for
retrend
, then add a trend similarly to what you already tried.To my understanding, adding a delay is trickier, because you need to maintain the same vector length. You can pad your vectors with some dummy values (such as
NaN
) in the correct direction.Applied to your case we get:
Yielding: