BÁO CÁO TIỂU LUẬN MÔN: THIẾT KẾ LỌC SỐ VÀ MÃ HÓA BĂNG CON ĐỀ TÀI: TÌM HIỂU BỘ LỌC ĐIỂM CỐ ĐỊNH CÓ ĐÁP ỨNG XUNG HỮU HẠN FIR - Pdf 13

BÁO CÁO TIỂU LUẬN
MÔN: THIẾT KẾ LỌC SỐ VÀ MÃ HÓA BĂNG
CON
ĐỀ TÀI: TÌM HIỂU BỘ LỌC ĐIỂM CỐ ĐỊNH CÓ
ĐÁP ỨNG XUNG HỮU HẠN FIR
GVHD: TS.Ngô Văn Sỹ
HVTH: Nguyễn Xuân Tùng
Nguyễn Thanh Tùng
1
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Đà Nẵng, tháng 3/2013
LỜI MỞ ĐẦU
Xử lý tín hiệu số (Digital Signal Processing – DSP) là một lĩnh vực mới, đã phát
triển mạnh mẽ về mặt lý thuyết và công nghệ. Ngày nay, nó đã trở thành môn học
không thể thiếu cho nhiều ngành học về khoa học và kỹ thuật. Các thuật toán của nó
đã mang lại những thuận tiện cho công nghệ và ứng dụng mới, nhất là các lĩnh vực về
kỹ thuật điện tử và điều khiển tự độ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ố (Digital Filter).
Nếu xét về đáp ứng xung có thể chia các bộ lọc số thành 2 loại chính là bộ lọc có
đáp ứng xung hữu hạn FIR (Finite Impulse Response) còn gọi là lọc không đệ quy, và
bộ lọc có đáp ứng xung vô hạn IIR (Infinte Impulse Response) còn gọi là lọc đệ quy.
Xét về đáp ứng tần số biên độ có thể chia các bộ lọc, FIR hay IIR, thành 4 loại cơ
bản: thông thấp, thông cao, thông dải và chắn dải. Các bộ lọc này có thể được thiết kế
bằng những phương pháp sau đây: Phương pháp cửa sổ (Window Design Techniques),
Phương pháp lấy mẫu tần số (Frequency Sampling Design Techniques) và Phương
pháp xấp xỉ tối ưu cân bằng gợn sóng (Optimal Equiripple Design Techniques). Mỗi
phương pháp đều có những đặc điểm và ưu khuyết điểm riêng.
Với tiểu luận này, nhóm em gồm Nguyễn Thanh Tùng và Nguyễn Xuân Tùng xin
phép được trình bày bài toán “ Tìm hiểu bộ lọc điểm cố định” có đáp ứng xung hữu

tính.
- Trong trường hợp các bộ lọc IIR, một dải thông có pha tuyến tính là rất khó đạt.
Do đó, chúng ta chỉ xét các chỉ tiêu về biên độ.
Có 2 nhóm chỉ tiêu:
• Các chỉ tiêu tuyệt đối (Absolute Specifications) : Đưa ra một tập các yêu cầu
trên hàm đáp ứng biên độ |H(e
jw
)|. Những chỉ tiêu này được sử dụng chung
cho các bộ lọc FIR.
• Các chỉ tiêu tương đối (Relative Specifications - DB) : Đưa ra các yêu cầu
tính theo decibels (dB), được cho bởi :
Phương pháp này được là một phương pháp phổ biến nhất trong thực tế và được sử
dụng cho cả bộ lọc FIR và IIR.
Trong những
phần tiếp sau đây, để mô tả các chỉ tiêu của bộ lọc chúng ta sẽ xem xét việc thiết kế
một bộ lọc thông thấp như một ví dụ cơ sở để thiết cho bộ lọc FIR.
1.2. Các chỉ tiêu
Trên hình (1.1) là mô tả các chỉ tiêu của bộ lọc FIR thông thấp (Low Pass Filter):
1.2.1.Các chỉ tiêu tuyệt đối
3
0
)(
)(
log20
max
10
≥−=
ω
ω
j

: Suy hao trong dải chắn tính theo dB.
Quan hệ giữa các chỉ tiêu này như sau:

Tại sao tập trung vào bộ lọc thông thấp?
Các chỉ tiêu trên được đưa ra đối với bộ lọc FIR thông thấp, và tất nhiên đối với các
bộ lọc khác như thông cao HPF (High Pass Filter), thông dải BPF (Band Pass Filter)
đều có thể được định nghĩa tương tự. Tuy nhiên, các tham số thiết kế quan trọng nhất
là các dung sai dải tần và các tần số cạnh-dải. Bởi vậy, trong phần 1 về cơ sở lý thuyết
này chúng ta chỉ tập trung vào bộ lọc FIR thông thấp. Việc thiết kế cụ thể cho bộ lọc
FIR thông dải bằng kỹ thuật cửa sổ sẽ được phát triển trên cơ sở lọc thông thấp và sẽ
được mô tả chi tiết trong phần 2.
Các thuận lợi trong thiết kế và thi hành lọc số FIR
4
(1.2)
(1.3)
0
1
1
2
10
log20 >
+
−=
δ
δ
s
A
(>>1) for stopband
0
1

khảo sát trong thi hành pha tuyến tính.
1.3. Cấu trúc của bộ lọc FIR
Cho h(n), n=0,1,…,M-1 là đáp ứng xung có chiều dài M. Thì hàm truyền hệ thống

một bộ lọc đáp ứng xung hữu hạn với hàm hệ thống có dạng:


=
−−


=+++=
1M
0n
n
n
M1
1M
1
10
zbzbzbb)z(H 
(1.4)
Như vậy đáp ứng xung h(n) là:



−≤≤
=
else
Mnb

Do mẫu thức bằng đơn vị nên ta chỉ có một cấu trúc dạng trực tiếp duy nhất. Cấu
trúc dạng trực tiếp được cho trong hình (1.2) với M = 5:
5
b
0
z
-
1
b
1
z
-
1
b
2
z
-
1
b
3
z
-
1
b
4
y(n)
x(n)
Hình (1.2) Cấu trúc lọc FIR dạng trực tiếp
1.3.2. Cấu trúc dạng ghép tầng
Hàm hệ thống H(z) được biến đổi thành các tích của các khâu bậc 2 với các hệ số

1bzbzbb)z(H 
(1.8)


=
−−
++=
K
1k
2
2,k
1
1,k0
)zBzB1(b
trong đó






=
2
M
K
, B
k,1
và B
k,2
là các số thực đại diện cho các hệ số của các khâu bậc


++−+−++−+= )]2Mn(x)1n(x[b)]1Mn(x)n(x[b
10
Sơ đồ khối thực hiện phương trình sai phân trên được mô tả trong hình (1.4) dưới
đây đối với cả M lẻ và M chẵn:
Đối với M lẻ: M = 7, còn đối với M chẵn: M = 6 ( hình 1.4 )
Rõ ràng, với cùng một bậc của bộ lọc (cùng M) cấu trúc pha tuyến tính sẽ tiết kiệm
được 50% các bộ nhân so với cấu trúc dạng trực tiếp.
6
B
1,1
z
-
1
z
-
1
z
-
1
y(n)
x(n)
B
2,1
B
3,1
b
0
B
1,2

1M
0n
n
z)n(hzz)n(h)z(H
(1.12)
có (M-1) điểm cực ở gốc (trivial poles) và M-1 điểm không nằm ở vị trí bất kỳ trên
mặt phẳng z. Đáp ứng tần số là:
π≤ω<π−=


=
ω−ω
,e)n(h)e(H
1M
0n
njj
(1.13)
1.4.1. Đáp ứng xung h(n)
Chúng ta có thể đưa ra ràng buộc pha tuyến tính:
π≤ω<π−αω−=∠
ω
,)e(H
j
(1.14)
trong đó: α là một hằng số trễ pha. Ta đã biết rằng h(n) phải đối xứng, nghĩa là:
2
1M
,1Mn0),n1M(h)n(h

=α−≤≤−−=

(1.16)
Đáp ứng pha là đường thẳng nhưng không đi qua gốc. Trong trường hợp này α
không phải là hằng số trễ pha, nhưng:
α−=
ω

ω
d
)e(Hd
j
(1.17)
là hằng số, chính là trễ nhóm (α là một hằng số trễ nhóm). Trong trường hợp này, các
tần số được làm trễ với một tốc độ không đổi.
Đối với kiểu pha tuyến tính này, có thể thấy rằng:
1Mn0),n1M(h)n(h −≤≤−−−=

2
,
2
1M π
±=β


(1.18)
Điều này có nghĩa rằng đáp ứng xung h(n) là phản đối xứng (antisymmetric). Chỉ số
đối xứng vẫn là
2
1M −

. Một lần nữa chúng ta lại có 2 kiểu, cho M lẻ và M chẵn.

không phải là một số nguyên.
Đáp ứng xung được mô tả trong hình 1.8.
1.4.2. Đáp ứng tần số H(e
j
ω
)
Như vậy, khi tổ hợp hai loại đối xứng và phản đối xứng với M chẵn và M lẻ, ta có
bốn kiểu lọc FIR pha tuyến tính. Đáp ứng tần số của mỗi kiểu có biểu thức và hình
dạng riêng. Để nghiên cứu các đáp ứng pha của các kiểu này, ta viết biểu thức của
H(e
j
ω
) như sau:
2
1M
,
2
;e)e(H)e(H
)(jj
r
j


π
±=β=
αω−βωω
(1.19)
trong đó H
r
(e

=
ω






ω=

(1.20)
trong đó:
( )







=
2
1M
h0a
với mẫu ở chính giữa
(1.21)
( )




2
1M −


không phải là một biến nguyên, thì ta có thể chứng tỏ rằng:
( )
( )
2/1Mj
2/M
1n
j
e
2
1
ncosnb)e(H
−ω−
=
ω

























−ω=ω
2/M
1n
r
2
1
ncosnb)(H
(1.24)
Lưu ý: Tại
π=ω
, ta có
( )
0
2
1
ncosnb)(H
2/M
1n

là một biến nguyên,
( ) ( )
n1Mhnh −−−=
,
1Mn0
−≤≤
, và
0
2
1M
h =







thì ta có thể chứng tỏ:
( )
( )






ω










= n
2
1M
h2nc
với
2
M
, ,2,1n =
(1.26)
So sánh (1.24) và (1.18), ta có:
( ) ( )
( )


=
ω=ω
2/1M
0n
r
nsinncH
(1.27)
Lưu ý: Tại
0=ω

( ) ( )
n1Mhnh −−−=
,
1Mn0
−≤≤
, nhưng
2
1M −

không phải là một biến nguyên, thì ta có thể chứng tỏ rằng:
10
( )






ω








π
=
ω

nsinnd)e(H
(1.28)
trong đó:
( )






−= n
2
M
h2nd
với
2
M
, ,2,1n =
(1.29)
So sánh (1.27) và (1.18), ta có:
( )

=








Type LPF HPF BPF SBF Hilbert Differentiator
FIR Type 1
   
FIR Type 2
 
FIR Type 3
  
FIR Type 4
   
BÀI 1: BẮT ĐẦU TÌM HIỂU VỀ BỘ LỌC ĐIỂM CỐ ĐỊNH
Khi việc thiết kế bộ lọc bắt đầu sử dụng các bộ lọc kỹ thuật số, nó được sử dụng trong
các ứng dụng, đôi khi nó có hạn chế về công suất và hạn chế thiết kế điều khiển kích
thước bộ lọc, do đó họ có đề xuất chuyển từ bộ lọc điểm di động (dấu chấm động)
sang bộ lọc điểm cố định vì khi thực hiện nó có độ chính xác cao hơn. Demo này giới
thiệu làm thế nào để phân tích ảnh hưởng của quá trình lượng tử hóa của một chuyển
đổi bằng cách sử dụng các đối tượng thời gian rời rạc bộ lọc (DFILT).
Nội dung
+ Độ chính xác trong thiết kế các hệ số của bộ lọc hai điểm di động
Đối với bản demo này, chúng tôi sẽ thiết kế một bộ lọc lowpass FIR bằng cách sử
dụng phương pháp cửa sổ.
11
b = fir1(101, .45, 'low', kaiser(102, 7.8573));
% bộ lọc fir loại 1, dùng cửa sổ kasier
+ Cách biến đổi trong bộ lọc điểm cố định
Trong thiết kế bộ lọc người ta thêm vào các phương án cho sự lựa chọn điểm cố định,
các thuộc tính số học của biến đổi rời rạc trong miền thời gian( DFILT). Nó quy định
cách chuyển tiếp bằng cách thức phân tích bộ lọc hai điểm di động từ đó đưa ra các
phép tính trong bộ lọc điểm cố định
h = dfilt.dffir(b) % khai báo các thuộc tính của bộ lọc


Signed: 1
RoundMode: 'convergent'(% miền hội tụ )
OverflowMode: 'wrap' (% đóng gói)
InputWordLength: 16
InputFracLength: 15
NumFracLength: 16
FilterInternals: 'FullPrecision'
OutputWordLength: 34
12
OutputFracLength: 31
ProductWordLength: 31
ProductFracLength: 31
AccumWordLength: 34
AccumFracLength: 31 % chiều dài mỗi đoạn
Màn hình hiển thị của đối tượng tăng cường khả năng đọc danh sách các thuộc tính
bằng cách nhóm chúng lại với nhau một cách hợp lý. Chú ý rằng chỉ có các thuộc tính
có thể ghi mới được hiển thị. Ngoài ra một số thuộc tính khác như điều khiển
CoeffAutoScale màn hình hiển thị của những bộ đếm khác (ví dụ như
NumFracLength). Phần tiếp theo sẽ thảo luận về ghép nối giữa thuộc tính và cho thấy
làm thế nào để thực hiện một thuộc tính chỉ đọc có thể ghi
h % hiển thị

h =

FilterStructure: 'Direct-Form FIR'
Arithmetic: 'fixed'
Numerator: [1x102 double]
PersistentMemory: false

CoeffWordLength: 16

Accumulator : s34,31 -> [-4 4) (auto determined)
Round Mode : No rounding % không làm tròn
Overflow Mode : No overflow % không tràn
+ Lượng tử hóa các hệ số với việc chia tỷ lệ tự động
Để xác định số bit được sử dụng để đại diện cho các hệ số, chúng tôi chỉ đơn giản là
nhìn vào thuộc tính CoeffWordlength.
h.CoeffWordLength % hệ số của chiều dài từ
ans =
16
Để xác định các hệ số được quy mô như thế nào, chúng ta có thể nhìn vào các thuộc
tính NumFracLength.
h.NumFracLength % số đoạn dài
ans =
16
Điều này cho chúng ta biết 16 bit được sử dụng để đại diện cho các hệ số, và bit có
giá trị nhỏ nhất (LSB) có giá trị 2 ^ (-16).
16 bit chỉ là số bit mặc định được sử dụng cho hệ số độ dài từ, nhưng để hiểu rộng,
chúng ta có thể nhìn vào trạng thái thang đo hệ số tự động (CoeffAutoScale).
h.CoeffAutoScale % Returns a logical true (Trả về giá trị
đúng hợp lý)
ans =
1
Khi thuộc tính thang đo hệ số tự động(CoeffAutoScale) là đúng, giá trị nhỏ nhất của
các hệ số được điều chỉnh tự động để tránh tràn mỗi lần thay đổi hệ số chiều dài
từ(Wordlength). Hãy để xác minh điều này bằng cách thay đổi số lượng các bit được
sử dụng để lượng tử hóa các hệ số.
h.CoeffWordLength = 24;
h.NumFracLength
ans =
24

bão hòa các hệ số lượng tử và giới thiệu một distorsion xấu nhất cho đặc trưng chiều
dài
h1.NumFracLength = 25;
Hãy hình dung ảnh hưởng của hệ số bão hòa vào dặc trưng độ lớn của các bộ lọc.
href = reffilter(h); % Reference double-precision
floating-point filter.
hfvt = fvtool(href,h,h1);
set(hfvt,'ShowReference','off'); % Reference already
displayed once( các mẫu sau khi hiển thị )
legend(hfvt, 'Reference iải tfilter', '24 bits - no
saturation', '24 bits - saturation')
set(hfvt, 'Color', [1 1 1])
15
+ Nêu rõ các quy tắc số học
Theo mặc định, các danh mục và bổ sung được thực hiện đầy đủ chính xác để cho
phép chúng ta xác định các công suất tối thiểu cần thiết để tránh bất kỳ tổn thất nào.
h.CoeffWordLength = 16;
ans =
31 31
[h.AccumWordLength h.AccumFracLength] %h. Chiều dài từ
tích lũy h.chiều dài các phân đoạn tích lũy
ans =
34 31
Với một định dạng đầu vào của [16 15] và hệ số định dạng [16 16], điều này cho
chúng ta biết rằng chúng ta cần một kết quả bộ đếm bằng hai lần kích thước của các
hệ số (hoặc hai lần kích thước của đầu vào) và bộ đếm với 7 bit bảo vệ để cho phép
cho sự tăng cường bit trong quá trình tích lũy. Điều này cũng cho chúng ta biết vị trí
của điểm nhị phân trong những bộ đếm.
Có thể giới thiệu những hạn chế về kết quả hoặc đăng ký accumulator hoặc cả hai.
Duy trì các chế độ MSB thiết lập độ dài phần tự động để tránh tràn trong khi duy trì

set(Hd, 'CoeffwordLength', 12); % hệ số chiều dài từ
hfvt = fvtool(Hd, 'Color', 'white');
legend(hfvt,' ', 'Location', 'Best'); %xác định vị trí
tốt nhất
Không giống như các bộ lọc IIR, bộ lọc FIR là bộ lọc thực hiện chính xác khi biến đổi
điểm cố định. Điều này làm cho quá trình chuyển đổi một dấu chấm động thành một
điểm cố định thực hiện dễ dàng hơn cho Firs hơn so với IIRs.
Chú ý phạm vi đầu vào có tầm quan trọng cho việc phân tích tĩnh để thực hiện chính
xác đầy đủ based. Vì vậy, nếu chúng ta không muốn để nhân rộng phạm vi hoạt động,
chúng ta phải xác định rằng dữ liệu chúng tôi gửi cho bộ lọc là trong phạm vi đầu vào
được xác định bởi InputWordLength và thuộc tính InputFracLength. Giả sử đầu vào
nằm trong khoảng [-2,2]. Này dịch trong một InputFracLength 14 khi
InputWordLength được thiết lập đến 16 bit (mặc định).
Hd.InputFracLength = 14;
rand('state',5);
q =
quantizer([Hd.InputWordLength,Hd.InputFracLength],'RoundMode','round');
xq = randquant(q,1000,1);
x = fi(xq,true,Hd.InputWordLength,Hd.InputFracLength);
yfullprec = filter(Hd,x);
Chúng tôi có thể xác minh rằng đầu ra này chính xác đầy đủ là thực sự tốt nhất chúng
ta có thể hy vọng đạt được. Bằng cách so sánh nó với tham chiếu được tính toán bằng
cách sử dụng các hệ số lượng tử và độ chính xác cao, số học dấu chấm động.
hdouble = double(Hd);
yref = filter(hdouble,x);
norm(double(yfullprec)-yref) % tổng số lỗi
17
ans =
0
Lỗi này là chính xác không, thấy rằng lượng tử hóa không được giới thiệu trong

x = 1.9*sign(fliplr(impz(Hd)));
Hd = autoscale(Hd,x); % thang đo tự động
Chúng tôi có thể kiểm tra rằng các bộ lọc được thu nhỏ lại bằng cách chạy các bộ lọc
trong điểm cố định:
fipref('LoggingMode', 'on', 'DataTypeOverride',
'ForceOff');
%dạng ghi chép
y = filter(Hd,x);
fipref('LoggingMode', 'off');
R = qreport(Hd)
18

R = Fixed-
Point Report
Min Max |
Range | Number of Overflows
Input: -1.9003906 1.9003906 |
-2 1.9990234 | 0/48 (0%)
Output: -3.2658691 3.3671875 |
-4 3.9998779 | 0/48 (0%)
Product: -0.23522902 0.23522902 |

h

h =

FilterStructure: 'Direct-Form FIR'
Arithmetic: 'fixed'
Numerator: [1x81 double]
PersistentMemory: false

CoeffWordLength: 16
CoeffAutoScale: true
Signed: true

InputWordLength: 16
InputFracLength: 15

FilterInternals: 'FullPrecision'

+ So sánh hệ số lượng tử hóa và hệ số không lượng tử hóa
Có một số thông số điểm cố định cho một bộ lọc FIR dạng trực tiếp. Để bắt đầu, tốt
nhất là để tập trung vào hệ số wordlength và fractionlength (rộng). Đầu tiên chúng ta
sử dụng công cụ trực quan của bộ lọc để so sánh các hệ số lượng tử với hệ số không
lượng tử .
hfvt = fvtool(h, 'legend', 'on', 'Color', 'white');
+ Các tính chất quy định sự tồn tại của các bit được sử dụng
Xác định số bit được sử dụng trong bộ lọc điểm cố định , ta dễ nhận thấy được
CoeffWordlength
get(h,'CoeffWordLength')
20
ans =

+ Bộ lọc điểm cố định
Mục đích chính của chúng tôi là để đánh giá độ chính xác của bộ lọc điểm cố định khi
so sánh với kiểu bộ lọc hai điểm di động. Chúng ta sẽ thấy rằng nó không chỉ biểu
diễn chính xác các hệ số mà nó còn giữ đáp ứng cường độ xấp xỉ như nhau.
+ Tạo ra các dữ liệu huấn luyện đầu vào
Khi ta muốn đánh giá độ chính xác, chúng tôi sẽ sử dụng một số dữ liệu ngẫu nhiên
để lọc và so sánh chúng với nhau . Chúng tôi sẽ tạo ra một lượng tử hóa, với một loạt
các khoảng [-1,1) để tạo ra ngẫu nhiên phân bố đồng đều dữ liệu nhiễu trắng bằng
cách sử dụng 16 bit của wordlength.
rand('state',0); % Make results reproducible by
initializing the random generator % kết quả sử dụng lại
bằng cách khởi tạo các thành phần phát ngẫu nhiên
q = quantizer([16,15],'RoundMode','round');
xq = randquant(q,1000,1); % 1000 Data points in the range
[-1,1)
% 1000 Điểm dữ liệu trong phạm vi[-1,1)
xin = fi(xq,true,16,15);
+ Tạo ra một đầu ra cơ sở để so sánh
Khi đánh giá tính chính xác của lọc điểm cố định, có ba điều để xem xét:
1. Đầu ra "lý tưởng", điều này mục đích để tính toán. Nó được tính bằng cách sử
dụng các tham chiếu hệ số và số học một cách chính xác trong hai điểm di động
2. Việc có thể hy vọng đạt được đó là nó được tính bằng cách sử dụng các hệ số lượng
và chính xác gấp đôi số học dấu chấm động.
3. Những gì chúng tôi thực sự có thể tính toán, đầu ra được tính bằng cách sử dụng
các hệ số lượng và số học điểm cố định.
Rõ ràng chúng ta muốn so sánh những gì chúng tôi thực sự có thể tính toán tốt nhất
chúng ta có thể hy vọng. Đầu ra này cuối cùng có thể được tính bằng cách làm các bộ
lọc điểm cố định tăng gấp đôi và lọc với số học dấu chấm động chính xác gấp đôi.
xdouble = double(xin);
hdouble = double(h);

Filter Structure : Direct-Form FIR
Filter Length : 81
Stable : Yes
Linear Phase : Yes (Type 1)
Arithmetic : fixed
Numerator : s16,17 -> [-2.500000e-001 2.500000e-
001)
Input : s16,15 -> [-1 1)
Filter Internals : Full Precision
Output : s34,32 -> [-2 2) (auto determined)
Product : s31,32 -> [-2.500000e-001 2.500000e-
001) (auto determined)
Accumulator : s34,32 -> [-2 2) (auto determined)
Round Mode : No rounding
Overflow Mode : No overflow
Chúng tôi nhận thấy rằng sẽ có 3 bit phụ có sẵn. Đây là điển hình của hầu hết các bộ
xử lý DSP điểm cố định. Những bit này thường được gọi là bit bảo vệ. Họ cung cấp
một mạng lưới an toàn cho tràn trung gian. Cách dễ nhất để đánh giá cao giá trị của
23
họ là để loại bỏ chúng và xem những gì sẽ xảy ra (chúng tôi điều chỉnh cài đặt đầu ra
cho phù hợp),
set(h,'FilterInternals','SpecifyPrecision');
set(h,'AccumWordLength',get(h,'ProductWordLength'));
set(h,'OutputWordLength',get(h,'AccumWordLength'));
Bây giờ chúng ta cho có thể báo cáo về quá trình lượng tử hóa. Khả năng Logging
được tích hợp với phương pháp 'lọc'. Nó được kích hoạt khi ưu tiên FI 'Logging' được
'bật'. Báo cáo được lưu trữ tương ứng với các mô phỏng cuối cùng. Nó được ghi đè
mỗi khi lệnh lọc được thực hiện.
fipref('LoggingMode', 'on');
y = filter(h,xin);

norm(double(y)-ydouble,inf) % max deviation
ans =
0.5000
plot([ydouble,double(y)])
24
xlabel('Samples'); ylabel('Amplitude')
legend('ydouble','y')
set(gcf, 'Color', [1 1 1])
Bây giờ lỗi này là lớn, bởi vì tràn xảy ra có thể thấy trong đồ thị.
+ Tránh tràn với Không có Bits Guard
Có thể không có tràn bit guard ngay cả khi không có sẵn. Từ các ô của y và ydouble,
rõ ràng là một chút cho một phần số nguyên là tất cả những gì đã được yêu cầu trong
trường hợp này cụ thể để tránh tràn. Chúng tôi có thể cải thiện kết quả với thiết lập
này, nhưng đây là cụ thể các hệ số bộ lọc hiện tại và tín hiệu đầu vào.
set(h,'AccumFracLength',get(h,'AccumWordLength')-1);
set(h,'OutputFracLength',get(h,'AccumFracLength'));
y = filter(h,xin);
R = qreport(h)

R = Fixed-
Point Report
Min Max |
Range | Number of Overflows


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status