Thông báo

Collapse
No announcement yet.

Làm cách nào để lấy mẫu lại (resampler)

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

  • Làm cách nào để lấy mẫu lại (resampler)

    Vấn đề:
    - Có 1 ADC được clock với tần số không đổi (100MHz chẳng hạn)
    - Data được stream vào FPGA, FPGA có thể chạy thoải mái với tần số 120MHz
    - Làm thế nào để lấy mẫu data với tần số 1.234 MHz
    ------------------------
    Mình học lõm được cái VHDL code làm như vậy nên thấy khá thú vị. Post lên cho mọi người comment.

  • #2
    Không biết làm thế này có được không ạ?

    Em chào anh jefflieu, theo em để lấy mẫu lại thì là do data đã được đưa vào FPGA mình có thể tạm lưu nó lại rồi đọc các samples theo kiểu ngắt quãng ví dụ như cứ 100 mẫu tín hiệu vào thì mình đọc ra 1 lần.

    Comment


    • #3
      Nguyên văn bởi cachep Xem bài viết
      Em chào anh jefflieu, theo em để lấy mẫu lại thì là do data đã được đưa vào FPGA mình có thể tạm lưu nó lại rồi đọc các samples theo kiểu ngắt quãng ví dụ như cứ 100 mẫu tín hiệu vào thì mình đọc ra 1 lần.
      Đúng ... đó là bước đầu của mạch gọi là down-sampling.
      Để hạ tần lấy mẫu xuống 1.234MHz, trước tiên cần hạ xuống tần số gần gần đó chẳng hạn như1.25MHz, sau đó dùng mạch interpolator hạ tiếp xuống 1.234MHz.
      Thực hiện bước 1 có thể dùng đọc theo kiểu ngắt quảng, cứ 80 mẫu lấy 1 mẫu --> hạ xuống 1.25MHz hoặc dùng CIC filter.
      Bước 2 dùng interpolator để hạ xuống típ.


      Bạn nào rành DSP có thể cho biết còn cách nào khác hay không?

      Comment


      • #4
        Hi jefflieu,

        Dùng để thay đổi tần số mẫu trong hệ thống DSP thì có một số vấn đề sau:
        1) Nếu bạn cần giảm tần số mẫu thì như bài viết ờ trên, chỉ cần đọc ngắt khoảng nhưng có 2 vấn đề lớn cân giải quyết đó là:
        a) Định lý lấy mẫu trong DSP fs>= 2fmax. Khi bạn lấy mẩu xuống kiếu này thì phải lọc đi các thành phần hài gây chồng lấn phổ trước khi đưa tín hiệu vào bộ giảm mẫu.
        b) Cách này chỉ áp dụng cho việc giảm mẫu nguyên. (hệ số giảm mẫu là 2, 3, 4,...)
        2) Nếu bạn cần tăng tần số mẫu thì bạn cũng làm như cách trên nhưng ngược lại một chút là chúng ta sẽ chèn thêm những mẫu có giá trị zero giữa 2 mẫu của tín hiệu thực. Khi bạn tăng mẩu thì phải lưu lý đến tần số ảnh sinh ra khi đưa tín hiệu qua bộ tăng mẫu. Do đó cần một bộ lọc để lọc các hài ảnh này. Cũng như ở (1), cách này chỉ áp dụng cho tăng tần số mẫu với hệ số nguyên (2, 3, 4, 5, ...)
        3) Thay đổi tần số mẫu với một thông số thập phân (a/b) thì bạn phải tăng a lần tần số mẫu trước khi giảm b lần tần số mẫu và cũng chú ý đến bộ lọc

        Trên thực tế trong hệ thống viễn thông thì tốc độ mẫu sẽ được giảm sau nhiều tầng. Bạn có thể xem thêm tài liệu hệ thống WIMAX của Altera.

        Bộ lọc nói trên là một bộ lọc thông thấp, có khả năng lọc đi 1/k tần số mẫu. Trong DSP người ta có thể dùng FIR để có độ chính xác cao hay dùng CIC (Cascaded Integrator-Comb Filter) để giảm chi phí. Bạn có thể tím hiểu thêm nhiều thông tin với từ khóa "multirate DSP". Bạn cũng có thể tím hiểu thêm FIR IP và CIC IP của Altera và Xilinx.

        Chúc vui
        .^_^.

        Comment


        • #5
          Nguyên văn bởi danbeo85 Xem bài viết
          Hi jefflieu,

          Dùng để thay đổi tần số mẫu trong hệ thống DSP thì có một số vấn đề sau:
          1) Nếu bạn cần giảm tần số mẫu thì như bài viết ờ trên, chỉ cần đọc ngắt khoảng nhưng có 2 vấn đề lớn cân giải quyết đó là:
          a) Định lý lấy mẫu trong DSP fs>= 2fmax. Khi bạn lấy mẩu xuống kiếu này thì phải lọc đi các thành phần hài gây chồng lấn phổ trước khi đưa tín hiệu vào bộ giảm mẫu.
          b) Cách này chỉ áp dụng cho việc giảm mẫu nguyên. (hệ số giảm mẫu là 2, 3, 4,...)
          2) Nếu bạn cần tăng tần số mẫu thì bạn cũng làm như cách trên nhưng ngược lại một chút là chúng ta sẽ chèn thêm những mẫu có giá trị zero giữa 2 mẫu của tín hiệu thực. Khi bạn tăng mẩu thì phải lưu lý đến tần số ảnh sinh ra khi đưa tín hiệu qua bộ tăng mẫu. Do đó cần một bộ lọc để lọc các hài ảnh này. Cũng như ở (1), cách này chỉ áp dụng cho tăng tần số mẫu với hệ số nguyên (2, 3, 4, 5, ...)
          3) Thay đổi tần số mẫu với một thông số thập phân (a/b) thì bạn phải tăng a lần tần số mẫu trước khi giảm b lần tần số mẫu và cũng chú ý đến bộ lọc

          Trên thực tế trong hệ thống viễn thông thì tốc độ mẫu sẽ được giảm sau nhiều tầng. Bạn có thể xem thêm tài liệu hệ thống WIMAX của Altera.

          Bộ lọc nói trên là một bộ lọc thông thấp, có khả năng lọc đi 1/k tần số mẫu. Trong DSP người ta có thể dùng FIR để có độ chính xác cao hay dùng CIC (Cascaded Integrator-Comb Filter) để giảm chi phí. Bạn có thể tím hiểu thêm nhiều thông tin với từ khóa "multirate DSP". Bạn cũng có thể tím hiểu thêm FIR IP và CIC IP của Altera và Xilinx.

          Chúc vui
          .^_^.
          Uh, đó giờ mình cũng hiểu vậy, nhưng vừa rồi gặp cái code VHDL dùng để resampling (down-sampling) có thể downsample xuống tần số bất kì bằng cách dùng nội suy (interpolation) ...
          Mình thấy cái code nó quái quái
          Post cho các bạn tham khảo. Theo mình hiểu thì cái code này chỉ là phép xấp xỉ.
          Attached Files

          Comment


          • #6
            Hi jefflieu,

            Theo như code của bạn đưa lên thì mình thấy nó giống giải điêu chế số hơn. Bạn kiểm tra lại specification của code đó nha.
            Còn Interpolation thường được dùng sau mạch tăng tốc độ mẫu. Đó là cái tên thôi. Ví dụ bộ lọc interpolation có thể được thực hiện bằng FIR hay CIC. Cái này bạn có thể xem thêm tại http://www.dspguru.com/dsp/faqs/multirate/interpolation hoặc bất cứ tài liệu nào của CIC, FIR và multirate DSP system.

            .^_^.

            Comment


            • #7
              Không phải giải điều chế:
              out[t] = a*in[t] + (1-a)*in[t-1]
              Trong đó a là phase của mạch NCO.
              Bởi vậy mới thấy nó ngộ.

              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...
              X