Tải bản đầy đủ (.docx) (46 trang)

Fir Filter Verilog Xinlinx ISE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (454.19 KB, 46 trang )

HO CHI MINH CITY UNIVERSITY OF TECHNOLOGY AND EDUCATION
HIGH QUALITY TRAINING

INTEGRATED CIRCUITS AND
SYSTEMS DESIGN
óóóóó
Digital Filter Design

STUDENTS:
1. Lương
2. Đỗ

Ngọc Phương Quỳnh 19161050

Hồng Quân 19161049

3. Trần

Quang Thiện 19161004

LECTURER: Đỗ Duy Tân
CLASS: Group 01CLC (T7_789)

Ho Chi Minh City, November 2021


MỤC LỤC


LỜI MỞ ĐẦU
Tín hiệu xuất hiện hầu như ở tất cả các ngành khoa học kỹ thuật như:


thông tin liên lạc, rada, vật lý, sinh học… Có hai dạng tín hiệu: một là tín
hiệu tương tự (liên tục theo thời gian), hai là tín hiệu số (tín hiệu rời rạc).
Ngày nay, với sự phát triển của cơng nghệ, máy tính và xu hướng số hóa
thì hầu hết các tín hiệu tương tự đều được chuyển đổi thành tín hiệu số để
truyền tải, lưu trữ và xử lý. Do đó, xử lý tín hiệu số (DSP) càng ngày
càng trở nên quan trọng, phổ biến và được ứng dụng rộng rãi trong nhiều
lĩnh vực và thiết bị. Để có thể tiếp cận lĩnh vực này, chúng ta cần có
những kiến thức cơ bản về tín hiệu số và các phương pháp xử lý.

Một trong những phép xử lý cơ bản nhất của DSP là lọc, và các hệ thống
được đề cập đến nhiều nhất trong xử lý tín hiệu số là các bộ lọc số (DF).
Nếu xét đáp ứng xung có thể chia các bộ lọc số thành hai loại chính là bộ
lọc có đáp ứng xung hữu hạn FIR và bộ lọc có đáp ứng xung vơ hạn IIR.
Cịn nếu xét về đáp ứng tần số biên độ có thể chia các bộ lọc FIR hay IIR
thành bốn loại cơ bản: bộ lọc thông thấp (LPF), bộ lọc thông cao (HPF),
bộ lọc thông dải (BPF) và bộ lọc chắn dải (BSF). Việc thiết kế bộ lọc FIR
hay IIR đều có nhiều phương pháp khác nhau, mỗi phương pháp có
những ưu và khuyết điểm riêng.


Chương 1: GIỚI THIỆU
1.1.

ĐẶT VẤN ĐỀ

Với xu hướng số hóa hệ thống thông tin như hiện nay, việc xử lý tín hiệu số
ngày càng trở nên quan trọng hơn với khả năng xử lý thơng tin ưu việt. Để có
thể tiếp cận với lĩnh vực này, chúng ta cần có những kiến thức cơ bản về tín
hiệu số và các phương pháp xử lý. Một trong những kiến thức quan trọng là
thiết kế bộ lọc kỹ thuật số - hệ thống có thể thay đổi tín hiệu để phù hợp với

mục đích của con người. Trong xử lý tín hiệu số tồn tại nhiều bộ lọc số khác
nhau như bộ lọc thông thấp, bộ lọc thông dải, bộ lọc vi phân,… Để thiết kế bộ
lọc thích hợp trước hết phải xác định được yêu cầu thực tế. dựa trên các chỉ tiêu
kỹ thuật đã cho, từ đó định hình cấu trúc bộ lọc và phương pháp thiết kế tối ưu.
Cấu trúc bộ lọc có thể là: Cấu trúc FIR (bộ lọc số có độ dài đáp ứng xung xác
định) hoặc cấu trúc IIR (bộ lọc số có độ dài đáp ứng xung khơng xác định).
Phương pháp thiết kế có thể là: phương pháp cửa sổ, phương pháp lấy mẫu tần
số, hoặc phương pháp xấp xỉ tối ưu,… Bài tiểu luận này sẽ đi chi tiết về thiết kế
bộ lọc số.
1.2 MỤC TIÊU
Q trình lọc tín hiệu được sử dụng để phân phối lại các thành phần tần số của
tín hiệu. Q trình này được thực hiện thơng qua các bộ lọc. Bộ lọc được sử
dụng cho hai mục đích:
- Phân tích tín hiệu được áp dụng khi tín hiệu mong muốn bị nhiễu với các tín
hiệu khác hay nói cách khác là bị ảnh hưởng bởi các loại nhiễu.
- Phục hồi tín hiệu: khi tín hiệu chúng ta muốn hoặc cần đánh giá bị sai lệch do
nhiều yếu tố của mơi trường làm cho nó bị bóp méo, ảnh hưởng đến kết quả
đánh giá.
1.3 ƯU ĐIỂM CỦA ĐỀ TÀI NGHIÊN CỨU
Việc bộ lọc số được sử dụng nhiều không chỉ vì càng ngày tín hiếu số càng
được sử dụng nhiều mà cịn vì những ưu điểm rất nổi bật của nó so với bộ lọc
tương tự. Cụ thể như sau:


Bộ lọc số thì có khả năng lập trình được, cịn bộ lọc tương tự muốn thay đổi
cấu trúc thì phải thiết kế và thi công lại bộ lọc.
Các bộ lọc số thiết kế dễ dàng, dễ kiểm tra.
Đặc điểm các mạch lọc tương tự là bị ảnh hưởng bởi sự trôi và phụ thuộc và
nhiệt độ. Các bộ lọc số thì khơng có các vấn đề này và rất ổn định với cả thời
gian lẫn nhiệt độ.

Các bộ lọc số có thể xử lý các tín hiệu tần số thấp rất chính xác. Tốc độ xử lý
của cơng nghệ DSP ngày càng tăng lên, làm cho các bộ lọc số có khả năng xử
lý các tín hiệu tần số cao trong miền RF. (Thời gian trước thì đây là lĩnh vực
“độc quyền” của công nghệ tương tự.
Các bộ lọc số linh hoạt trong xử lý tín hiệu, có thể thích nghi với tín hiệu nhiễu.
Các bộ xử lý DSP nhanh có thể xử lý các tổ hợp phức tạp, phần cứng tương đối
đơn giản và mật độ tích hợp cao.
Ngoài ra, để nâng cao chất lượng của các bộ lọc tương tự thì ta chú trọng khắc
phục hạn chế linh kiện như: độ chính xác, độ ổn định, sự phụ thuộc vào nhiệt
độ… Còn đối với bộ lọc số, ta chú trọng đến các phương pháp thiết kế và thuật
tốn xử lý tín hiệu.
1.4 NỘI DUNG NGHIÊN CỨU CỦA THIẾT KẾ BỘ LỌC SỐ


• Chương 2: Cơ sở lý thuyết
• Chương 3. Thiết kế
• Chương 4. Đánh giá qua testbench
• Chương 5. Đánh giá về FPGA. Bộ dụng cụ
• Chương 6. Kết luận và hướng phát triển.


CHƯƠNG 2: CƠ SỞ LÝ LUẬN
2.1 Giới thiệu về bộ lọc số
Lọc kỹ thuật số là một trong những công cụ mạnh nhất của DSP. Ngoài những
ưu điểm rõ ràng là hầu như loại bỏ các lỗi trong bộ lọc liên quan đến biến động
thành phần thụ động theo thời gian và nhiệt độ, độ lệch op amp (bộ lọc tích
cực), v.v., bộ lọc kỹ thuật số có khả năng thực hiện các thông số kỹ thuật mà tốt
nhất là cực kỳ khó khăn, nếu khơng phải là khơng thể, để đạt được với một
triển khai tương tự. Ngoài ra, các đặc tính của bộ lọc kỹ thuật số có thể dễ dàng
thay đổi dưới sự kiểm soát của phần mềm. Do đó, chúng được sử dụng rộng rãi

trong các ứng dụng lọc thích ứng trong truyền thơng như loại bỏ tiếng vọng
trong modem, loại bỏ tiếng ồn và nhận dạng giọng nói.
Quy trình thực tế để thiết kế bộ lọc kỹ thuật số có các yếu tố cơ bản giống như
quy trình đối với bộ lọc tương tự. Đầu tiên, các phản hồi bộ lọc mong muốn
được đặc trưng và sau đó các thơng số bộ lọc được tính tốn. Các đặc tính như
biên độ và đáp ứng pha được suy ra theo cùng một cách. Sự khác biệt chính
giữa bộ lọc tương tự và kỹ thuật số là thay vì tính tốn các giá trị điện trở, tụ
điện và cuộn cảm cho bộ lọc tương tự, các giá trị hệ số được tính cho bộ lọc kỹ
thuật số. Vì vậy, đối với bộ lọc kỹ thuật số, các con số thay thế các thành phần
điện trở vật lý và tụ điện của bộ lọc tương tự. Các số này nằm trong bộ nhớ
dưới dạng các hệ số lọc và được sử dụng với các giá trị dữ liệu được lấy mẫu từ
ADC để thực hiện các phép tính bộ lọc.
Bộ lọc kỹ thuật số thời gian thực, bởi vì nó là một hàm thời gian rời rạc, hoạt
động với dữ liệu số hóa trái ngược với dạng sóng liên tục và một điểm dữ liệu
mới sẽ được thu thập mỗi khoảng thời gian lấy mẫu. Do tính chất rời rạc này,
các mẫu dữ liệu được tham chiếu dưới dạng số như mẫu 1, mẫu 2, mẫu 3, v.v.
Hình 1 cho thấy tín hiệu tần số thấp chứa nhiễu tần số cao hơn phải được lọc ra.
Dạng sóng này phải được số hóa bằng bộ ADC để tạo ra các mẫu x (n). Các giá
trị dữ liệu này được đưa vào bộ lọc kỹ thuật số, trong trường hợp này là bộ lọc
thông thấp. Các mẫu dữ liệu đầu ra, y (n), được sử dụng để tái tạo lại dạng sóng
tương tự bằng cách sử dụng DAC có trục trặc thấp.


Tuy nhiên, bộ lọc kỹ thuật số không phải là câu trả lời cho tất cả các yêu cầu
lọc xử lý tín hiệu. Để duy trì hoạt động theo thời gian thực, bộ xử lý DSP phải
có khả năng thực hiện tất cả các bước trong quy trình bộ lọc trong một khoảng
thời gian đồng hồ lấy mẫu, 1 / fs. Một DSP điểm cố định có mục đích chung
nhanh chóng như ADSP-2189M ở 75MIPS có thể thực hiện lệnh nhân-tích lũy
vịi bộ lọc hồn chỉnh trong 13,3ns. ADSP-2189M u cầu hướng dẫn N + 5
cho bộ lọc N-tap. Đối với bộ lọc 100 chạm, tổng thời gian thực hiện là khoảng

1,4µs. Điều này tương ứng với tần số lấy mẫu tối đa có thể là 714kHz, do đó
giới hạn băng thơng tín hiệu trên xuống cịn vài trăm kHz.
Tuy nhiên, có thể thay thế chip DSP có mục đích chung và thiết kế các bộ lọc
kỹ thuật số phần cứng đặc biệt sẽ hoạt động ở tốc độ lấy mẫu tốc độ video.
Trong các trường hợp khác, các giới hạn về tốc độ có thể được khắc phục bằng
cách lưu trữ dữ liệu ADC tốc độ cao trước tiên trong bộ nhớ đệm. Sau đó, bộ
nhớ đệm được đọc với tốc độ tương thích với tốc độ của bộ lọc kỹ thuật số dựa
trên DSP. Theo cách này, hoạt động giả thời gian thực có thể được duy trì như
trong hệ thống radar, nơi xử lý tín hiệu thường được thực hiện trên các loạt dữ
liệu được thu thập sau mỗi xung được truyền.
Ngay cả trong các hệ thống dữ liệu được lấy mẫu nhiều lần, bộ lọc khử răng
cưa tương tự vẫn được yêu cầu trước ADC và bộ lọc tái tạo (chống hình ảnh)
sau DAC. Cuối cùng, khi tần số tín hiệu tăng đủ, chúng vượt qua khả năng của
các bộ ADC có sẵn và khi đó việc lọc kỹ thuật số trở nên không thể. Không thể
thực hiện lọc tương tự chủ động ở tần số cực cao vì hạn chế về độ méo và băng
thơng op amp, và các yêu cầu lọc sau đó phải được đáp ứng bằng cách sử dụng
các thành phần thụ động thuần túy. Trọng tâm chính của các cuộc thảo luận sau
đây sẽ là các bộ lọc có thể chạy trong thời gian thực dưới sự điều khiển của
chương trình DSP.


Hình 1
Có nhiều ứng dụng mà các bộ lọc kỹ thuật số phải hoạt động trong thời gian
thực. Điều này đặt ra các yêu cầu cụ thể đối với DSP tùy thuộc vào tần số lấy
mẫu và độ phức tạp của bộ lọc. Điểm mấu chốt là DSP phải hoàn thành tất cả
các tính tốn trong khoảng thời gian lấy mẫu để nó sẵn sàng xử lý mẫu dữ liệu
tiếp theo. Giả sử rằng băng thơng tín hiệu tương tự được xử lý là fa. Điều này
yêu cầu tần số lấy mẫu ADC fs ít nhất phải là 2fa. Khoảng thời gian lấy mẫu là
1 / fs. Tất cả các tính tốn bộ lọc DSP (bao gồm cả chi phí) phải được hoàn
thành trong khoảng thời gian này. Thời gian tính tốn phụ thuộc vào số lần

nhấn trong bộ lọc và tốc độ và hiệu quả của DSP. Mỗi lần nhấn trên bộ lọc yêu
cầu một phép nhân và một phép cộng (nhân-tích lũy). DSP thường được tối ưu
hóa để thực hiện tích lũy nhân nhanh chóng và nhiều DSP có các tính năng bổ
sung như đệm vịng trịn và vịng lặp khơng chi phí giảm thiểu các hướng dẫn
"chi phí" nếu khơng sẽ cần thiết.
* u cầu xử lý đối với lọc kỹ thuật số thời gian thực
• Băng thơng tín hiệu = fa
• Tần số lấy mẫu fs> 2fa


• Khoảng thời gian lấy mẫu = 1 / fs
• Lọc thời gian tính tốn + chi phí chung
Hình 2
2.2 Đặc điểm và nguyên lý làm việc
Có hai loại bộ lọc kỹ thuật số cơ bản: đáp ứng xung hữu hạn (FIR) và đáp ứng
xung vô hạn (IIR). Như thuật ngữ gợi ý, các phân loại này đề cập đến phản ứng
xung của bộ lọc. Bằng cách thay đổi trọng số của các hệ số và số lượng vịi bộ
lọc, hầu như mọi đặc tính đáp ứng tần số đều có thể được thực hiện với bộ lọc
FIR. Như đã được trình bày, bộ lọc FIR có thể đạt được mức hiệu suất mà các
kỹ thuật lọc tương tự không thể thực hiện được (chẳng hạn như đáp ứng pha
tuyến tính hồn hảo). Tuy nhiên, các bộ lọc FIR hiệu suất cao thường yêu cầu
một số lượng lớn các tích lũy nhân và do đó yêu cầu các DSP nhanh và hiệu
quả. Mặt khác, bộ lọc IIR có xu hướng bắt chước hiệu suất của bộ lọc tương tự
truyền thống và sử dụng phản hồi. Do đó phản ứng xung của chúng kéo dài
trong một khoảng thời gian vô hạn. Do phản hồi, bộ lọc IIR có thể được triển
khai với ít hệ số hơn bộ lọc FIR. Bộ lọc mạng chỉ đơn giản là một cách khác để
triển khai bộ lọc FIR hoặc IIR và thường được sử dụng trong các ứng dụng xử



lý giọng nói. Cuối cùng, các bộ lọc kỹ thuật số có lợi cho các ứng dụng lọc
thích ứng đơn giản vì tốc độ và sự dễ dàng mà các đặc tính của bộ lọc có thể
được thay đổi bằng cách thay đổi các hệ số bộ lọc.
2.3 Giới thiệu: Triển khai bộ lọc FIR trong phần cứng DSP sử dụng đệm
trịn
Trong chuỗi các phương trình lọc FIR, vị trí hệ số N luôn được truy cập tuần tự
từ h (0) đến h (N – 1). Các điểm dữ liệu liên quan lưu thông qua bộ nhớ; mẫu
mới được thêm vào thay thế mẫu cũ nhất mỗi khi tính tốn đầu ra bộ lọc. Một
RAM có biên cố định có thể được sử dụng để đạt được hiệu ứng đệm tuần hồn
này như thể hiện trong Hình 3 đối với bộ lọc FIR 4 vòi. Mẫu dữ liệu cũ nhất
được thay thế bằng mẫu mới nhất sau mỗi phép chập. "Lịch sử thời gian" của
bốn mẫu dữ liệu gần đây nhất ln được lưu trữ trong RAM.

Hình 3

Để tạo thuận lợi cho việc định địa chỉ bộ nhớ, các giá trị dữ liệu cũ được đọc từ
bộ nhớ bắt đầu bằng giá trị ở một vị trí sau giá trị vừa được ghi. Ví dụ: x (4)
được ghi vào vị trí bộ nhớ 0 và các giá trị dữ liệu sau đó được đọc từ các vị trí


1, 2, 3 và 0. Ví dụ này có thể được mở rộng để phù hợp với bất kỳ số lần nhấn
nào. Bằng cách định địa chỉ các vị trí bộ nhớ dữ liệu theo cách này, bộ tạo địa
chỉ chỉ cần cung cấp các địa chỉ tuần tự, bất kể hoạt động là đọc hay ghi bộ
nhớ. Bộ đệm bộ nhớ dữ liệu này được gọi là vòng tròn vì khi đến vị trí cuối
cùng, con trỏ bộ nhớ được đặt lại về đầu bộ đệm.
Các hệ số được tìm nạp đồng thời với dữ liệu. Do lược đồ địa chỉ đã chọn, mẫu
dữ liệu cũ nhất sẽ được tìm nạp trước. Do đó, hệ số cuối cùng phải được tìm
nạp trước. Các hệ số có thể được lưu trữ ngược lại trong bộ nhớ: h (N-1) là vị
trí đầu tiên và h (0) là vị trí cuối cùng, với trình tạo địa chỉ cung cấp các địa chỉ
tăng dần. Ngồi ra, các hệ số có thể được lưu trữ theo cách bình thường với

việc truy cập các hệ số bắt đầu ở cuối bộ đệm và trình tạo địa chỉ được giảm
dần. Trong ví dụ minh họa trong Hình 3, các hệ số được lưu trữ theo cách
ngược lại.
Lệnh đầu tiên (có nhãn là linh sam :) thiết lập tính tốn bằng cách xóa thanh
ghi MR và tải thanh ghi MX0 và MY0 với các giá trị dữ liệu và hệ số đầu tiên
từ dữ liệu và bộ nhớ chương trình. Sau đó, nhân-tích lũy với tìm nạp dữ liệu
kép trong vịng lặp chập, sau đó được thực hiện N – 1 lần trong N chu kỳ để
tính tổng của N – 1 sản phẩm đầu tiên. Lệnh nhân-tích lũy cuối cùng được thực
hiện với chế độ làm trịn được kích hoạt để làm trịn kết quả đến 24 bit trên của
thanh ghi MR. Sau đó, thanh ghi MR1 được bão hịa có điều kiện đến giá trị âm
hoặc dương nhất của nó dựa trên trạng thái của cờ tràn có trong thanh ghi MV.
Theo cách này, kết quả được tích lũy đến độ chính xác 40 bit đầy đủ của thanh
ghi MR, với độ bão hòa của đầu ra chỉ khi kết quả cuối cùng vượt quá 32 bit
quan trọng nhất của thanh ghi MR.
Giới hạn về số lượng vịi bộ lọc có thể đạt được để thực hiện theo thời gian
thực của chương trình con bộ lọc FIR được xác định chủ yếu bởi thời gian chu
kỳ của bộ xử lý, tốc độ lấy mẫu và số lượng các phép tính khác được u cầu.
Chương trình con FIR được trình bày ở đây yêu cầu tổng cộng N + 5 chu kỳ
cho bộ lọc có độ dài N. Đối với DSP ADSP-2189M 75MIPS, một chu kỳ lệnh


là 13,3ns, do đó, bộ lọc 100 chạm sẽ yêu cầu 13,3ns × 100 + 5 × 13,3ns =
1330ns + 66,5ns = 1396,5ns = 1,4µs.


CHƯƠNG 3: THIẾT KẾ
3.1 Các

bước thiết kế bộ lọc số:


Quá trình thiết kế bộ lọc số gồm 3 bước:
• Xác định các đặc tả của bộ lọc:
Tùy theo yêu cầu ứng dụng, ở bước này cần tiến hành xác định các đặc tả của
bộ lọc: ΩP, ΩS,vv…
• Xác định giá trị các hệ số của bộ lọc:
Sau khi đã có đặc tả của bộ lọc, sử dụng các phương pháp thiết kế khác nhau:
phương pháp dùng cửa sổ, phương pháp lấy mẫu tần số, phương pháp thiết kế
tối ưu,vv… để xác định các hệ số của bộ lọc h(n), 0 ≤ n ≤ N.
• Thực hiện mạch lọc:
Trên cơ sở đã có được các hệ số của bộ lọc, vấn đề thiết kế chỉ còn là việc lựa
chọn sơ đồ thực hiện (dạng trực tiếp, dạng chính tắc) → xây dựng giải thuật
tương ứng → viết chương trình → cài đặt.
Q trình này có thể được thực hiện bằng phần cứng hoặc phần mềm.
3.2 Thiết

kế bộ lọc số FIR:

Bộ lọc FIR được đặc trưng bởi đáp ứng xung có chiều dài hữu hạn, tức là h(n)
chỉ khác không trong một khoảng có chiều dài hữu hạn N ( Từ 0 đến N -1).
Bộ lọc số có đáp ứng xung có chiều dài hữu hạn được đặc trưng bởi hàm truyền
đạt sau đây:
N −1

H ( z ) = ∑ h( n) z − n
n =0

(1)

Tức là: L[h(n)] = [0, N-1] = N.
Với bộ lọc FIR, H(z) chỉ có các điểm cực tại gốc tọa độ của mặt phẳng z, vậy

các điểm cực này ln nằm trong vịng trịn đơn vị cho nên hệ thống luôn ổn


định. Một thuận lợi khác đối với bộ lọc FIR là do chiều dài của h(n) hữu hạn
nên nếu h(n) là khơng nhân quả:
h(n) ≠ 0 với n<0
Thì ta có thể đưa nó về nhân quả bằng cách chuyển về gốc tọa độ giá trị đầu
tiên khác không của h(n) mà vẫn đảm bảo

H ( e jω )

không thay đổi.

Cái lợi cơ bản nhất của bộ lọc FIR là khi tính tốn theo bộ lọc pha tuyến tính.
Tức là chúng ta có thể gia cơng bộ lọc FIR bằng cách coi đáp ứng tần số
H ( e jω )

của nó có pha tuyến tính. Cũng vậy, tín hiệu qua dải thơng của bộ lọc

sẽ xuất hiện chính xác ở đầu ra với độ trễ đã cho, bởi vì chúng ta đã biết chính
xác đáp ứng pha của nó.
Giả sử h(n) là đáp ứng xung của bộ lọc FIR xác định với các mẫu n = 0, 1, …
N-1. Tức là:
L[h(n)] = [0,N-1] =N
*Hàm truyền đạt của nó như sau:
N −1

H ( z ) = ∑ h( n) Z − n = h(0) + h(1) Z −1 + ... + h( N − 1) Z − ( N −1)
n =0


(2)

*Đáp ứng tần số:
N -1

H (e ) = ∑ h(n)e


n =0

- jω n

N -1

N -1

n =0

n =0

= ∑ h( n) cos ω n + j[-∑ h( n) sin ω n]

(3)

Hoặc là:


H (e jω ) = H (e ) eiϕ (ω )

(4)


ϕ (ω ) = arg[ H (e jω )] (5)

Với bộ lọc FIR ta ln đặt được điều kiện pha tuyến tính, điều này có nghĩa
đáp ứng pha - tần số là một hàm số bậc nhất theo tần số ω , tương đương với


thực hiện việc trễ hàm đáp ứng xung ở miền thời gian. Khi một hệ thống có pha
tuyến tính, trễ nhóm (group delay) là một hằng số, thì có ưu điểm là các thành
phần tần số khác nhau của tín hiệu tại đầu vào có cùng thời gian trễ như nhau
sau khi cho qua hệ thống tại đầu ra. Hàm đáp ứng pha - tần số của bộ lọc FIR
có dạng như sau:
θ (ω ) = β − αω ,với α, β là các hằng số.

(6)

Và hàm đáp ứng tần số của bộ lọc FIR được cho dưới dạng độ lớn và pha như
sau:
H (e jω ) = A(e jω )e jθ (ω ) , với A(e jω ) là hàm thực (7)

Khi áp đặt thêm điều kiện pha tuyến tính vào bộ lọc FIR, dãy đáp ứng xung của
bộ lọc chỉ có thể đối xứng hoặc phản đối xứng. Dựa trên tính chất đối xứng hay
phản đối xứng của dãy đáp ứng xung và chiều dài N của dãy đáp ứng xung,
người ta phân loại bộ lọc FIR làm 4 loại sau đây:
- Bộ lọc loại 1: h(n) đối xứng, N lẻ.
- Bộ lọc loại 2: h(n) đối xứng, N chẵn.
- Bộ lọc loại 3: h(n) phản đối xứng, N lẻ.
- Bộ lọc loại 4: h(n) phản đối xứng, N chẵn.
Hàm truyền:
H(z) = b0 + b1z-1 + b2z-2 + ··· + bnz-N (1)

Rõ ràng ta không thể dùng các phương pháp dựa trên các hàm truyền tương tự
để thiết kế bộ lọc có hàm truyền như hàm (1). Thay vì vậy, phương pháp thiết
kế các bộ lọc FIR được thực hiện mộtcách trực tiếp trong miền rời rạc, tức là
xác định trực tiếp các hệ số b0,b1, ..., bN, dựa trên các đặc tả thơng số thiết kế.
Có ba phương pháp cơ bản được sử dụng đại trà trong thực tế, đó là phương
pháp cửa sổ, phương pháp lấy mẫu trên miền tần số và phương pháp Parks–
McClellan. Phương pháp cửa sổ áp đặt các cửa sổ trong miền thời gian rời rạc
để xác định các hệ số bk. Phương pháp này về mặt cơ bản rất dễ hiểu. Hơn nữa,


nó có những áp dụng quan trọng liên quan đến phân tích phổ của một tín hiệu.
Vì thế, hiểu rõ phương pháp sử dụng cửa sổ giúp ta hiểu rõ hơn các phương
pháp phân tích phổ cổ điển. Phương pháp lấy mẫu trên miền tần số thực thi
việc lấy mẫu đáp ứng tần số của một bộlọc lý tưởng ta mong muốn. Phương
pháp Parks–McClellan có thể sử dụng cho những tình huống mà độ ràng buộc
chặt chẽ hơn phương pháp cửa sổ, như độ gợn sóng trong các dải tần khác
nhau. Phương pháp này, chủ yếu sử dụng phương pháp xấp xỉ Chebyshev để áp
đặt các gợn sóng này.
3.2.1 Thiết

kế phương pháp biến đổi Fourier:

Như đã biết, đáp ứng tần số của mạch lọc số tuần hoàn với chu kỳ bằng tốc độ
lấy mẫu fs, và bất kỳ một hàm tuần hồn nào cũng đều có thể khai triển được
thành chuỗi Fourier của hàm số mũ phức. Do vậy, trong trường hợp tổng quát,
đáp ứng tần số mong muốn của mạch lọc số FIR cũng có thể biểu diễn được
dưới dạng chuỗi Fourier:

H (e jω ) =




∑ h ( n )e

− jω n

(8)

n =−∞

Trong đó h(n) là đáp ứng xung của mạch lọc mong muốn, được xác định từ:

1
h( n) =


π

∫π H (e



)e jωn d ω



(9)

H ( z ) = b0 + b1 z + ... + b2 N z −2 N (10)


Nếu thay z= e vào biểu thức (2.8) sẽ thu được hàm truyền của mạch lọc số là:

H ( z) =



∑ h( n) z

n =−∞

−n

(11)

Nhưng hàm truyền này có đáp ứng xung vơ hạn. Vậy để hàm truyền có đáp ứng
xung hữu hạn phải tiến hành cắt bớt đáp ứng xung có độ dài vơ hạn và sau đó


nhân đáp ứng xung có chiều dài hữu hạn thu được với thừa số trễ z

( N −1)
2

để thu

được đáp ứng xung nhân quả:

H '( z ) = z

( N −1) n = ( N −1)/ 2

2



h( n) z

−n

=z

( N −1)
2

[h(0) +

n =− ( N −1)/ 2

( N −1)/ 2



h( n)( z n + z − n )]

n =1

(12)

Một cách tổng quát gồm những bước sau:

-Bước 1: Tính


1
h( n) =


π

∫π H (e



)e jωn d ω



−2 N
-Bước 2: Xác định H ( z ) = b0 + b1 z + ... + b2 N z

-Bước 3: Xác định hàm truyền đạt của bộ lọc.
Như vậy chúng ta đã thu được mạch lọc số nhờ nhân với thừa số trễ. Sự biến
điệu này không làm thay đổi đáp ứng biên độ của mạch lọc. Tuy nhiên sự cắt
xén đột ngột chuỗi Fourier gây ra các dao động trong dải thông và dải chặn.
Các dao động này là do sự hội tụ chậm của chuỗi Fourier ở các điểm gián đoạn.
Hiệu ứng này được gọi là hiện tượng Gibb. Các dao động Gibb này có thể giảm
bớt bằng cách nhân các hệ số của đáp ứng xung mong muốn với các hàm cửa
số thích hợp.
3.2.2 Thiết

kế phương pháp cửa sổ


Trong phần trước chúng ta đã thấy rằng sự cắt xén chuỗi Fourier trong mạch
lọc FIR làm xuất hiện các dao động Gibb không mong muốn ở trong dải thông
và dải chặn. Để hạn chế hiện tượng này, người ta sử dụng một lớp các hàm số
để biến điệu các hệ số của đáp ứng xung của mạch lọc (tức là các hàm cửa sổ).
Bởi vì sự cắt xén tương đương với việc nhân dãy đó với một hàm cửa sổ.
Cửa sổ được ký hiệu như sau:
≠ 0, 0 ≤ n ≤ N -1
w(n) = 
n≠
 0,

Cửa sổ loại này là cửa sổ nhân quả.

(13)


*Các bước chính của phương pháp cửa sổ:
- Cho chỉ tiêu kỹ thuật của bộ lọc số:

δ p , δ s , ω p , ωs

.

- Chọn dạng cửa sổ và chiều dài N của cửa sổ, trong miền n cửa sổ có tâm đối
N −1
xứng tại n = 2 , vậy trong miền tần số cửa sổ có pha tuyến tính

θ (ω ) =

−( N − 1)

ω
2
.

- Chọn loại bộ lọc số lý tưởng có đáp ứng xung là h(n), h(n) có tâm đối xứng
N −1
tại 2 trong miền n, vậy trong miền ω thì h(n) sẽ có pha tuyến tính

θ (ω ) =

−( N − 1)
ω
2
.

- Nhân cửa sổ w(n) N với h(n) lý tưởng để được hw (n) của bộ lọc thực tế.
hw (n) = ω (n).h(n)
L[ω (n) N ] = N
L[h(n)] = ∞
L[h(n)] = N

Sau khi có hw (n) chúng ta thử lại trong miền tần số xem có thỏa mãn 4 chỉ tiêu
kỹ thuật đã đặt ra hay không. Nếu không thỏa mãn chúng ta tăng N rồi lặp lại
các bước trên cho đến khi nào thỏa mãn các chỉ tiêu kỹ thuật thì dừng lại.
Có một số loại cửa sổ phổ biến:
a.

Cửa sổ chữ nhật
1, 0 ≤ n ≤ N − 1
w r (n) = rec N (n) = 

n ≠
0,

(14)

Việc nhân cửa sổ chữ nhật với đáp ứng xung của bộ lọc lý tưởng ở miền thời
gian tương đương với lấy tích chập liên tục tuần hoàn ở miền tần số giữa đáp


ứng tần số của bộ lọc lý tưởng với ảnh qua phép biến đổi Fourier của hàm cửa
sổ.
1
H (e ) = WR (e ) ∗ H d (e ) =







π

∫π W (e
R



'

).H (e j (ω −ω )d ω '




(15)

Lý thuyết và thực tế chứng tỏ một số đặc điểm chính của bộ lọc thực tế được
tổng hợp theo phương pháp cửa sổ chữ nhật như sau:
-

Giá trị xấp xỉ của độ rộng dải chuyển tiếp (tính từ đỉnh gợn sóng cuối
cùng của dải thông đến khi đáp ứng tần số giảm đến khơng) bằng độ

rộng của thùy chính và bằng N .

-

Tỷ số giữa đỉnh thùy bên đầu tiên và đỉnh thùy chính là 13dB.
Sau phép tính tích chập liên tục tuần hồn, đáp ứng biên độ được tích
luỹ với nhiều thùy liên tiếp và bướu bên đầu tiên ở dải chắn sẽ rơi vào

-

vị trí suy giảm 21dB so với đỉnh ở dải thông.
Cho dù chiều rộng của cửa sổ N tăng, độ rộng của mỗi một thùy bên
giảm đi nhưng diện tích tương đối của từng thùy đối với thùy chính
khơng hề thay đổi nên độ suy giảm dải chắn tối thiểu vẫn giữ nguyên
không thay đổi là 21dB. Độ suy giảm dải chắn tối thiểu là 21dB trong

-


nhiều trường hợp là không đủ với yêu cầu của thiết kế.
Cửa sổ chữ nhật có sự thay đổi đột ngột ở viền cửa sổ, tức là đơn giản
ta chỉ cắt ở cả hai đầu của đáp ứng xung bộ lọc lý tưởng hd(n), dẫn đến
hiện tượng Gibb. Nhìn trên đáp ứng tần số sẽ thấy các bó gợn dày lên
khi tiến ra cạnh của dải thông và dải chắn.

Nhằm tăng độ suy giảm dải chắn và hạn chế hiện tượng Gibb, một số dạng cửa
sổ sau đã được đưa ra và được áp dụng rất nhiều trong thiết kế các bộ lọc thực
tế.
b.

Cửa sổ tam giác


 2n
 N −1 ,

2n

w(n)= 2 −
,
N −1

0,



c.

0≤n≤


N −1
2

N −1
≤ n ≤ N −1
2
n≠

Cửa sổ Hamming
2π n

), 0 ≤ n ≤ N − 1
0, 54 − 0, 46 cos(
w( n) = 
N −1

0,
n con lai

d.

(17)

Cửa sổ Hanning
2π n

), 0 ≤ n ≤ N − 1
0, 5 − 0,5cos(
w(n) = 

N −1

0,
n ≠

e.

(16)

(18)

Cửa sổ Blackman

2π n
4π n

) + 0, 08cos(
), 0 ≤ n ≤ N − 1
0, 42 − 0, 5cos(
w( n) = 
N −1
N −1

0,
n ≠

(19)

Rõ ràng ln có sự đánh đổi giữa tính chất hẹp của dải chuyển tiếp và tính gợn
sóng ở dải thơng và dải chắn. Các loại cửa số làm giảm hiệu ứng gợn sóng ở

dải thơng và dải chắn ln có xu hướng làm cho bề rộng của dải chuyển tiếp
tăng lên.
3.2.3 Phương pháp thiết kế lấy mẫu tần số:
Xuất phát từ biến đổi Fourier rời rạc DFT người ta quy chiếu từ đáp ứng tần số
H (eiω ) sang miền rời rạc k H(k) qua biến đổi Fourier rời rạc.

Xuất phát từ đáp ứng xung h(n) chúng ta sẽ biến đổi Fourier rời rạc để được
H(k) tương ứng với các hệ số của biến đổi DFT. Chúng ta thu được H(k) =
H (eiω ) bằng việc lấy mẫu tần số tại các giá trị k cách đều nhau trên miền tần

số.


h(n ) =

1
N

N −1

∑ H (k )ω
k =0

− kn
N

(20)

Với n =0,1,…N-1.
Bộ lọc FIR pha tuyến tính, chiều dài 2N+1. Ta có:

h( n) =

N
1
2π k (n − N )
[H 0 + 2∑ H k cos(
)]
2N +1
2N +1
k =1

(21)

Với n = 0,1,…,2N
K=0,1,…,2N.

Tần số lấy mẫu của bộ lọc tại:

ωk =

2π k
2N +1 .

*Tóm lại phương pháp thiết kế này có thể thực hiện qua 3 bước:
- Bước 1: Cho chiều dài bộ lọc là 2N+1, xác định các tần số lấy mẫu trong

khoảng [0,π] theo biểu thức:

ωk =


2π k
2 N + 1 và H(k) tương ứng.

- Bước 2: Tính các hệ số của bộ lọc là
N
1
2π k (n − N )
h( n ) =
[H 0 + 2∑ H k cos(
)]
2N +1
2N + 1
k =1

Với n =0,1,…..N
Bước 3: Sử dụng tính đối xứng để xác định các hệ số còn lại theo biểu thức:
h(n)=h(2N-n) với n = N+1,…..2N.

Sơ đồ thiết kế FIR


Để thiết kế một bộ lọc FIR chúng ta lần lượt lựa chọn bên tab lựa chọn
như sau:
-

Lựa chọn một trong 4 loại bộ lọc: Bộ lọc thông thấp, thông cao, thông

-

dải, chắn dải.

Lựa chọn một trong hai phương pháp thiết kế là: Phương pháp cửa sổ,

-

phương pháp lấy mẫu tần số.
Nếu chọn phương pháp thiết kế là phương pháp cửa sổ thì lựa chọn loại
cửa sổ. Có 5 loại cửa sổ là: Cửa sổ chữ nhật, cửa sổ tam giác, cửa sổ

-

Hamming, cửa sổ Hanning, cửa sổ Blackman.
Tiếp theo lựa chọn tần số lấy mẫu, tần số cắt thấp, tần số cắt cao, chiều
dài bộ lọc. Với bộ lọc thơng thấp thì lựa chọn tần số cắt cao sẽ được ẩn

-

đi, nếu là bộ lọc thơng cao thì lựa chọn tần số cắt thấp sẽ được ẩn đi.
Cuối cùng là ấn ok để thiết kế. Kết quả sẽ cho ra đáp ứng biên độ và đáp
ứng pha theo dạng của bộ lọc lựa chọn thiết kế bên tab mô phỏng.
Module: FIR Bandpass Filter


*Khai báo:
module FIR_Bandpass_Filter
( clk,
clk_enable,
reset,
data_in,
data_out );


input clk;
input clk_enable;
input reset;
input signed [7:0] data_in;
output signed [7:0] data_out;
*Hệ số mạch lọc: 51 hệ số mỗi hệ số 14 bits
parameter signed [13:0] coeff1 = 14'b00000000001101;
parameter signed [13:0] coeff2 = 14'b11111111110101;
parameter signed [13:0] coeff3 = 14'b11111110100110;
………
parameter signed [13:0] coeff51 = 14'b00000000001101;
*Các tín hiệu:
reg signed [7:0] delay_pipeline [0:49] ;
*Mỗi product tương ứng với một hệ số đã khai báo ở trên từ 51 - 1
Kèm theo là 1 mul_temp nhưng vì có 2 mulpwr2_temp:
wire signed [8:0] mulpwr2_temp;
wire signed [8:0] mulpwr2_temp_1;


nên sẽ có từ mul_temp đến mul_temp_48.
wire signed [15:0] product51;
wire signed [21:0] mul_temp;
wire signed [15:0] product50;
wire signed [21:0] mul_temp_1;
…….
wire signed [15:0] product1;
wire signed [21:0] mul_temp_48;
*Bộ cộng tổng hợp tín hiệu
wire signed [19:0] sum1;
wire signed [19:0] add_signext;

wire signed [19:0] add_signext_1;
wire signed [20:0] add_temp;

wire signed [19:0] sum2;
wire signed [19:0] add_signext_2;
wire signed [19:0] add_signext_3;
wire signed [20:0] add_temp_1;
…..
wire signed [19:0] sum50;
wire signed [19:0] add_signext_98;
wire signed [19:0] add_signext_99;
wire signed [20:0] add_temp_49;
*Khai báo output
wire signed [7:0] output_typeconvert;


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×