ตัวชดเชยตัวกรอง FIR เมื่อใช้ตัวกรองการทำลายล้าง CIC


10

เมื่อทำการถอดรหัสสัญญาณย่านความถี่แคบด้วยตัวกรองสัญญาณแบบรวมซ้อน (CIC) ตัวกรอง FIR ใดที่เหมาะสมกว่าในการชดเชยการตอบสนองของ CIC แบบอิสระ?


คุณหมายถึงen.wikipedia.org/wiki/Cascaded_integrator-comb_filterหรือไม่
endolith

ใช่นั่นคือ ...
Augusto Zebadúa

คำตอบ:


3

ไม่มีคำตอบสำหรับคำถามของคุณ: เช่นเดียวกับปัญหาการออกแบบตัวกรองใด ๆ มันขึ้นอยู่กับความต้องการของคุณ ตามที่อธิบายไว้ค่อนข้างดีในหน้า Wikipediaตัวกรอง CIC (cascaded-integrator-comb) ประกอบด้วยจำนวนคู่ของตัวรวมและขั้นตอนการรวม (ชื่อจึงมี) แต่ละขั้นตอน integrator-comb มีการตอบสนองต่อแรงกระตุ้นแบบรวมซึ่งเทียบเท่ากับตัวกรองแบบ boxcar (เช่นขั้นตอนที่มีการตอบสนองความถี่รูปสี่เหลี่ยม) การตอบสนองความถี่ (ขนาด) ของ boxcar มีรูปร่างคล้ายกับฟังก์ชัน sinc ดังนั้นโครงสร้าง CIC โดยรวมจะมีการตอบสนองขนาดที่ดูเหมือนฟังก์ชั่น sinc ที่ใช้กับกำลังบางส่วนโดยที่คือจำนวนสเตเตอร์สำหรับหวีNNN

มีลูกบิดไม่มากสำหรับคุณในการปรับแต่งตามความต้องการเฉพาะแอปพลิเคชัน คุณสามารถปรับแต่งอัตราส่วนการทำลายล้าง / การแก้ไขของโครงสร้าง CIC ความล่าช้าในการหวีและจำนวนขั้นตอน แต่คุณยังคงติดอยู่กับการตอบสนองความถี่แบบซินซึ่งไม่เหมาะอย่างยิ่งเนื่องจากไม่แบน กลีบหลักและมีไซเดลเบอร์ค่อนข้างสูง ดังนั้นจึงเป็นเรื่องปกติที่ CIC จะตามด้วยตัวกรองอื่นที่ "ล้าง" การตอบสนองโดยรวม

การถู: สิ่งที่คุณต้องการจากตัวกรองชดเชยที่คุณใส่หลังจาก CIC จะถูกกำหนดโดยแอปพลิเคชันของคุณ สิ่งที่สำคัญจริงๆคือการตอบสนองของน้ำตกโดยรวมซึ่งคุณจะ จำกัด ตามความต้องการของแอปพลิเคชันของคุณ ไม่มีตัวกรองเฉพาะที่เหมาะสมที่สุด


ที่คุณเขียน "หนึ่งที่มีการตอบสนองความถี่เป็นรูปสี่เหลี่ยมผืนผ้า" คุณไม่ได้หมายถึง "หนึ่งที่มีการตอบสนองต่อแรงกระตุ้นเป็นรูปสี่เหลี่ยมผืนผ้า?
nibot

ใช่คุณพูดถูก. ขอบคุณสำหรับการชี้ให้เห็นข้อผิดพลาด
Jason R

4

มีคำถามที่คล้ายกันคือhttps://dsp.stackexchange.com/a/1551/306และต่อไปนี้เป็นส่วนย่อยของคำตอบจากโพสต์อื่น

โดยทั่วไปในการชดเชยตัวกรอง CIC การผกผันของการตอบสนองตัวกรอง CIC สามารถใช้ในการสร้างตัวกรองการชดเชย CIC มีการตอบสนอง2

H(ω)=|sin(ωD/2)sin(ωM/2)|N

โดยที่ D คือความแตกต่างที่ล่าช้า M คืออัตราการทำลายล้างและ N คือลำดับตัวกรอง (จำนวนตัวกรองแบบเรียงซ้อน) สามารถระบุผกผันเป็น

H(ω)=|sin(ωM/2)sin(ωD/2)|N

เมื่อเรามีการตอบสนองความถี่ของตัวกรองค่าตอบแทนเราสามารถเลือกความยาวของตัวกรอง FIR ที่เราต้องการ ความยาวของ FIR นั้นเฉพาะแอปพลิเคชัน เห็นได้ชัดว่ายิ่ง FIR กรองนานขึ้นค่าตอบแทนก็จะดีขึ้น

ต่อไปนี้เป็นแผนของการชดเชยล่วงหน้า

ต่อไปนี้เป็นรหัส Python เพื่อสร้างการตอบสนองความถี่และแปลง

numpy นำเข้าเป็น np จากบาปนำเข้า numpy, abs, pi นำเข้า pylab

D = 1; M = 7; N = 3

Hfunc = lambda w : abs( (sin((w*M)/2)) / (sin((w*D)/2.)) )**N
HfuncC = lambda w : abs( (sin((w*D)/2.)) / (sin((w*M)/2.)) )**N

w = np.arange(1024) * pi/1024

G = (M*D)**N
H = np.array(map(Hfunc, w))
Hc = np.array(map(HfuncC, w))
# only use the inverse (compensation) roughly to the first null.
Hc[int(1024*pi/M/2):] = 1e-8
plot(w, 20*log10(H/G))
plot(w, 20*log10(Hc*G))
grid('on')

ดูAltera, "การทำความเข้าใจฟิลเตอร์ชดเชย CIC"สำหรับวิธีการอื่น ๆ และประมาณ1sinc1

1 Altera "ทำความเข้าใจกับตัวกรองค่าตอบแทน CIC"

2ร. ลียง, "การทำความเข้าใจกับการประมวลผลสัญญาณดิจิทัล", 2 เอ็ด, Prentice Hall, Upper Saddle River, นิวเจอร์ซีย์, 2004


คุณแสดงการตอบสนองความถี่ที่ต้องการในตัวกรองการชดเชย ... แต่คุณจะได้รับค่าสัมประสิทธิ์ตัวกรองที่สร้างตัวกรองที่ใกล้เคียงกับการตอบสนองนี้อย่างไร ฉันคิดว่านั่นเป็นคำถามที่ถาม
nibot

0

ISOP (พหุนามลำดับที่สองที่สอดแทรก) มักใช้เพื่อชดเชยค่าเสี้ยวของ passband CIC

Matlab การตอบสนองของตัวกรองนี้สามารถแสดงได้โดยใช้:

alpha = 0.01 ;
b     = [1, alpha, -alpha] ; 
h     = mfilt.firsrc(1,1,b)
freqz( b )

การเลือกอัลฟาสำหรับความต้องการของคุณเป็นส่วนที่ยุ่งยาก กรณีเลวร้ายที่สุดในการจำลองกำลังของสัตว์เดรัจฉาน preform วนวน 0 ถึง 0.5 ในการเพิ่มขึ้น 0.001 ในการค้นหาอัลฟ่าซึ่งส่งผลให้การชดเชยที่ดีที่สุด การกำหนดค่าชดเชยการหลบหลีกที่ดีที่สุดเป็นข้อผิดพลาดน้อยที่สุดที่ขอบของ passband ของคุณ

เพื่อประสิทธิภาพตัวกรองนี้โดยปกติจะถูกวางไว้ที่อัตราข้อมูลที่ต่ำกว่าก่อน CIC สำหรับการแก้ไขและหลังจาก CIC สำหรับการทำลายล้าง


ดูที่dsp.stackexchange.com/questions/19584/…สำหรับการตีความ / คำอธิบายของวิธีการชดเชยนี้
Dan Boschen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.