Hobby project ... FFT/IFFT

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • jefflieu
    Moderator
    • Oct 2007
    • 998

    #1

    Hobby project ... FFT/IFFT

    Có bạn nào hứng thú làm project FFT/IFFT hok?
    Mình tính thực hiện từng bước như thế này:
    - 16 Point FFT
    - 256 point FFT
    - 1026 Point FFT
    - 16k Point FFT
    Có ai bàn ra bàn vô gì ko?
  • lick
    Thành viên tích cực
    • Dec 2005
    • 199

    #2
    Biến đổi Fourier dùng để phân tích 1 tín hiệu trong miền thời gian ==> miền tần số. Một số chỗ mình thắc mắc, cùng giải quyết nhé:
    - Trong các hệ thống điện tử, tầm quan trọng của FFT. ví dụ? làm FFT để làm gì?
    - Sử dụng chip FPGA nào?
    - Mình quen dùng verilog=> dùng verilog nhé.
    - Khi tăng số điểm FFT có hiệu ứng gì?
    - Tài liệu để thực hiện FFT trên FPGA, từ lý thuyết đã học chuyển sang FPGA thế nào.
    Hi vọng bài viết giúp X được cho bạn.

    Comment

    • tonyvandinh
      Moderator
      • Jun 2009
      • 327

      #3
      Trong các hệ thống điện tử, tầm quan trọng của FFT. ví dụ? làm FFT để làm gì?
      Theo tôi thì dùng FFT có 2 lợi điểm:

      1) Đơn giản hơn vì làm multiplication dễ hơn convolution (time convolution == frequency multiplication). Khi biến đổi qua miền tần số rồi thì cách lọc nhiễm sẽ đơn giản hơn.
      2) Có thể chia ra làm nhiều chặng để đơn giản hóa. Ví dụ 16 điểm có thể dùng 4x4 hoặc 8x2 hoặc 2x2x2x2.

      Khi tăng số điểm FFT có hiệu ứng gì?
      Càng nhiều điểm càng chính xác hơn khi gây tạo lại nguồn sóng gốc (original signal)

      Tài liệu để thực hiện FFT trên FPGA, từ lý thuyết đã học chuyển sang FPGA thế nào.
      Thường thì mấy hãng FPGA cho khách hàng RTL làm sẵn. Nếu hiểu lý thuyết thì có thể thay đổi một vài chi tiết để có một thiết kế theo mô hình sẵn của họ. Nếu mô hình sẵn có không phù hợp với điều kiện của thiết kế (tốc độ, diện tích, năng lượng hoặc cho ASIC, thì phải tự thiết kế từ đầu.

      Trên mạng có rất nhiều tin tức về FFT và nhiều cách thiết kế khác nhau tùy theo specification cho nên tôi nghĩ nên bàn về specification trước để mọi người cùng tham khảo cụ thể hơn.

      Tony
      Chúc một ngày vui vẻ
      Tony
      email : dientu_vip@yahoo.com

      Comment

      • cachep
        Thành viên chính thức
        • Jul 2008
        • 49

        #4
        To bác tony: mấy project về bộ lọc số đã triển khai chưa bác. Em định tham gia project vể bộ lọc trước chứ project FFT/IFFT em sợ chưa đủ công lực.
        To bác jefflieu: em rất thích cái project này

        Comment

        • tonyvandinh
          Moderator
          • Jun 2009
          • 327

          #5
          Nguyên văn bởi cachep Xem bài viết
          To bác tony: mấy project về bộ lọc số đã triển khai chưa bác. Em định tham gia project vể bộ lọc trước chứ project FFT/IFFT em sợ chưa đủ công lực.
          To bác jefflieu: em rất thích cái project này
          Cachep tự mở thread riêng ra thì mọi người sẽ đóng góp. Tôi nghĩ FFT/IFFT thì khá khó. Bộ lọc FIR thì dễ hơn nhiều. Mong cachep xung phong làm project lead cho bộ lọc FIR.

          Tony
          Chúc một ngày vui vẻ
          Tony
          email : dientu_vip@yahoo.com

          Comment

          • jefflieu
            Moderator
            • Oct 2007
            • 998

            #6
            Nguyên văn bởi lick Xem bài viết
            Biến đổi Fourier dùng để phân tích 1 tín hiệu trong miền thời gian ==> miền tần số. Một số chỗ mình thắc mắc, cùng giải quyết nhé:
            - Trong các hệ thống điện tử, tầm quan trọng của FFT. ví dụ? làm FFT để làm gì?
            - Sử dụng chip FPGA nào?
            - Mình quen dùng verilog=> dùng verilog nhé.
            - Khi tăng số điểm FFT có hiệu ứng gì?
            - Tài liệu để thực hiện FFT trên FPGA, từ lý thuyết đã học chuyển sang FPGA thế nào.
            -FFT dùng để xem xét phần tần số của tín hiệu, dùng trong các máy phân tích phổ (spectrum analyzer), ... khi cho tín hiệu qua các máy này, các bạn sẽ thấy trong tín hiệu chứa các tần số nào.
            FFT dùng trong các bộ lọc, các máy analysis và trong hệ thống TV số sử dụng điều chế OFDM.


            -Sử dụng FPGA nào chưa quan trọng. Mình làm và simulation trên modelsim/ISE. PHải làm sao cho chạy trên FPGA nào cũng được.

            -Dùng ngôn ngữ gì cũng được.

            - FFT có 2 điểm quan trọng là : tần số lấy mẫu, sampling frequency Ts. Và số lượng mẫu N.
            Khi tăng tần số lấy mẫu, cho phép tăng độ rộng của phổ quan sát được... độ rộng này bằng 1/Ts/2 (nyquist frequency), và khi tăng số lượng mẫu cho phép tăng độ phân giải của phổ quan sát được. ví dụ Ts = 1us --> Fs = 1MHz --> Fnyquist = 500KHz, nếu N = 1000 thì độ phân giải của bạn là 1MHz/1000 = 1kHz, bạn chỉ thấy được các tần số ở 1, 2, 3KHz. Nếu N = 10000 thì độ phân giải tăng lên --> 100Hz

            - Tài liệu về FFT, về lý thuyết thì khá nhiều trên net, về FPGA thì mình sẽ download từ các trang web IEEE, ScienceDirect, ... mọi người phụ tìm ... mình sẽ nhờ bạn bè download giúp.

            Comment

            • lick
              Thành viên tích cực
              • Dec 2005
              • 199

              #7
              Với lối vào là tín hiệu tươn tư, liên tục ta cần lấy mẫu sau đó thực hiện FFT. Tần số lấy mẫu cho phép ta quan sát tín hiệu trong giải thông nhất định ( < Fs/2).

              - Phải thực hiện việc lấy mẫu bên ngoài FPGA? và các mẫu này lấy được thông qua bộ ADC. Như vậy mỗi mẫu sẽ được lưu trong thanh ghi N bit ( N bit ADC) ==> thực hiện FFT??
              - Trong FPGA để thực hiện FFT, cần có bộ trễ, bộ cộng, bộ nhân?? sau khi tính toán xong sẽ xuất lối ra cũng là dãy số. Làm sao để biết được phổ tần số của tín hiệu nhỉ? tức là tín hiệu sẽ phân bố trên dải tần nào.??
              Hi vọng bài viết giúp X được cho bạn.

              Comment

              • lick
                Thành viên tích cực
                • Dec 2005
                • 199

                #8
                Nguyên văn bởi tonyvandinh Xem bài viết
                Cachep tự mở thread riêng ra thì mọi người sẽ đóng góp. Tôi nghĩ FFT/IFFT thì khá khó. Bộ lọc FIR thì dễ hơn nhiều. Mong cachep xung phong làm project lead cho bộ lọc FIR.

                Tony
                Cá chép làm đi. Mọi người cùng vào chém.
                Hi vọng bài viết giúp X được cho bạn.

                Comment

                • jefflieu
                  Moderator
                  • Oct 2007
                  • 998

                  #9
                  Nguyên văn bởi lick Xem bài viết
                  Với lối vào là tín hiệu tươn tư, liên tục ta cần lấy mẫu sau đó thực hiện FFT. Tần số lấy mẫu cho phép ta quan sát tín hiệu trong giải thông nhất định ( < Fs/2).

                  - Phải thực hiện việc lấy mẫu bên ngoài FPGA? và các mẫu này lấy được thông qua bộ ADC. Như vậy mỗi mẫu sẽ được lưu trong thanh ghi N bit ( N bit ADC) ==> thực hiện FFT??
                  - Trong FPGA để thực hiện FFT, cần có bộ trễ, bộ cộng, bộ nhân?? sau khi tính toán xong sẽ xuất lối ra cũng là dãy số. Làm sao để biết được phổ tần số của tín hiệu nhỉ? tức là tín hiệu sẽ phân bố trên dải tần nào.??
                  Trên thực tế là vậy, nhưng nếu làm thì Không cần ADC gì hết, dùng Matlab (hoặc C) để tạo ra tín hiệu để test. Ví dụ muốn tạo tín hiệu có 2 tần số f1, f2:
                  for(i=0;i<1000;i++)
                  {x(n) = sin(2*pi*f1*n*Ts) + sin(2pi*f2*nTs)}
                  Ts = chu kì lấy mẫu.

                  Comment

                  • nguyenchipon
                    Thành viên mới
                    • Sep 2008
                    • 10

                    #10
                    Em đang làm FFT processor radix 2-2 1024 điểm , các anh chị đi trước có j chỉ giáo em với !!! Đang làm đồ án 2 về cái này mà thấy đau đầu quá xá . Em đang viết code C để test phần cứng , anh ( Chị ) có tài liệu về C để mô mô phỏng chức năng phần cứng thì chỉ cho em với ! Em vốn dốt C , vì yêu cầu là viết C chứ hem được dùng Matlab . Em thanks nhiều nhiều

                    Comment

                    • bqviet
                      Linux zealot
                      • Jun 2007
                      • 6170

                      #11
                      Làm đồ án, bất kể về cái gì, vui lòng sang chuyên mục Hỗ trợ học tập. Phân còn lại của diễn đàn dành cho người làm chuyên nghiệp; có thể là SV, nhưng ít nhất cách suy nghĩ và làm việc là chuyên nghiệp.
                      Phần mềm tự do hoặc không dùng máy tính nữa !.

                      Comment

                      • cachep
                        Thành viên chính thức
                        • Jul 2008
                        • 49

                        #12
                        Nguyên văn bởi tonyvandinh Xem bài viết
                        Cachep tự mở thread riêng ra thì mọi người sẽ đóng góp. Tôi nghĩ FFT/IFFT thì khá khó. Bộ lọc FIR thì dễ hơn nhiều. Mong cachep xung phong làm project lead cho bộ lọc FIR.

                        Tony
                        Bác Tony,
                        Từ bé đến giờ đúng là em chưa 1 lần nào làm lead đờ. Em đang định theo làm member của 1 cái project nào đó, ví dụ như cái project FFT/IFFT để tích lũy kinh nghiệm rồi sau đó mới xung phong lamg project leader .
                        Em

                        Comment

                        • tonyvandinh
                          Moderator
                          • Jun 2009
                          • 327

                          #13
                          Nguyên văn bởi cachep Xem bài viết
                          Bác Tony,
                          Từ bé đến giờ đúng là em chưa 1 lần nào làm lead đờ. Em đang định theo làm member của 1 cái project nào đó, ví dụ như cái project FFT/IFFT để tích lũy kinh nghiệm rồi sau đó mới xung phong lamg project leader .
                          Em
                          Chưa làm bao giờ thì có thích thú để làm. Tự làm mới học nhiều hơn là đứng ngoài xem.
                          1) Mở thread mới
                          2) Ra tiêu chuẩn (specification) của thiết kế (mời mọi người đóng góp)
                          3) Kết thúc tiêu chuẩn.
                          4) Đề ra những bước thực hiện (thiết kế, thử nghiệm, cho từng khối rồi cho cả thiết kế...)
                          5) Thu thập những kinh nghiệm (tốt lẫn xấu)
                          6) Hoàn chỉnh lại thiết kế nếu được
                          7) vân vân

                          Cứ làm đi, mọi người sẽ phụ cho. Đâu phải đi đánh trận mà sợ :-)

                          Tony
                          Chúc một ngày vui vẻ
                          Tony
                          email : dientu_vip@yahoo.com

                          Comment

                          • tonyvandinh
                            Moderator
                            • Jun 2009
                            • 327

                            #14
                            Nguyên văn bởi nguyenchipon Xem bài viết
                            Em đang làm FFT processor radix 2-2 1024 điểm , các anh chị đi trước có j chỉ giáo em với !!! Đang làm đồ án 2 về cái này mà thấy đau đầu quá xá . Em đang viết code C để test phần cứng , anh ( Chị ) có tài liệu về C để mô mô phỏng chức năng phần cứng thì chỉ cho em với ! Em vốn dốt C , vì yêu cầu là viết C chứ hem được dùng Matlab . Em thanks nhiều nhiều
                            Mời mọi người xuống link dưới đây để lấy thêm chi tiết và khởi sự nhe:

                            Fast Fourier transform — FFT. Digital signal processing (DSP) software development. Practical tutorial.


                            Tôi nghĩ mình nên bắt đầu bằng 8 hoặc 16 điểm trước rồi dùng nó làm cơ bản để làm những FFT nhiều điểm hơn.

                            Tony
                            Chúc một ngày vui vẻ
                            Tony
                            email : dientu_vip@yahoo.com

                            Comment

                            • cachep
                              Thành viên chính thức
                              • Jul 2008
                              • 49

                              #15
                              Nguyên văn bởi tonyvandinh Xem bài viết
                              Chưa làm bao giờ thì có thích thú để làm. Tự làm mới học nhiều hơn là đứng ngoài xem.
                              1) Mở thread mới
                              2) Ra tiêu chuẩn (specification) của thiết kế (mời mọi người đóng góp)
                              3) Kết thúc tiêu chuẩn.
                              4) Đề ra những bước thực hiện (thiết kế, thử nghiệm, cho từng khối rồi cho cả thiết kế...)
                              5) Thu thập những kinh nghiệm (tốt lẫn xấu)
                              6) Hoàn chỉnh lại thiết kế nếu được
                              7) vân vân

                              Cứ làm đi, mọi người sẽ phụ cho. Đâu phải đi đánh trận mà sợ :-)

                              Tony
                              Em chào bác Tony.
                              Em sẽ mở threat mới ra tiếu chuẩn, các bước thực hiện theo ý kiến chủ quan. Mong bác và các bác khác chỉnh sửa nếu cho gì chưa chính xác.
                              Em

                              Comment

                              Về tác giả

                              Collapse

                              jefflieu Email minh trực tiếp nếu bạn cần download tài liệu gấp Tìm hiểu thêm về jefflieu

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

                              Collapse

                              Đang tải...