1. Trang chủ >
  2. Công nghệ thông tin >
  3. Đồ họa >

Lọc tạp âm bằng FFT

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 (898.2 KB, 120 trang )


for (int i = 0; i < psd.length; i++) {

if (psd[i] < noisePowerCutoff) {

r_d[i] = 0;

i_d[i] = 0;

}

}

fftInstance.reverseFFT(r_d,i_d);

ulc = new UlawCodec(r_d);

ulc.play();

}



Hai phơng thức removeNoise và addNoise đợc đặt dói sự chọn lựa của ngời sử

dụng trên thanh chọn chính.

MenuItem addNoise_mi



= addMenuItem(m,"[A] Add Noise");



MenuItem removeNoise_mi



= addMenuItem(m,"[R] Remove Noise");



Trên hình 5.7 là dạng sóng sau khi cộng thêm tạp âm.



PSD của sóng sine sau khi cộng thêm tạp âm có dạng.



Hình 5.8



Khe hở phổ

fk =



k

N t



Nhớ lại trong công thức 5.6 chúng ta chỉ ra tần số của mẫu thứ k của phổ là

fk.

Ví dụ, khi số lợng mẫu là 2048 mẫu, N=2048, tần số nhỏ nhất là 8000/2048 =

3.9Hz. Đối với phổ đợc chỉ ra trên hình 6.5, điểm trung tâm là

N/2=2048/2=1024. Theo công thức 6.6 , chúng ta tính tần số cao nhất có thể đa

78



ra đợc 2048 mẫu (tần số lấy mẫu 8000Hz) là (8000/2048)*1024=4000Hz. Đồng

thời chúng ta có thể tính mẫu nh sau:

k = Nf k/ f s



Do đó với sóng răng ca nh trên hình 6.8 chúng ta muốn nhận đợc biên độ lớn

nhất sẽ xuất hiện tại tần số k= 2048*400/8000=102.4. Nhng FFT ( hay DFT) có

thể hiển thị tại tần số 102.4 nh thế nào. Câu trả lời là năng lợng sẽ trải ta trên

khoảng xung quanh các tần số 102 và 103, thông thờng tần số thứ k trong miền

tần số đợc coi nh một hộp " bin". Bởi vì cấu thành tần số 400Hz là có cả hai

"bin" 102 và 103, hiện tợng nh vậy gọi là khe hở phổ (Spectral Leakage). Vấn đề

đặt ra với hiện tợng này là sự khác nhau đối với các tần số khác nhau. Ví dụ tại

tần số 390.625 Hz k=2048*390.625/8000 =10 kết quả là số nguyên. Khi đó

không có hiện tợng Spectral Leakage, nh vậy trong miền tần số có một số các tần

số tại đó không có hiện tợng Spectral Leakage, còn phần lớn các tần số thì xuất

hiện hiện tợng Spectral Leakage, đó là đặc điểm lọt phổ cơ bản của miền tần số.

Một kĩ thuật đợc biết đến là sử dụng các cửa sổ lấy mẫu tín hiệu, hiệu quả của

việc sử dụng cửa sổ lấy mẫu là ở chỗ có thể hạn chế đợc hiện tợng Spectral

Leakage ở một mức độ cho phép. Hiện nay có nhiều loại cửa sổ thích hợp cho

từng bộ lọc một ví dụ nh cửa sổ Cesaro, Hann, Hamming, Parzen, Welch ....

trong nội dung cuốn sách này chúng ta không đi vào chi tiết các bộ lọc. Một

trong các cửa sổ lấy mẫu tín hiệu thông dụng nhất là cửa sổ Hanning. Công thức

biểu diễn nh sau:



2j

w j = 1 cos



N 1





j [ 0..N 1]



(5.18)



trên hình 5.9 thể hiện hình dạng của cửa sổ với 256 điểm lấy mẫu.



Hình 5.9 Cửa sổ Hanning

Trong chơng trình cửa sổ đợc thực hiện bằng phơng thức makeHann:

public double[] makeHanning(int n) {

double window[] = new double[n];

double arg = 2.0 * Math.PI/ (n - 1);

for (int i = 0; i < n; i++)

window[i] = 0.5 - 0.5 * Math.cos(arg*i);

return window;



79



}



Để thực hiện việc lấy mẫu tín hiệu bằng cửa sổ chúng ra viết một phơng thức

có tên là multHann() :

public void multHanning() {

double[] r_d = getTruncatedDoubleData();

double[] window = makeHanning(r_d.length);

windowAudio(r_d, window, "hanning");

}



Một số dạng cửa sổ thông dụng khác nh cửa sổ Lyon, cửa sổ Bartlett có phơng

trình biểu diễn nh sau:



Cửa sổ Lyon:

5

2j

N 1

4

3

u=

, j 0..

6u 15u + 10u

N 1

2







wj =

6u 5 + 15u 4 10u 3 + 1 u = 2 j + 1 N , j N 1 ..N 1

2





N 1









(5.19)



Cửa sổ Bartlet:

2j

N 1

j 0..

N 1

2







wj =

N 1



2 2 j

j

..N 1



N 1

2







(5.20)



Bộ lọc thông cao (the Hight-Pass Filter)

Cách đơn giản để thiết kế bộ lọc thông cao là thực hiện biến đổi FFT trên dữ

liệu tín hiệu đa vào sau đó nhân với phổ của bộ lọc. Ví dụ chúng ta gán giá trị

không cho những điểm thuộc tần số thấp sử dụng hàm băng thông chữ nhật nh

trên hình 5.10.



Hình 5.10 Bộ lọc thông cao

Trên hình 5.11 là sóng sine cùng với cửa sổ chữ nhật, sóng sine có tần số

400Hz và tần số lấy mẫu là 8000Hz.

80



Hình 5.11

Tơng tự khi sử dụng cửa sổ Hanning và Bartlett chúng ta thu đợc các hình ảnh

sau:



Đối với cửa sổ Barlett



Đối với cửa sổ Hanning



81



Xem Thêm
Tải bản đầy đủ (.doc) (120 trang)

×