2017-08-15 84 views
-1

我有一个信号,我想介绍几个偏移和延迟,其中偏移范围从0.55和延迟范围从17添加偏移和延迟

我在此提供一个示例信号来演示我遇到的问题,但实际数据的大小为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); 
+0

下一次,请注明你的问题的身体得到的错误/问题。 –

+0

非常感谢,下次我还会附上我遇到的错误类型 – Peter

+0

Dev-iL请你看看最新的问题。 – Peter

回答

1

当试图运行示例代码,我得到这个错误:

Undefined function retrend for input arguments of type double .

这样做的原因是,retrend功能,这是部分System Identification Toolbox,需要data object (iddata)作为输入。

如果你有上述的工具箱,你可以创建一个数据对象作为example for retrend,然后添加一个趋势类似于你已经尽力了。

根据我的理解,增加一个延迟是棘手的,因为你需要保持相同的向量长度。您可以用正确的方向填充一些虚拟值(如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); 

产量:

After adding a trend + offset

+0

非常感谢Dev-iL这是一个完美的答案我正在寻找只是想知道是否要为不同的偏移和延迟值设置此值 – Peter