Thông báo

Collapse
No announcement yet.

nhờ các bác tư vấn,đề tại:thiết kế FIR thích nghi trên nền fpga

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

  • #16
    Nguyên văn bởi jefflieu Xem bài viết
    Không thấy sai gì, bạn comment bớt, simulate u1/u2/u3 từ từ
    báo cáo với bác là hiện tại em đã viết được 1 cơ số khối rồi nhưng vẫn còn chút thắc mắc như thế này
    1.Do em dùng bộ lọc FIR nên đầu vào nếu coi như 1 chuỗi tín hiệu thì khi đi vào bộ lọc.Ví dụ thế này bộ lọc của em có bậc=2, em cũng chọn sỗ mẫu của x(n) là 2 luôn,theo em thấy trên mạng ngừoi ta hay viết thế này
    x0<=x_in;
    x1<=x0;
    nếu như vậy thì phải chăng chỉ có 1 mẫu được đưa vào bộ lọc,sau đó đi qua bộ trể x0,rồi lại đi qua bộ trễ x1,nếu như vậy công thức y(n)=x(n-k).w(k) sẽ chỉ có 1 mẫu nhưng tại 2 thời điểm khác nhau là n và n-1
    để em ví dụ ntn cho dễ hình dung
    x(n)=(13,14) suy ra y(n)=14.w(0)+13.w(1) đây là lý thuyết,còn nếu như trên thì em hiểu là 14.w(0)+14.w(1) ???bác giải thích cho em phát

    Comment


    • #17
      Nguyên văn bởi boyzzun Xem bài viết
      báo cáo với bác là hiện tại em đã viết được 1 cơ số khối rồi nhưng vẫn còn chút thắc mắc như thế này
      1.Do em dùng bộ lọc FIR nên đầu vào nếu coi như 1 chuỗi tín hiệu thì khi đi vào bộ lọc.Ví dụ thế này bộ lọc của em có bậc=2, em cũng chọn sỗ mẫu của x(n) là 2 luôn,theo em thấy trên mạng ngừoi ta hay viết thế này
      x0<=x_in;
      x1<=x0;
      nếu như vậy thì phải chăng chỉ có 1 mẫu được đưa vào bộ lọc,sau đó đi qua bộ trể x0,rồi lại đi qua bộ trễ x1,nếu như vậy công thức y(n)=x(n-k).w(k) sẽ chỉ có 1 mẫu nhưng tại 2 thời điểm khác nhau là n và n-1
      để em ví dụ ntn cho dễ hình dung
      x(n)=(13,14) suy ra y(n)=14.w(0)+13.w(1) đây là lý thuyết,còn nếu như trên thì em hiểu là 14.w(0)+14.w(1) ???bác giải thích cho em phát
      x0 <= x_in;
      x1 <= x0;

      x0 và x1 là 2 thanh ghi, sau mỗ clock, data sẽ dịch vào từ từ, và x1 là giá trị trước đó, x0 là giá tri hiện thời ... thanh ghi no dịch data cùng 1 lúc, ban vào simulation sẽ thấy

      if(rising_edge(clk)) then
      x0 <= xin;
      x1 <= x0;
      end if

      Comment


      • #18
        Nguyên văn bởi jefflieu Xem bài viết
        x0 <= x_in;
        x1 <= x0;

        x0 và x1 là 2 thanh ghi, sau mỗ clock, data sẽ dịch vào từ từ, và x1 là giá trị trước đó, x0 là giá tri hiện thời ... thanh ghi no dịch data cùng 1 lúc, ban vào simulation sẽ thấy

        if(rising_edge(clk)) then
        x0 <= xin;
        x1 <= x0;
        end if
        bác ơi,tình hình là thế này,em đã mô phỏng đựoc cái "tap delay line"chính là mấy thanh ghi theo như bác hứong dẫn,em cũng đã mô phỏng được thuật toán thích nghi,chỉ có điều là các mẫu được em đưa vào cùng 1 lúc(thày vì chỉ dùng 1 đầu vào rồi cho qua trể thì giả sử sử dụng thành 2 đầu vào đông thời 1 lúc).Cái phần thuật toán thích nghi kia em viết theo kiểu 2 đầu vào cùng 1 lúc(như bộ cộng ý ) thì mới chạy còn nếu ra tuần tự thì không chạy,em khong biết phải sửa ntn ????
        PS:bác xem cho em cái code này,không hiểu sau khi cho tín hiệu vào (ví dụ chuỗi tín hiệu em dùng là bộ đếm ) trục tiếp thì không sai,nhưng khi đưa qua thanh ghi thì lỗi
        Attached Files
        Last edited by boyzzun; 02-03-2014, 01:40.

        Comment


        • #19
          Bạn viết code tùm lum quá, viết mấy cái comment vào cho dễ đọc.
          Viét gì mà x,y,k1,k2 ...
          Còn lúc nối port, nối theo kiểu thứ tự rất là khó đọc ...
          Bạn vào simulation dò từ từ coi sai ở đâu

          Bạn viết FIR trước, rồi viết cái phần giải thuật update delta cho mấy hệ số

          Comment


          • #20
            bác cho em hỏi cái làm sao để xoá toàn bộ xilinx đi đc không,em xoá đi cài system edition,xong rồi mô phỏng thì nó bão lỗi gì gì ý
            PS: không thấy phần cài đặt của xilinx trong control panel nên không thể uninstall được,em xoá mỗi cái folder

            Comment


            • #21
              bác cho em hỏi cái cấu trúc canonical,pipelined,inverse của bộ lọc FIR(em thấy bác đăng bên topic về FIR) thì tại sao pipeline lại cho tốc độ tính toán nhanh hơn,còn dạng inverse thì có lợi gì khi đảo lại các trọng số như vậy

              Comment


              • #22
                Bạn tham khảo khái niệm pipeline ở wiki này:
                Pipeline (computing) - Wikipedia, the free encyclopedia

                Comment


                • #23
                  Nguyên văn bởi jefflieu Xem bài viết
                  Bạn tham khảo khái niệm pipeline ở wiki này:
                  Pipeline (computing) - Wikipedia, the free encyclopedia
                  em hỏi thêm một tí,về cái pipeline multiplier thì sao ak,làm sao để có thể đặt các stage theo ý muốn

                  Comment


                  • #24
                    Nguyên văn bởi jefflieu Xem bài viết
                    Bạn tham khảo khái niệm pipeline ở wiki này:
                    Pipeline (computing) - Wikipedia, the free encyclopedia
                    em hỏi thêm một tí,về cái pipeline multiplier thì sao ak,làm sao để có thể đặt các stage theo ý muốn

                    Comment


                    • #25
                      Bạn cần đặt pipeline như thế nào?
                      Thật ra bạn không cần biết cách đặt pipeline trong multiplier. Bạn chỉ cần biết từ đầu vào tởi khi kết quả ở đầu ra đúng, bạn mất bao nhiêu clock cycle.
                      1) Bạn có thể dùng coregen để tạo multiplier, nó sẽ hỏi bạn muổn đặt các pipeline như thế nào.
                      2) Bạn có thê code HDL, tự động trình dịch sẽ "move" các pipeline cho thích hợp:
                      if( rising_edge(clk)) then
                      a <= b*c; --1 clock delay
                      a1 <= a; --2 clock delay
                      a2 <= a1; -- 3 clock delay
                      end if;

                      Comment


                      • #26
                        Nguyên văn bởi jefflieu Xem bài viết
                        Bạn cần đặt pipeline như thế nào?
                        Thật ra bạn không cần biết cách đặt pipeline trong multiplier. Bạn chỉ cần biết từ đầu vào tởi khi kết quả ở đầu ra đúng, bạn mất bao nhiêu clock cycle.
                        1) Bạn có thể dùng coregen để tạo multiplier, nó sẽ hỏi bạn muổn đặt các pipeline như thế nào.
                        2) Bạn có thê code HDL, tự động trình dịch sẽ "move" các pipeline cho thích hợp:
                        if( rising_edge(clk)) then
                        a <= b*c; --1 clock delay
                        a1 <= a; --2 clock delay
                        a2 <= a1; -- 3 clock delay
                        end if;
                        bác ơi em chuẩn bị làm mạch thật rồi,cũng tìm hiểu qua về spartan 3e và virtex 5( 2 board này trên phòng thí nghiệm nên không được mang về nhà),mà em đọc trên mạng mà không biết là đầu vào analog của mấy board này có hỗ trợ 2 tín hiệu vào cùng 1 lúc hay không,em định cho qua ADC có sẵn trên board mà không biết xem datasheet thì xem ở phầ nào(dạo này đàu óc mụ mị cả),
                        PS: ak mấy cái máy tạo sóng hình sin ha các dạng tín hiệu khác hình như là sử dụng tín hiệu số hả bác,hay cũng là analog
                        Last edited by boyzzun; 13-03-2014, 11:20.

                        Comment

                        Về tác giả

                        Collapse

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

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

                        Collapse

                        Đang tải...
                        X