2017-08-15 124 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