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

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

    đây là đồ án tốt nghiệp của em,hiện giờ về lý thuyết về bộ lọc thì em cũng đã nắm được đôi chút,em trình bày ra đây còn gì thiếu thì các bác bổ xung cho em nhá
    1.Bộ lọc fir thích nghi gồm 2 phần : 1 là bộ lọc FIR 2 là 1 bộ thuật toán thích nghi
    2.Cấu trúc bộ lọc thì em chọn hoặc là kiểu trực tiếp hoắc transpose
    3.Thuật toán thích nghi dử dụng thuật toán LMS,về công thức thì em đã nắm đươc ,tuy nhiên trên mạng lại không có bài nào nói về việc viết thuật toán này =vhdl ???
    em muốn hỏi các bác 1 số cái như thế này
    1.Khi thiết kế bộ lọc FIR thì trong quyển dsp của proakis thì có 2 phần riêng biệt là cấu trúc bộ lọc FIR và thiết kế bộ lọc FIR,cái này em không hiểu lắm???
    2.Em muốn hỏi thêm là e(n)=d(n)-y(n) với d(n) là tín hiệu mong muốn,vậy tín hiệu này lấy từ đâu???
    3.Thày của em nó là có thể mô phỏng qua modelsim,vậy làm sao biết được là mình viết ra là đúng hay sai ???

  • #2
    Nguyên văn bởi boyzzun Xem bài viết
    đây là đồ án tốt nghiệp của em,hiện giờ về lý thuyết về bộ lọc thì em cũng đã nắm được đôi chút,em trình bày ra đây còn gì thiếu thì các bác bổ xung cho em nhá
    1.Bộ lọc fir thích nghi gồm 2 phần : 1 là bộ lọc FIR 2 là 1 bộ thuật toán thích nghi
    2.Cấu trúc bộ lọc thì em chọn hoặc là kiểu trực tiếp hoắc transpose
    3.Thuật toán thích nghi dử dụng thuật toán LMS,về công thức thì em đã nắm đươc ,tuy nhiên trên mạng lại không có bài nào nói về việc viết thuật toán này =vhdl ???
    em muốn hỏi các bác 1 số cái như thế này
    1.Khi thiết kế bộ lọc FIR thì trong quyển dsp của proakis thì có 2 phần riêng biệt là cấu trúc bộ lọc FIR và thiết kế bộ lọc FIR,cái này em không hiểu lắm???
    2.Em muốn hỏi thêm là e(n)=d(n)-y(n) với d(n) là tín hiệu mong muốn,vậy tín hiệu này lấy từ đâu???
    3.Thày của em nó là có thể mô phỏng qua modelsim,vậy làm sao biết được là mình viết ra là đúng hay sai ???
    Ví dụ bạn truyền một tín hiệu có 2 trạng thái, 0 và 1 (1 bit / symbol). Khi bạn truyền ra ngoài, bạn truyền 1 Volt cho logic 1 và -1 Volt cho logic 0.
    Ở tại đầu nhận, trong đièu kiên lý tưởng bạn sẽ nhân được 1 Volt và -1 Volt.
    Nếu không, bạn sẽ nhận được 1 chuỗi ví dụ: 0.5V, 0.8V, 1.1 V ... -0.3 Volt ... v.v.v
    Giờ bạn phải "decode" nó, giả sử bạn nếu dương bạn cho nó là 1 ==> tín hiệu lý tưởng là 1V.
    Nếu âm, tín hiệu bạn truyền đi là -1V ...
    Từ đó bạn tính ngược lai error ... V.V

    Bạn mô phỏng trong matlab (hoăc Scilab) trước đi đã.

    Comment


    • #3
      Bạn tạo 1 tín hiệu ngẫu nhiên, gồm 1 và -1 x(n)
      Tao một hàm h(n) mô phỏng là môi trường của bạn

      y(n) = x(n)*h(n) ... y(n) là tín hiệu nhận được đã bị "distorted" ...

      Nhiệm vụ của LMS algorithm là tìm ra hàm h'(n) sao cho h'(n)*h(n) = delta ... delta là hàm xung ... có giá trị = 1 tai 0 và = 0 tai tất cả các điểm khác

      h'(n) là transfer function của FIR của bạn

      như vậy:

      y(n)*h'(n) = x(n)*h(n)*h'(n) = x(n) ===> bạn khôi phục lại tín hiệu gốc không bị biến dạng.

      Comment


      • #4
        Nguyên văn bởi jefflieu Xem bài viết
        Bạn tạo 1 tín hiệu ngẫu nhiên, gồm 1 và -1 x(n)
        Tao một hàm h(n) mô phỏng là môi trường của bạn

        y(n) = x(n)*h(n) ... y(n) là tín hiệu nhận được đã bị "distorted" ...

        Nhiệm vụ của LMS algorithm là tìm ra hàm h'(n) sao cho h'(n)*h(n) = delta ... delta là hàm xung ... có giá trị = 1 tai 0 và = 0 tai tất cả các điểm khác

        h'(n) là transfer function của FIR của bạn

        như vậy:

        y(n)*h'(n) = x(n)*h(n)*h'(n) = x(n) ===> bạn khôi phục lại tín hiệu gốc không bị biến dạng.
        mình có cái này không hiểu:
        1.sao lại lấy y(n)*h'(n),nếu thế thì y(n) sẽ là đầu vào của bộ lọc fir????bạn có thể mô tả sơ đồ khối cho mình không??? đây là ựng dụng nào cho cho lọc thích nghi???cách giải thích của bạn hơi khác so với những gì mình đọc hiểu
        2.đầu ra của bộ lọc fir thường được biểu diễn qua công thức tổng của các tích mà trong đó các thành phần của 1 tích là 1sample có giá trị cuar tín hiệu đầu vào nhân với giá trị của coeff của FIR,vậy thì đầu ra của bộ lọc FIR sẽ là 1 số ????
        3.Việc update cho các coeff của lọc thích nghi thì thường sử dụng phép lặp,vậy lặp bao nhiêu lần thì mới được
        4.Khi mà thực hiện mô phỏng(chưa chạy trên kit) làm sao để đưa 1 chuỗi tín hiệu vào mạch lọc thích nghi

        Comment


        • #5
          Nguyên văn bởi boyzzun Xem bài viết
          mình có cái này không hiểu:
          1.sao lại lấy y(n)*h'(n),nếu thế thì y(n) sẽ là đầu vào của bộ lọc fir????bạn có thể mô tả sơ đồ khối cho mình không??? đây là ựng dụng nào cho cho lọc thích nghi???cách giải thích của bạn hơi khác so với những gì mình đọc hiểu
          2.đầu ra của bộ lọc fir thường được biểu diễn qua công thức tổng của các tích mà trong đó các thành phần của 1 tích là 1sample có giá trị cuar tín hiệu đầu vào nhân với giá trị của coeff của FIR,vậy thì đầu ra của bộ lọc FIR sẽ là 1 số ????
          3.Việc update cho các coeff của lọc thích nghi thì thường sử dụng phép lặp,vậy lặp bao nhiêu lần thì mới được
          4.Khi mà thực hiện mô phỏng(chưa chạy trên kit) làm sao để đưa 1 chuỗi tín hiệu vào mạch lọc thích nghi
          đầu ra của FIR là 1 số tại một thời điểm, là một chuỗi số theo thời gian

          Việc update cho các coef lặp lại liên tục. Càng ngày các coef sẽ hội tụ và dao động trong một khoảng nào đó.

          Bạn dùng Matlab tạo một tín hiệu hình sin rồi in ra file, vào ctrinh mô phỏng đọc lại.

          Comment


          • #6
            e = d - y, trong công thức này thì y[n] là tín hiệu ở đầu ra của FIR

            Comment


            • #7
              Nguyên văn bởi jefflieu Xem bài viết
              đầu ra của FIR là 1 số tại một thời điểm, là một chuỗi số theo thời gian

              Việc update cho các coef lặp lại liên tục. Càng ngày các coef sẽ hội tụ và dao động trong một khoảng nào đó.

              Bạn dùng Matlab tạo một tín hiệu hình sin rồi in ra file, vào ctrinh mô phỏng đọc lại.
              nếu in ra thì in như thế nào,trong trường hợp này thì phải dùng phần mềm để chuyển qua ak,cái này mình cũng không hay dùng nên không rõ lắm,nếu có thể bác chỉ cho em tài liệu để đọc.

              nễu chuối đã đựoc đưa sang thi đưa nó vào phần testbench như thế nào,bình thường khi test thì mình chỉ ấn định bằng 1 số nhị phân cụ thể,về 1 mảng thì mình chưa thử bao h,bác cũng chỉ cho em chỗ để em đọc với
              PS:có thể dùng khối NCO trong fpga được không nhỉ,em cũng có tài liệu về cái này nhưng mà không biết vấn đề về pha tín hiệu sẽ ntn vì em muôn cái tín hiệu d(n)=NCO+ nhiễu
              Last edited by boyzzun; 19-02-2014, 01:09.

              Comment


              • #8
                Nguyên văn bởi boyzzun Xem bài viết
                nếu in ra thì in như thế nào,trong trường hợp này thì phải dùng phần mềm để chuyển qua ak,cái này mình cũng không hay dùng nên không rõ lắm,nếu có thể bác chỉ cho em tài liệu để đọc.

                nễu chuối đã đựoc đưa sang thi đưa nó vào phần testbench như thế nào,bình thường khi test thì mình chỉ ấn định bằng 1 số nhị phân cụ thể,về 1 mảng thì mình chưa thử bao h,bác cũng chỉ cho em chỗ để em đọc với
                PS:có thể dùng khối NCO trong fpga được không nhỉ,em cũng có tài liệu về cái này nhưng mà không biết vấn đề về pha tín hiệu sẽ ntn vì em muôn cái tín hiệu d(n)=NCO+ nhiễu
                In ra dùng printf thì phải mình không nhớ, bạn vào matlab hoặc scilab kiếm. Có thể print dạng binary hoặc hex hoặc decimal ... Mảng cũng giống vậy thôi, cùng lắm thì phải lặp rồi in ra từng số
                Trong các ctrinh mô phỏng sẽ đọc được integer/hex/binary ...

                Bạn dùng matlab tính luôn cái tín hiệu bị nhiễu rồi xuất ra ...
                t=(0;0.001;1)
                x = sin(2pif*t)
                h = [1 0.5 0.3]
                z = conv(x,h)
                Đem z cho qua bộ lọc của bạn

                Comment


                • #9
                  bác ơi,em bị thế này,khi mà đã viết xong file testbench thì khi mà chạy trên giản đồ(cái giản đồ màu xanh ý) nó không load,kiểu như bị treo ý,mình phải tắt máy bằng tay rồi khởi động lại thì vẫn bị thế,cái này là do máy hay do code viết ra không phù hợp

                  Comment


                  • #10
                    Do code đó ...

                    Comment


                    • #11
                      Nguyên văn bởi jefflieu Xem bài viết
                      Do code đó ...
                      thật không bác,em tham khảo trong quân dsp in fpga mà,nó cũng cho ra kết quả,vậy sao của em lại teo nhỉ
                      PS:em viết trên xilinx,còn ông này viết trên quartus II thì có bị làm sao không nhỉ,bác có biết phần code của the parameterized multiplier megafuntion trong quartus II nội dung của nó như thế nào không,em làm trên xilinx thì dùng bộ nhân bình thường(dùng toán tử *-phần này em đã có bài test trc đó chạy rất ok mà)
                      Last edited by boyzzun; 21-02-2014, 12:00.

                      Comment


                      • #12
                        Nói đùa thôi, bạn đau có post cai gì mà biết nó bị treo cái gì.
                        Xilinx simulator lâu lâu bị điên, cách duy nhất là dò code lại coi có vòng lặp nào bị lỗi hoặc comment code từ từ coi dòng nào gây ra.

                        Comment


                        • #13
                          Nguyên văn bởi jefflieu Xem bài viết
                          Nói đùa thôi, bạn đau có post cai gì mà biết nó bị treo cái gì.
                          Xilinx simulator lâu lâu bị điên, cách duy nhất là dò code lại coi có vòng lặp nào bị lỗi hoặc comment code từ từ coi dòng nào gây ra.
                          èo,hôm nay thử test lại mấy bài trc đây tưng làm mà nó cũng chả chạy đựoc gì cả,xem chừng phải kiểm tra lại tưng khối thôi
                          mà bác cho em hỏi tí,nếu code viết trên quartus II thì hình như không hỗ trợ spartan 3e nhỉ,nếu thế nạp vào liệu có sai không ????
                          Last edited by boyzzun; 21-02-2014, 18:35.

                          Comment


                          • #14
                            Nguyên văn bởi jefflieu Xem bài viết
                            Nói đùa thôi, bạn đau có post cai gì mà biết nó bị treo cái gì.
                            Xilinx simulator lâu lâu bị điên, cách duy nhất là dò code lại coi có vòng lặp nào bị lỗi hoặc comment code từ từ coi dòng nào gây ra.
                            em có gửi file này lên,bác xem giúp xem em code có gì sai không,em nghi là ở phần testbench thôiadaptive.zip

                            Comment


                            • #15
                              Không thấy sai gì, bạn comment bớt, simulate u1/u2/u3 từ từ

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              • bqviet
                                Trả lời cho Đấu tắt điện cho máy tính bảng
                                bởi bqviet
                                Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
                                06-12-2025, 17:17
                              • nguyendinhvan
                                Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
                                bởi nguyendinhvan
                                Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
                                05-12-2025, 19:59
                              • afrendly
                                Trả lời cho Đấu tắt điện cho máy tính bảng
                                bởi afrendly
                                Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
                                04-12-2025, 01:27
                              • nick22
                                Trả lời cho Máy điện châm ?
                                bởi nick22
                                Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
                                01-12-2025, 13:23
                              Đang tải...
                              X