Thông báo

Collapse
No announcement yet.

FFT spectrum anlyer với VB 6.0

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • FFT spectrum anlyer với VB 6.0

    Nghịch chút,cho bạn nào đang có làm cái gì đó liên quan đến cái này.cái này test rất được và đặc biệt
    huýt sáo thì thấy rất rõ cái cần thấy.
    không upload được , link:
    MegaShare
    , , ,

  • #2
    Đến tết diễn đàn vắng ghê.Chúc tất cả mọi người ăn tết vui vẻ,an nhàn,hạnh phúc.
    , , ,

    Comment


    • #3
      Ai có đang hoặc sắp làm đề tài về nhận dạng tiếng nói trong môi trường có âm thanh như nhạc,tiếng ồn kô lớn.Thì có thể liên hệ mình để cÙng trao đổi học tập.Hiện tại mình đang làm nhận dạng nhiều tiếng nói cÙng lúc hoặc trong môi trường tiếng ồn lớn,nhiều âm thanh.Đang tìm cái gì đó phải trên cả fourier thì mới làm được.
      , , ,

      Comment


      • #4
        Hiện tui cũng đang làm đề tài về âm thanh , chỉ khác là k phải nhận dạng tiếng nói như pro . Tui đã đọc một tài liệu cách ng ta tách các nguồn âm và tách nhiễu (h k tìm thấy tài liệu này trong máy) , một số hàm đc sử dụng để tách lọc , và cuối cùng ng ta vẫn dùng FFT (để phân tích) và DFT (để tái tạo) .

        Đề tài tui đang làm ktra âm thanh loa : một máy phát tần số (Onsuku 5520) 100Hz-10kHz ra loa , mic thu lại âm thanh này và ktra xem loa có phát ra âm thanh rè , rột rẹt nào khác k ?

        Cái khó là tốc độ ktra phải nhanh (<10s) , môi trường ktra k phải trong phòng kín (tức có tiếng ồn)

        trong 10s phải phân tích 100 bứoc tần số , mỗi bước là 100Hz . --> 1s phải phân tích,k tra 100Hz . Hiện tại hàm FFT ( môi trừong MATLAB) tốc độ thực hiện khá chậm . Nên k đáp ứng nổi .

        Có thể đề tài tui đang làm đơn giản hơn nhiều của pro , nên pro có lời khuyên hay chỉ giáo nào k ? Cùng chia sẻ quan điểm

        Comment


        • #5
          Nếu bạn dÙng mic thu lại âm thanh từ loa thì tôi e rằng rè rột phát sinh từ mic và nguồn thiết bị của bạn đã ảnh hưởng khá nhiều rồi(nếu nguồn của bạn không tốt,nên dÙng pin).Trên matlab bạn thấy FFT nó chậm vậy thôi do nó thêm bước dịch ngôn ngữ lập trình.Khi làm với PIC hoặc đã complie thì tốc độ sẽ nhanh hơn.
          , , ,

          Comment


          • #6
            Tôi vẫn chưa hiểu rõ ý bạn bước tần số mà bạn nói.Nói chung lọc nhiễu chỉ giải quyết được trong môi trường tiếng ồn vừa và nhỏ.Còn tÙy vào số điểm bạn đang tính FFT để xác định những tần số nào kô quan trọng .Nhờ đó đánh giá cả nhiễu trong FFT mà kô cần lọc.
            , , ,

            Comment


            • #7
              Thực tế khi tính FFT trên tín hiệu thì ta kô xác định được đâu là điểm bắt đầu cho đúng.Để khi phân tích tránh phát sinh tần số vô nghĩa(nhưng ảnh hưởng kô nhỏ nếu ở tần số cao).Thế nên trong nhận dạng thì bạn nên tập trung vào các tần số cao.Nhưng chủ yếu nhiễu lại ở tần số cao.Chỉ có vài cái ở tần số thấp.
              , , ,

              Comment


              • #8
                Nguyên văn bởi rptdnmqs Xem bài viết
                Nếu bạn dÙng mic thu lại âm thanh từ loa thì tôi e rằng rè rột phát sinh từ mic và nguồn thiết bị của bạn đã ảnh hưởng khá nhiều rồi(nếu nguồn của bạn không tốt,nên dÙng pin).Trên matlab bạn thấy FFT nó chậm vậy thôi do nó thêm bước dịch ngôn ngữ lập trình.Khi làm với PIC hoặc đã complie thì tốc độ sẽ nhanh hơn.
                Bộ thu tui dùng là mua theo máy CRY6136 ($300) . Thiết bị rất đặc chủng ; nhưng vì quá đặc chủng nên cực nhạy với âm thanh . Hiện tui dùng máy Dell Vostro 1310 (2.4GHz , 3G Ram)để sử lí tín hiệu từ bộ thu này đưa vào (qua cổng MIC in) , chạy hàm FFT trên Matlab .
                Code:
                Fs=16000;nbits=16;nChannels=1;duration=0.001; // thời gian lấy mẫu 1ms
                Như vậy rõ ràng tốc độ PC sử lí nhanh hơn PIC , số điểm tính FFT cũng nhiều hơn (có nghĩa mịn hơn , chính xác hơn) . Nhưng vẫn chưa đáp ứng được thời gian đặt ra .

                Hiểu nôm na thế này : mạch lọc nhiễu (giữ lại tần số cần nghe , loại bỏ tần số lạ) .
                Còn tui đang nguyên cứu mạch tìm nhiễu (bỏ tần số cần nghe , giữ lại tần số lạ)

                Đúng như pro nói , nhiễu thường phát sinh trong dải tần cao >3kHz . Một số thì thấp hơn chút >1kHz . Nhưng để xác định rõ nhiễu ồn do môi trừong hay nhiễu do bản thân vật cần nhận dạng phát ra . Điều này tui chưa làm đc .

                Comment


                • #9
                  Bạn phân tích tần số 100hz thì thời gian lấy đủ mẫu phải là 1/100 s .Nhưng thường phải tính bằng 2 lần thời gian đó thì bạn sẽ ít bị nhiễu ở tần số thấp.Để chính xác hơn khi phân tích FFT thì tần số lấy mẫu cũng là giá trị theo 2^n .Vì số điểm FFT theo 2^m nên tần số lấy mẫu phải gần 2^n nhất.
                  , , ,

                  Comment


                  • #10
                    Matlab nó mô phỏng nên hơi chậm.Bạn thử viết với VB hoặc C# thì kô ảnh hưởng gì hết.Ngay cả trên PIC18 cũng kô vấn đề gì cả.Có phải bạn muốn tính toán FFT 100 lần trong 1s.Cái này với laptop của bạn là kô thành vấn đề.
                    , , ,

                    Comment


                    • #11
                      Cái việc lọc nhiễu trong tiếng nói khác xa với việc lọc nhiễu trong mấy cái tín hiệu sin,xung vuông,tam giác...Vì bản thân tiếng nói mang nhiễu và thay đổi tần số,biên độ theo thời gian.Nếu nói biên độ với tín hiệu đơn sin thì kô phụ thuộc vào biên độ mà chỉ phụ thuộc vào tần số.Nhưng khi tín hiệu có nhiều tần số thì kô chỉ tần số mà còn tÙy vào biên độ.
                      , , ,

                      Comment


                      • #12
                        Nguyên văn bởi rptdnmqs Xem bài viết
                        Matlab nó mô phỏng nên hơi chậm.Bạn thử viết với VB hoặc C# thì kô ảnh hưởng gì hết.Ngay cả trên PIC18 cũng kô vấn đề gì cả.Có phải bạn muốn tính toán FFT 100 lần trong 1s.Cái này với laptop của bạn là kô thành vấn đề.
                        Chính xác là tui muốn thực hiện phép FFT 100 lần/s . VB hoặc C# tui chưa thử , có lẽ làm thử xem tốc độ cải thiện như thế nào !

                        Comment


                        • #13
                          Nguyên văn bởi rptdnmqs Xem bài viết
                          Cái việc lọc nhiễu trong tiếng nói khác xa với việc lọc nhiễu trong mấy cái tín hiệu sin,xung vuông,tam giác...Vì bản thân tiếng nói mang nhiễu và thay đổi tần số,biên độ theo thời gian.Nếu nói biên độ với tín hiệu đơn sin thì kô phụ thuộc vào biên độ mà chỉ phụ thuộc vào tần số.Nhưng khi tín hiệu có nhiều tần số thì kô chỉ tần số mà còn tÙy vào biên độ.
                          Exactly ! nhận dạng đc 1 giọng nói trong môi trường kín đã k phải là đơn giản . Lí do : tại mỗi thời điểm cừong độ nói có thể khác nhau , k lúc nào là đồng nhất . Bản thân ng nói cũng chưa chắc đk đc giọng của mình cho chuẩn xác theo đúng giọng lấy mẫu .

                          Comment


                          • #14
                            Giả sử bạn lấy mẫu với tần số 32khz.Và thời gian lấy mẫu bằng 1/100=0.01s=10ms.Như thế tính sơ sơ bạn chỉ tính tối đa được 90 lần FFT trong 1 giây.Nếu tính kô đủ 10ms thì tần số gần cận dưới của bạn bị bốc hơi.
                            , , ,

                            Comment


                            • #15
                              Nguyên văn bởi rptdnmqs Xem bài viết
                              Giả sử bạn lấy mẫu với tần số 32khz.Và thời gian lấy mẫu bằng 1/100=0.01s=10ms.Như thế tính sơ sơ bạn chỉ tính tối đa được 90 lần FFT trong 1 giây.Nếu tính kô đủ 10ms thì tần số gần cận dưới của bạn bị bốc hơi.
                              Vì thời gian đặt ra để hoàn thành 1 lần ktra ngắn , dẫn đến bắt buộc phải nhảy bước tần số (bước nhảy =10)
                              100Hz : ktra FFT
                              110 : ktra FFT
                              ...

                              K tuyến tính --> khả năng phát hiện lỗi bị hạn chế (vd tại tần số 105Hz loa bị rè thì k phát hiện đc)

                              Comment

                              Về tác giả

                              Collapse

                              rptdnmqs Tìm hiểu thêm về rptdnmqs

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X