我會試着更具體一點:我有幾個時間歷史的信號幾乎都有相同的行爲(正弦波),但都在不同的時間點開始。我如何自動檢測初始時間延遲並將其刪除,以便所有正弦波在同一時刻開始?如何在MATLAB中同步兩個或更多波形?
1
A
回答
0
下工作得很好,在低噪聲條件和快速採樣,並且可根據您的精度要求做。它使用了一個簡單的閾值,因此當事情變得嘈雜時,它會出現不準確的情況。將thresh
調整爲高於噪音的較低值。
Nwav = 3;
Np = 100;
tmax = 50;
A = 1000;
Nz = Np/5;
%%%%%%%%%%%%%%
thresh = A/50;
%%%%%%%%%%%%%%
% generate some waveforms
t = [0:tmax/(Np-1):tmax].';
w = rand(1,Nwav);
offs = round(rand(1,Nwav)*100);
sig = [A*sin(t(1:end-Nz)*w) ; zeros(Nz,Nwav)] + randn(Np,Nwav);
for ii=1:Nwav
sig(:,ii) = circshift(sig(:,ii),round(rand()*Nz));
end
figure, plot(t,sig)
hold on, plot(t,repmat(thresh,length(t),1),'k--')
% use the threshold and align the waveforms
for ii=1:Nwav
[ir ic] = find(sig(:,ii)>thresh,1)
sig(:,ii) = circshift(sig(:,ii),-ir+1);
end
figure, plot(t,sig)
hold on, plot(t,repmat(thresh,length(t),1),'k--')
有改進的空間(噪聲過濾,斜率檢測),但這應該讓你開始。
我還建議你看看波形處理工具箱,在MATLAB中心爲實例。
+0
謝謝您的輸入!我一直在努力!一切都是自動的,除了門檻!有時我必須因噪音而調整它!我也使用低通濾波器來減少噪音,但有時還不夠!不管怎樣,謝謝你 – S88S
2
如果你有兩個信號,x和y,每個ANX 1矩陣,其中y是x的移位版本:
[c,lags] = xcorr(x,y); % c is the correlation, should have a clear peak
s = lags(c==max(c)); % s is the shift you need
y2 = circshift(y,s); % y2 should now overlap x
(演示僅供參考 - 我不建議你circshift實際數據)。與x和y的長度相比,在這種情況下你所尋找的變化應該相對較小。很大程度上取決於噪聲水平和偏移的性質。
相關問題
- 1. 如何在同一頁上同步兩個或更多動畫?
- 2. 如何同步兩個或更多的Mercurial服務器?
- 3. 兩個或更多表在數據庫中大部分同步
- 4. 如何在同一個圖中製作兩個條形圖Matlab
- 5. 在兩個或更多SKSpriteNode上同步SKActions?
- 6. 如何在pentaho轉換中一步運行兩次或更多?
- 7. 如何比較兩個波形數據?
- 8. matlab中的平均波形
- 9. 如何在MATLAB中使用波浪線連接兩個點
- 10. 如何在MATLAB中製作多陷波濾波器?
- 11. 如何獲得matlab中示波器波形的實時繪圖?
- 12. 如何繪製2個或更多通道的波形:從2個或更多通道獲取振幅?
- 13. 如何使兩個或更多可執行的JSch通道同步?
- 14. iPhone && Chipmunk-如何同步兩種形狀
- 15. 如何同步兩個UIDatePickers
- 16. 如何同步兩個textareas?
- 17. 如何同步兩個QGraphicsViews?
- 18. 如何同步兩個NSManagedObjectContext
- 19. 如何辨別2個或更多同步IR輸入?
- 20. 如何同步2個或更多觀看文件夾
- 21. 同步在Matlab
- 22. MatLab中有兩個相同的波形圖,但轉換爲極座標後創建的圖形會變形嗎?
- 23. 如何在同一個佈局中使用兩個或更多的autocompletetextview?
- 24. 如何從兩個或更多陣列
- 25. 如何解散兩個或更多dismissModalViewController?
- 26. 如何在兩個或更多視圖中共享單個Viewmodel?
- 27. 如何在MATLAB中對同一個系統求和兩步響應?
- 28. 或加載圖像同步在MATLAB
- 29. 如何同步WPF中的兩個MediaPlayers或MediaElements?
- 30. 從兩個或多個Servlet同步訪問一個文件
聽起來像你試圖重新示波器的行爲。您可以發佈可用於重現信號的圖像或代碼嗎? 「幾乎相同」不是很有幫助。正弦波開始前信號是靜態的嗎? –
我可以在評論中發佈圖片嗎?但無論如何,只要想象你有3個相同振幅和頻率的正弦波,它們在不同的瞬間開始。我想要做的是「同步」他們,使他們都在同一時刻開始。我已經完成了這個手動切割3個向量,以消除初始偏移量,但我正在尋找一個自動完成相同事情的函數。我也嘗試使用'xcorr',但是我得到的回報要麼不是很有用,要麼我不知道如何使用它。任何幫助? – S88S