Đó là loại bộ lọc nào? Có phải là IIR không?


9

Tôi đang cố gắng trả lời câu hỏi sau:

Là hệ thống được mô tả bởi phương trình:

y[n]= =0,5y[n-1]+x[n]-0,5x[n-1]

một IIR lọc? Câu trả lời của tôi là có.

Cảm ơn bạn


1
có một lớp các bộ lọc FIR được gọi là các bộ lọc "Truncated IIR" (TIIR). bạn có thể google nó và bạn sẽ tìm thấy những thứ từ Julius Smith và Avery Wang. một ví dụ khác về bộ lọc TIIR là bộ lọc Move Sum hoặc Move Average hoặc bộ lọc CIC (tất cả các tên khá khác nhau cho cùng một thứ). điều làm cho bộ lọc đệ quy này trở thành FIR là hủy bỏ cực. như đã thực hiện, có các cực bên trong và nếu chúng không ổn định, bộ lọc có thể nổ tung bên trong, nhưng bạn sẽ không thấy nó ở đầu ra cho đến khi vượt quá giới hạn số.
robert bristow-johnson

1
các giới hạn số là gì?
Đen Yasmin

phụ thuộc vào loại số (float hoặc fixed) và độ rộng từ. những thứ này có thể được tìm kiếm. . (nói, đối với IEEE-754 nổi cho cố định, nó phụ thuộc vào bao nhiêu bit, , còn lại của điểm nhị phân; khoảng ± 2 n tôi - 1 .nTôi±2nTôi-1
robert bristow-johnson

cảm ơn bạn một lần nữa cho tất cả sự giúp đỡ! nó giúp tôi rất nhiều Tôi rất vui vì đã tìm thấy trang web này
Black Yasmin

2
@AnthonyParks: Bạn nói : " tại sao mọi người lại phức tạp như vậy..đây rõ ràng là IIR vì thuật ngữ đầu tiên của bộ lọc có phần phản hồi. "? Tôi nói : " tại sao mọi người không bận tâm để hiểu các khái niệm cơ bản của DSP "? Bộ lọc IIR luôn bao hàm dạng đệ quy, nhưng FIR không cần thiết có nghĩa là bộ lọc không đệ quy. Đó là câu trả lời đúng duy nhất và bạn đang nhầm lẫn các khái niệm ở đây. Nếu đó là câu hỏi thi, bạn sẽ thất bại khi nói đó là IIR. Oppenheim giải thích chủ đề này trong cuốn sách về DSP.
jojek

Câu trả lời:


18

Đây là bộ lọc FIR , mặc dù nó trông giống như IIR. Nếu bạn tính toán các hệ số, bạn sẽ nhận được đáp ứng xung hữu hạn:

h= =[1]

Điều này xảy ra do hủy bỏ cực không:

Y(z)-0,5Y(z)z-1= =X(z)-0,5X(z)z-1

H(z)= =Y(z)X(z)= =1-0,5z-11-0,5z-1= =1

Vâng, nó có thể là khó khăn. Xem các hệ số trong LCCDE (Phương trình sai số hệ số không đổi tuyến tính) không nhất thiết có nghĩa là bộ lọc IIR. Nó có thể chỉ là một bộ lọc FIR đệ quy.y[n-k]


1
cảm ơn sự công nhận Tôi đã bị lừa khi nói IIR, mà không bao giờ nhìn kỹ vào các hệ số ... Tôi đã xóa câu trả lời của mình.
Fat32

Tuy nhiên, nếu bạn thực hiện các phương trình như đã nêu ban đầu, nó sẽ không hoạt động chính xác như H (z) = 1 vì các hiệu ứng độ dài từ hữu hạn (mặc dù trường hợp hủy cực không chính xác trong trường hợp này).
Oscar

Đó là sự thật @Oscar, nhưng đây là những vấn đề về số không liên quan gì đến bộ lọc là F / IIR.
jojek

1
@jojek: bạn tất nhiên là hoàn toàn chính xác. Tuy nhiên, việc sử dụng các bộ lọc FIR đệ quy gây ra khá nhiều vấn đề nếu bạn không biết về những điều này (điều mà nhiều nhà nghiên cứu "chất lượng cao" thậm chí là). Do đó, nhận xét của tôi. Tốt nhất nên có một cuộc thảo luận về thuật toán và chức năng chuyển giao.
Oscar

jojek tôi đang đọc câu trả lời của bạn từ câu hỏi này bạn trả lời nhưng tôi không thể bình luận. dsp.stackexchange.com/questions/17605/ Tôi có thể sử dụng cửa sổ khác nhau không?
Đen Yasmin

14

Câu trả lời của Jojek tất nhiên là đúng. Tôi chỉ muốn thêm một số thông tin vì tôi thường thấy các thuật ngữ "IIR" và "đệ quy" bị nhầm lẫn. Các hàm ý sau luôn luôn giữ:

IIRđệ quykhông đệ quyCÂY THÔNG

tức là mọi bộ lọc IIR (tức là bộ lọc thời gian rời rạc có đáp ứng xung dài vô hạn) phải được thực hiện đệ quy (trừ khi bạn có sẵn bộ nhớ vô hạn) và mọi hệ thống LTI không đệ quy đều có đáp ứng xung hữu hạn (một lần nữa, trừ khi bạn có vô hạn ký ức).

Tuy nhiên, điều ngược lại nói chung là không đúng sự thật. Một bộ lọc đệ quy có thể có đáp ứng xung hữu hạn, như trường hợp ví dụ trong câu hỏi. Một ví dụ nổi tiếng khác là một bộ lọc trung bình di chuyển. Đây là một triển khai không đệ quy của trung bình di động (nhất thiết phải là FIR):

y[n]= =1NΣk= =n-N+1nx[k]

y[n]= =y[n-1]+1N(x[n]-x[n-N])

1
Súc tích và chính xác như mọi khi, +1;) Cảm ơn bạn đã đưa ra trường hợp MA.
jojek

1
@jojek: yeah, tôi nghĩ đó là một tác phẩm kinh điển mà mọi người nên biết.
Matt L.

Và trong khi tôi chủ yếu nghĩ về tiếng ồn xung quanh trong bình luận cho câu trả lời của jojek, thì đối với MA, tràn sẽ là một vấn đề tiềm năng cần được xem xét cẩn thận. Dễ dàng giải quyết bằng hai số học bổ sung và đủ độ dài từ mặc dù.
Oscar

1
@Oscar: Chà, sau khi thực hiện phân tích rất đơn giản với độ chính xác của dấu phẩy động kép, tôi đã gặp lỗi là 8,881784197001252e-16 . Đây là sau khi xử lý tương đương với 1 năm âm thanh ở tần số lấy mẫu 44,1kHz. Dữ liệu đầu vào là nhiễu Gaussian với phân phối chuẩn hóa. Đây là mã để tái tạo kết quả ! Click! (có thể mất 3 ngày để chạy). Cung cấp điều này là chính xác, sau đó tôi tin rằng không có gì phải lo lắng.
jojek

1
@jojek: Ba điều. 1) Tôi đã đề cập đến bộ lọc trung bình di động của câu trả lời, không phải là bộ lọc trong câu hỏi ban đầu. 2) Có, điều đó ổn đối với âm thanh (nhưng không chính xác, vì vậy không có lý do gì để in "không" in đậm), nhưng tôi thích xử lý tín hiệu quan trọng an toàn của mình để hoạt động độc lập với tín hiệu đầu vào có thuộc tính tổng hợp. 3) Điều thú vị là bộ lọc mà bạn mô phỏng sẽ không gặp phải sự cố mà tôi đã mô tả (vì cực nằm trong vòng tròn đơn vị, không phải trên nó), nhưng sẽ luôn có các lỗi làm tròn độc lập với biểu diễn (có thể tránh được trong trường hợp trung bình di chuyển).
Oscar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.