2014-08-28 65 views
1

我想通過將採樣頻率減半來進行下采樣。我的信號由IObservable<Sample>表示。因此我必須跳過流中的每個第二個樣本。我已經試過了。但是Buffer(2)之後的第二個選擇命令有錯誤。跳過Observable中的每個第二個元素

智能感知消息(在選擇命令上)是:「方法[... SkipEverySecond ...]的類型參數不能從使用中推斷出來,請嘗試明確指定類型參數。通過刪除「samples =>」分配可以消除此錯誤。我不明白爲什麼...

/// <summary> 
/// Called when a part's imports have been satisfied and it is safe to use 
/// </summary> 
public void OnImportsSatisfied() 
{ 
    signalFiltering.ConfigureFilters(filterParameter); 
    configManager.LoadAttributed(this, this); 

    //currentRdm.ForwardedDataSource is an imported Observable 
    //ToDo: Skip every second sample (downsampling) 
    this._forwardedDataSource = this.currentRdm.ForwardedDataSource.Select(
      sample => signalFiltering.Filter(sample, filterParameter)). 
            Buffer(2).Select(samples => SkipEverySecond); 

    this._qrsComplexis = this._forwardedDataSource.Buffer(QRSWINDOWSIZE).Select(SamplePacketProcess); 
} 

private Sample SkipEverySecond(IEnumerable<Sample> samples) 
{ 
    return samples.First(); 
} 
+0

您能標記答案爲正確嗎?謝謝 – Juan 2014-09-04 06:51:58

回答

1

您不需要lambda表達式samples =>。如果我理解正確,則選擇應用於緩衝區的輸出是IEnumerable<Sample>

相關問題