MATLAB ỨNG DỤNG TRONG VIỄN THÔNG - Trang 120

Tín hiệu và hệ thống

99

Hình 9.8.

Từ đồ thị này ta nhận thấy cả hai bộ lọc đều loại bỏ được thành phần tần số 40Hz trong tín
hiệu gốc. Tuy nhiên, trong khi tín hiệu ra của bộ lọc filtfilt cùng pha với tín hiệu gốc thì tín
hiệu ra của bộ lọc filter bị trễ đi khoảng 5 ký hiệu so với tín hiệu gốc. Chúng ta cũng thấy
rằng biên độ ngõ ra của bộ lọc filtfilt nhỏ hơn do kết quả của việc bình phương biên độ hàm
truyền H.
Lưu ý:

để kết quả lọc là tốt nhất, cần bảo đảm chiều dài của tín hiệu vào tối thiểu phải gấp

ba lần bậc của bộ lọc filtfilt, và tín hiệu vào có xu hướng giảm về 0 ở hai phía.

9.5.3. THÖÏC HIEÄN BOÄ LOÏC TRONG MIEÀN TAÀN SOÁ
Do tính đối ngẫu giữa hai miền thời gian và tần số, bất kỳ một thao tác nào thực hiện được
trong miền này đều cũng có thể thực hiện được trong miền còn lại.
Trong miền tần số, bộ lọc IIR được thực hiện bằng cách nhân biến đổi Fourier rời rạc (DFT)
của tín hiệu vào với thương số của các biến đổi Fourier của các hệ số bộ lọc. Ví dụ:

>> n = length(x);

>> y = ifft(fft(x).*fft(b,n)./fft(a,n));

Kết quả tính toán tương tự như hàm filter, tuy vẫn khác nhau ở đoạn quá độ lúc đầu (hiệu ứng
biên). Khi chiều dài của chuỗi vào càng tăng, phương pháp này càng kém hiệu quả do phải
thêm vào nhiều điểm zero cho các hệ số bộ lọc khi tiến hành tính FFT, đồng thời giải thuật
FFT cũng giảm hiệu quả khi số điểm n tăng lên.
Ngược lại, đối với các bộ lọc FIR, ta có thể tách một chuỗi dài thành nhiều chuỗi ngắn hơn,
sau đó dùng phương pháp chồng và cộng (overlap and add). Hàm fftfilt của MATLAB được
xây dựng dựa trên giải thuật này.

>> y = fftfilt(b,x)

>> y = fftfilt(b,x,n)

x là chuỗi vào, y là chuỗi ra, b là vector các hệ số của bộ lọc, n là số điểm FFT tối thiểu.
Hàm fftfilt(b,x) tương đương với hàm filter(b,1,x).

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.