2012-02-12 22 views
1

は、一定の時間ピーク電力に達したかどうかを確認する機能があるかどうかを知りたいです。 -110dBピーク電力の持続時間を確認する方法

擬似コード

最大しきい値より後、5秒ショーの警告他 ため、このしきい値@ユーザーの滞在は、何もしない場合。

EDIT:回答

-(void)thresholdCheck:(NSString *)peakValue 
{ 
    int sec = hit/60; //1/60sec 
    NSString *tempSec = [NSString stringWithFormat:@"%i",sec]; 
    [timeTrash setText:tempSec]; 

    if (110<[peakValue intValue])//110db 
    { 
     hit++; 
     NSLog(@"hit threshold %i",hit);   
    } 
    else 
    { 
     hit =0; 
     //NSLog(@"hit threshold %i",hit); 
    } 

    if (hit >=330)//more then 5 sec { 

     NSLog(@"hit thresholded %i",hit); 
     [recorder stop]; 
     [levelTimer invalidate]; 

     UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Threshold Hit" message:@"Sorry You Hit the threshold" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil]; 
     [alert show]; 
    } 
+0

謝罪が、私の問題への解決策を模索しながら、私はあなたの質問に出くわしました。私はあまりにもある閾値を読んだ後に録音しています。このスレッショルドを見つけるために、私はオーディオの各バッファの実効値を求めています。しきい値レベルの計算にどのようなテクニックを使用しているのかを私に説明できますか? – dubbeat

+0

私は実際にオーディオ入力のピークパワーに基づいています。 ピークパワーが5秒以上一定パワー以上であれば、ピーク入力を確認します。それはあなたが好きなことをするでしょう。私のように、1/60~60hzを実行するので、ヒットは300~5秒以上です。 – Desmond

答えて

2

私はあなたがここに求めているものをやる準備ができて調理機能を見つけることができます疑います。単純なfinite state machine(FSM)は、ソリューションに適しているようです。あなたがまだ慣れていない場合は、tutorialをFSMでチェックしてください。

単純なFSMは、hereのように列挙型とswitch文を使用して実装することも、上に掲載したチュートリアルのリンクのリスト1を使用して実装することもできます。

はここにあなたのFSMは、あなたの特定のケースのためにどのように見えるかの例です:あなたの質問に仮止め用

State Chart

+0

カットイメージが残念です。ディアはゴミの一片です。 –

+0

エミールに感謝、私はそれをこのようにした:) – Desmond

関連する問題