اطلاعیه

Collapse
No announcement yet.

فریم بندی یک سیگنال صوتی

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    فریم بندی یک سیگنال صوتی

    دوستان درود ، والا من زیاد با دستوراتِ متلب آشنایی ندارم ! استاد هم یه سری تمرین داد که اگه جواب ندم نرم پایان ترم پَر :sad: :sad: :sad: ممنون میشم اگه بلد هستین کمک کینین :sad:
    سوال : یک سیگنال صوتی را لُود کرده ، بخوانید با متلب ، پنجره گذاری کنید ، در هر پنجره تبدیل فوریه ( FFT ) ، اندازه و زاویه را بدست آورید ؟
    در ادامه مثلا برای پنجره 5 ام اندازه تبدیل فوریه را رسم کنید ؟
    ............
    تو رو خدا کمک کنید :sad: :sad: :sad: :sad:

    #2
    پاسخ : فریم بندی یک سیگنال صوتی

    سلام. :biggrin: ایشالا که نمیوفتی...

    step = frameSize-overlap;
    frameCount = floor((length(y)-overlap)/step);

    out = zeros(frameSize, frameCount);
    for i=1:frameCount,
    startIndex = (i-1)*step+1;
    out(:, i) = y(startIndex:(startIndex+frameSize-1));
    end

    بعد از اون وقتی سیگنالتو خوندی
    signal=wavread('file.wav&#039
    بزارش توی ورودی تابع با طول پنجره و همپوشانی دلخواه مثل زیر :
    frameSize=512;
    overlap=256;

    frame1=buffer2(signal, frameSize, overlap);

    حالا یه ماتریسی داری که تعداد ستون هاش تعداد پنجره هات هستن و تعداد سطرهات نمونه های قسمت بندی شده، اما حالا باید این مقادیر رو در پنجره دلخواهت ضرب بکنی مثل زیر:
    frameNum=size(frame1, 2);
    frame1=frame1.*(hamming(frameSize)*ones(1,frameNum ));
    دستورات را اجرا بکن و نتیجه رو خودت ببین


    حالا از ماتریس انتهایی استفاده میکنیم و مثلا قطعه 5 رو برمیداریمut(5,

    بعد هم که تبدیل فوریه رو اعمال میکنی

    دیدگاه


      #3
      پاسخ : فریم بندی یک سیگنال صوتی

      درود ، ممنونم از راهنماییِ شما !!! ببینید استاد اولِش یه راهنمایی داد و تمام دیگه چیزیی نگفت !! و این برنامه ایی که شما نوشتی رو هم دارم تست میکنم !! اجرا نمیشه
      این برنامه استاد که گفت و نیمه کارِ موند :
      s=load (file wav);
      [left][sn,fs]=wavread(s)
      frameL=10;
      nframeL=round((10/1000)*Fs);
      L=size(sn);
      M=Ceil(L/nframeL);
      L : زول سیگنال ، M : تعداد فریم ...........
      دیگه ادامه نداد !!! اینی که شما زحمت اش رو کشیدین کذوم قسمت FFT و کجاش اندازه و زاویه رو محاسبه کرده ؟ :sad: :sad: :sad: :sad:
      بازم ممنونم که وقت گذاشتی

      دیدگاه


        #4
        پاسخ : فریم بندی یک سیگنال صوتی

        والا دوستم این برنامه ای که من نوشتم خودم ازش استفاده کردم و جواب میده.(یبار خودت برنامه رو تریس کن تا ایراد کارتو بفهمی.)
        اندازه و زاویه رو نمیدونم.(شرمنده :biggrin
        ولی برای قسمت fft، کافیست از تابعfft() استفاده کنی.

        *برو از نت voicebox tools رو دانلود کن و از تابع enframe استفاده کن. و یه نگاهی به تابعش بنداز..اون یه تابع آماده س برای پنجره بندی سیگنال.
        ولی این کدها راحتتره...

        دیدگاه


          #5
          پاسخ : فریم بندی یک سیگنال صوتی

          ببین fft تبدیل سیگنال تو حوزه زمان به حوزه فرکانس هستش.
          سیگنال تو حوزه زمان، یک مولفه دامنه و یک مولفه زمان داره. مثلا تو زمان خاصی دامنه خاصی داره. همه مقادیر هم تو حوزه اعداد حقیقی هستند.
          تو حوزه فرکانس اعداد به فرمت مختلط هستند. همونطور که میدونید برای نمایش اعداد مختلط چندین روش استفاده میشه. مثلا قطبی یا با j .
          مثلا عدد 1+j میشه یک نقطه تو دستگاه مختصات قطبی با دامنه 1.4 (رادیکال 2) و فاز 45 درجه. (شاید منظرتون از زاویه همین فاز باشه).
          وقتی توی متلب fft می گیری اعدادی که بهت تحویل میده مختلط هستند و به صورت x+yj هستند. حالا شما می تونی با استفاده از تبدیل های موجود اندازه و زاویه رو به دست بیاری. برای اندازه از abs استفاده کن و برای زاویه هم می تونی تانژانت معکوس y/x رو برای همه نمونه به دست بیاری. برای زاویه دستور هم داره که من الان خاطرم نیست.
          ---------
          .
          .
          ...........

          دیدگاه


            #6
            پاسخ : فریم بندی یک سیگنال صوتی

            ایول دوستم :applause:

            راسیاتش من رشته ام کامپیوتره.خیلی زیاد سر در نمیارم تو ریزه کاری....
            فقط راجع به چیزایی که مربوط به کارم بود و کار کرده بوودم میدونستم... :nice:

            دیدگاه


              #7
              پاسخ : فریم بندی یک سیگنال صوتی

              سلام خسته نباشید خواهشا کمکم کنین : فریم بندی و پنجره گذاری سیگنال گفتار سپس تبدیل فوریه با طول پنجره وoverlap و تعداد فریم م شخص .. بعدش میانگین گیری از فریم ها

              دیدگاه

              لطفا صبر کنید...
              X