اطلاعیه

Collapse
No announcement yet.

پردازش صدا با متلب

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

    پردازش صدا با متلب

    سلام
    من هم توی پنجره بندی سیگنال صوت با پنجره همینگ و overlap 50 درصد مشکل دارم
    اگه لطف کنید توی کد نویسی مطلب آن بهم کمک کنید ممنون میشم

    #2
    پاسخ : پردازش صدا با متلب

    نوشته اصلی توسط aa54
    سلام
    من هم توی پنجره بندی سیگنال صوت با پنجره همینگ و overlap 50 درصد مشکل دارم
    اگه لطف کنید توی کد نویسی مطلب آن بهم کمک کنید ممنون میشم
    چه جوری می تونم در انجمن سوال بذارم
    با تشکر

    دیدگاه


      #3
      پاسخ : پردازش صدا با متلب

      سلام دوست عزیز
      اول یه تابع به این صورت درست بکن که سیگنالتو به قسمت هایی برابر طول پنجره و با توجه به مقدار همپوشانی تقسیم بندی بکنه :
      function out = buffer2(y, frameSize, overlap)

      if nargin<3, overlap=0; end
      if nargin<2, frameSize=256; end

      y = y(;
      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 ));
      دستورات را اجرا بکن و نتیجه رو خودت ببین

      دیدگاه

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