Đồ án Xây dựng chương trình xử lý âm thanh số

Với âm thanh số, bằng việc lưu trữ âm thanh dưới dạng các dãy số, chúng ta đạt được yêu cầu về tốc độ truyền cũng như về khối lượng lưu trữ và độ trung thực trong các phép xử lý như khử nhiễu, soạn thảo hay các hiệu quả tạo độ vang, trễ . Do vậy, ngoài các phương tiện sử dụng kỹ thuật số, như camera số, thiết bị ghi số, điện thoại số. với chất lượng cao, thì những âm thanh tương tự được ghi từ micro với các nhạc cụ truyền thống đều được chuyển đổi sang dạng số hoá. Hơn nữa, với âm thanh, chúng ta không chỉ quan tâm tới khả năng cảm nhận một cách trung thực nhất âm thanh tự nhiên, mà ta còn hướng tới việc tạo ra (hay tổng hợp) được những âm thanh mà ta mong muốn. Do đó, khi nói đến âm thanh số thì cần thiết phải xét tới 3 khía cạnh: • Các khuôn dạng lưu trữ âm thanh với các đặc tính riêng biệt. Đây là yêu cầu trước tiên của bất kỳ quá trình thu thanh hay khi cần đọc dữ liệu để phân tích. Cần phải hiểu rõ các đặc tính cả từng khuôn dạng thì mới có thể lưu trữ một cách hiệu quả nhất. • Thao tác với các tệp âm thanh qua một trình soạn thảo âm thanh với các phép sao chép, cắt, dán, lọc, trộn âm hay chuyển đổi khuôn dạng tệp lưu trữ cũng như phương thức lưu trữ dữ liệu. Đây là cách để chúng ta có thể cảm nhận được âm thanh một cách rõ nét. • Phân tích tín hiệu của âm thanh bằng cách biểu diễn dữ liệu âm thanh dưới dạng tín hiệu tuỳ theo mục đích phân tích. Dữ liệu đọc từ tệp, sau đó qua các phép xử lý tín hiệu số như lọc, hàm cửa sổ, biến đổi FFT, Cepstrum . để có thể rút ra các tham số đặc trưng, các thông tin cần thiết cho các quá trình nhận dạng hay tổng hợp âm sau đó.

doc87 trang | Chia sẻ: ngtr9097 | Lượt xem: 4130 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đồ án Xây dựng chương trình xử lý âm thanh số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Giới thiệu chung 1. Giới thiệu chung Cùng với sự phát triển của cuộc cách mạng khoa học và công nghệ đang diễn ra một cách sôi động, chúng ta đang tiến dần tới thế giới của sự số hoá. Với các ưu điểm của xử lý số, nhanh gọn, chính xác với chất lượng cao, mọi lĩnh vực hoạt động của xã hội loài người, nhất là các ngành trong các lĩnh vực thông tin liên lạc, phát thanh truyền hình ... đều tiến tới việc áp dụng một cách đồng bộ và có hiệu quả các công cụ cũng như các phép xử lý số. Trong đó, âm thanh là một lĩnh vực đặc biệt quan trọng, đây là một phương thức dùng để trao đổi cũng như cảm nhận tin, không chỉ là tiếng nói, bản nhạc mà đó là tất cả các âm mà ta cảm nhận được trong cuộc sống hàng ngày, do đó, lĩnh vực về âm thanh không thể nằm ngoài xu hướng phát triển chung mà còn cần sự nghiên cứu sâu hơn nữa. 2. Đặt vấn đề Với âm thanh số, bằng việc lưu trữ âm thanh dưới dạng các dãy số, chúng ta đạt được yêu cầu về tốc độ truyền cũng như về khối lượng lưu trữ và độ trung thực trong các phép xử lý như khử nhiễu, soạn thảo hay các hiệu quả tạo độ vang, trễ ... Do vậy, ngoài các phương tiện sử dụng kỹ thuật số, như camera số, thiết bị ghi số, điện thoại số... với chất lượng cao, thì những âm thanh tương tự được ghi từ micro với các nhạc cụ truyền thống đều được chuyển đổi sang dạng số hoá. Hơn nữa, với âm thanh, chúng ta không chỉ quan tâm tới khả năng cảm nhận một cách trung thực nhất âm thanh tự nhiên, mà ta còn hướng tới việc tạo ra (hay tổng hợp) được những âm thanh mà ta mong muốn. Do đó, khi nói đến âm thanh số thì cần thiết phải xét tới 3 khía cạnh: Các khuôn dạng lưu trữ âm thanh với các đặc tính riêng biệt. Đây là yêu cầu trước tiên của bất kỳ quá trình thu thanh hay khi cần đọc dữ liệu để phân tích. Cần phải hiểu rõ các đặc tính cả từng khuôn dạng thì mới có thể lưu trữ một cách hiệu quả nhất. Thao tác với các tệp âm thanh qua một trình soạn thảo âm thanh với các phép sao chép, cắt, dán, lọc, trộn âm hay chuyển đổi khuôn dạng tệp lưu trữ cũng như phương thức lưu trữ dữ liệu. Đây là cách để chúng ta có thể cảm nhận được âm thanh một cách rõ nét. Phân tích tín hiệu của âm thanh bằng cách biểu diễn dữ liệu âm thanh dưới dạng tín hiệu tuỳ theo mục đích phân tích. Dữ liệu đọc từ tệp, sau đó qua các phép xử lý tín hiệu số như lọc, hàm cửa sổ, biến đổi FFT, Cepstrum ... để có thể rút ra các tham số đặc trưng, các thông tin cần thiết cho các quá trình nhận dạng hay tổng hợp âm sau đó. 3. Chủ đề của luận án Chính vì vậy, với đề tài “Xây dựng chương trình xử lý âm thanh số” thì nhiệm vụ trước tiên sẽ phải nghiên cứu, tìm hiểu các khuôn dạng lưu trữ dữ liệu, sau đó xây dựng một chương trình (xử dụng ngôn ngữ lập trình Delphi) để thao tác với các tệp âm thanh và phân tích tín hiệu của các âm thanh đó. Chương 1 lý thuyết xử lý tín hiệu số 1. Tín hiệu số Tín hiệu là biểu hiện vật lý của thông tin. Về mặt toán học, tín hiệu được coi là một hàm của một hay vài biến độc lập. Để phân loại tín hiệu, ta có thể xét đến tính chất của biến độc lập thời gian hay phân loại theo biên độ tín hiệu (liên tục hay rời rạc). Từ đó ta có định nghĩa: Tín hiệu số (Digital Signal) là tín hiệu rời rạc (theo biến độc lập thời gian) đồng thời có biên độ cũng rời rạc hoá (lượng tử hoá). Hình 2.1: Tín hiệu số Theo định nghĩa trên, tín hiệu có vai trò là vật mang thông tin. Nên tín hiệu cần phải được xử lý sao cho có thể dễ dàng rút ra các thông tin mong muốn hay lưu trữ thông tin một cách tối ưu. Cho nên việc phát triển các kỹ thuật cũng như các hệ thống xử lý tín hiệu đóng vai trò hết sức quan trọng. Thông thường các phép xử lý tín hiệu là các phép biến đổi tín hiệu thành dạng khác mong muốn, tuỳ theo yêu cầu thu nhận thông tin từ tín hiệu đó. Ví dụ như việc lọc bỏ nhiễu ra khỏi tín hiệu có ích, hay xác định thông số mang tin nào đó. 2. Xử lý tín hiệu số (DSP - Digital Signal Processing) Xử lý tín hiệu được sử dụng trong rất nhiều lĩnh vực khoa học khác nhau, và xử lý âm thanh là một trong số đó. Trong quá trình xử lý, các phép xử lý DSP chuẩn cơ bản là: FFT, lọc, thiết kế các bộ lọc thời gian, decimation, interpolation (nội suy), tích chập (convolution), ... Các chức năng DSP (Digital Signal Processing) được thực hiện bởi soundcard tương đương với một tập các khả năng của phần cứng tổng hợp âm nhạc điện tử analog: trộn, lọc, điều chế tần số, biên độ... và nén. Tất cả các hiệu quả được tạo ra bằng cách dùng bộ trễ tín hiệu như: vang, lặp.... đều có thể sử lý bằng DSP. Sự khác nhau là DSP (cả phần cứng và phần mềm) có thể thực hiện các chức năng trên dạng sóng số hóa. Nhiều soundcard có tích hợp DSP để tăng tốc độ xử lý. Việc phân tích và thiết kế của các hệ thống tuyến tính đã được thực sự đơn giản hoá bởi các phép biểu diễn trong miền tần số của cả tín hiệu và hệ thống. Trong đó biến đổi Fourier và biến đổi Z đóng vai trò quan trọng trong việc biểu diễn các tín hiệu và hệ thống rời rạc theo thời gian. 2.1. Phép biến đổi Z Nói chung, phép biến đổi Fourier là một công cụ mạnh để nghiên cứu tín hiệu số và tương tự về cả mặt lý thuyết và thực hành. Nhưng đối với tín hiệu rời rạc, phép biến đổi Z được sử dụng rộng rãi hơn bởi đây là phép biến đổi mạnh về phương diện lý thuyết. Định nghĩa Phép biến đổi z của tín hiệu x(n) là: X(z) = x(n).z-n (1.1) Trong đó X(z) là hàm biến phức của biến phức z. Chuỗi X(z) còn được gọi là chuỗi Laurent. X(z) và các đạo hàm của nó đều là liên tục trong miền hội tụ. Đây là phép biến đổi z hai bên (n chạy từ -¥ tới ¥), được dùng để nghiên cứu hệ thống xác lập của hệ thống. Với tín hiệu nhân quả, ta dùng phép biến đổi z một phía: X(z) = (1.2) Phép biến đổi z một phía dùng để nghiên cứu chế độ quá độ của hệ thống. Phép biến đổi z ngược Về mặt lý thuyết, phép biến đổi z ngược có thể thiết lập sau khi dùng định lý Côsi (Cauchy) về tích phân trên đường cong khép kín trên mặt phẳng phức: I = (1.3) trong đó G là đường cong khép kín bao quanh gốc toạ độ trên mặt phẳng z. Kết quả là: I = Bằng cách nhân hai vế của biến đổi z với zl-1/2pj, lấy tích phân quanh gốc toạ độ và nằm trong vùng hội tụ, và sau đó can thiệp tích phân và tổng, ta có biểu thức biến đổi z ngược như sau: x(l) = (1.4) Biểu thức thoả mãn với mọi l, đường cong G là đường cong khép kín, nằm trong miền hội tụ và chạy theo chiều dương (ngược chiều kim đồng hồ). Phép biến đổi z được áp dụng trong quá trình giải các phương trình sai phân tuyến tính hệ số hằng. Và các tính chất của biến đổi z tạo nhiều thuận lợi trong các vấn đề xử lý tín hiệu số. Như tính tuyến tính cho ta cách tính biến đổi z ngược thông qua việc phân tích một hàm phức tạp thành các hàm đơn giản. Quan hệ của phép biến đổi Z với phép biến đổi Fourier Từ công thức định nghĩa phép biến đổi z (1.1), thay z=ejq, tức là biểu diễn trong toạ độ cực, và với q = 2pf. X(z) = x(n).r-n.e-j2pfn Qua công thức trên, ta thấy phép biến đổi z là phép biến đổi Fourier của tích tín hiệu này với một tín hiệu hàm số mũ r-n. Hơn nữa, phép biến đổi Fourier của tín hiệu rời rạc là phép biến đổi z tính trên đường tròn đơn vị (|z| = 1 hay r = 1), với điều kiện miền hội tụ của phép biến đổi z phải chứa đường tròn đơn vị. Hay nói cách khác, trên đường tròn đơn vị phép biến đổi z và Fourier là đồng nhất. X(f) = X(z) = x(n).e-2jpfn với |z| = 1 (1.5) So với phép biến đổi Laplace Xét tín hiệu tương tự Xa(t), phép biến đổi Laplace của tín hiệu này là: Xa(t) = xa(t).e-stdt Nếu tín hiệu Xa(t) được lấy mẫu đều với chu kỳ Ts và d(t) là hàm xung Dirac, thì phép biến đổi Laplace của tín hiệu lấy mẫu là: Xe(s) = xa(t).s(t-n.Ts).e-stdt Xe(s) = (1.6) So sánh biểu thức này với biến đổi z của tín hiệu x(n) = xa(nTs), ta thấy biến đổi Laplace của tín hiệu lấy mẫu là biến đổi z của tín hiệu số tương ứng và được tính với z = exp(s.Ts). Có nghĩa là: X(z) = Xe(s) với z = . 2.2. Biến đổi Fourier rời rạc (DFT - Discrete Fourier Transform) DFT được sử dụng rộng rãi trong quá trình tính toán sự đánh giá phổ, các hàm tự tương quan và việc cài đặt các bộ lọc số. Đây là phép biến đổi Fourier rời rạc của tín hiệu x(n) có độ dài hữu hạn và có trục tần số cũng được rời rạc hoá. Trong đó, tín hiệu x(n) có độ dài hữu hạn là tín hiệu có giá trị khác 0 trong một khoảng hữu hạn thời gian nào đó và chúng bằng 0 trong khoảng còn lại. Với x(n) được dùng như là một chu trình của tín hiệu, ta có thể xây dựng tín hiệu xp(n) tuần hoàn với chu kỳ N bằng cách xếp chồng tuần hoàn x(n): Xp(n) = (1.7) Khi xếp chồng tuần hoàn, nếu M £ N (với M = N2 - N1 +1, trong đó N1 và N2 là thời điểm mà trong đó tín hiệu tồn tại), thì hiện tượng trùm thời gian giữa các phần của xp(n) sẽ không xảy ra, nghĩa là có thể dễ dàng lấy ra x(n) ban đầu. Lúc này tín hiệu x(n) có độ dài là N với các mẫu từ M tới N-1 có giá trị bằng 0. Và ta quy ước: xp(n) = x((n))N. Ta có các công thức biến đổi Fourier như sau: X(k) = (1.8) x(n) = (1.9) Trong đó X(k) là một chu kỳ của Xp(k), với Xp(k) là các mẫu trên đường tròn đơn vị của biến đổi z một chu kỳ của xp(n), hay biến đổi Fourier X(f) của một chu kỳ của xp(n). 2.3. Lọc tín hiệu Các bộ lọc được sử dụng để thay đổi giá trị tần số của âm thanh. Đây là khâu xử lý cơ bản cho một chuỗi các bước xử lý âm thanh tiếp theo. Ví dụ như, quá trình lọc có thể là gỡ bỏ nhiễu ra khỏi quá trình thu thanh hay tách biệt một âm, giọng nào đó bằng cách chỉ cho các tần số xác định nào đó đi qua. Chính vì vậy, lọc số là một ứng dụng quan trọng nhất của xử lý tín hiệu. Các bộ lọc số đã dần dần thay thế các bộ lọc tương tự. Việc thiết kế các bộ lọc số thực tế đều đi từ lý thuyết các bộ lọc số lý tưởng. Các bộ lọc số tiêu biểu là: Bộ lọc số thông thấp (Low pass filter) Bộ lọc số thông cao (High pass filter) Bộ lọc số thông dải (Band pass filter) Bộ lọc số chắn dải (Band stop filter) Trong đó, các bộ lọc được sử dụng để lọc tần số chính, nên tất cả các đặc trưng của lọc tần số đều được cho theo đáp ứng biên độ. 2.4. Hàm cửa sổ Như ta đã biết, phép biến đổi Fourier rời rạc DFT tác động trên tín hiệu có độ dài hữu hạn, nên cần thiết phải hạn chế độ dài đối với các tín hiệu có độ dài vô cùng hoặc quá lớn để có thể nghiên cứu phổ của chúng. Để làm điều này ta thường dùng hàm cửa sổ, tức là nhân tín hiệu x(n) với cửa sổ w(n-n0) để nhận được một đoạn xN(n) trong khoảng n0 tới n0+N-1 để phân tích. xN(n) = x(n). w(n- n0) = (1.10) Việc nhân tín hiệu với hàm cửa sổ theo thời gian tương đương với việc nhân chập phổ của tín hiệu x(n) với phổ của cửa sổ: XN(f) = X(g)W(f-g)dg = X(f)*W(f) (1.11) Trong đó XN(f), X(f), và W(f) là biến đổi Fourier tương ứng của xN(n), x(n), và w(n). Kết quả nhận được từ tín hiệu sau khi đã cho qua cửa sổ không những phụ thuộc vào dạng cửa sổ mà còn phụ thuộc vào số điểm tín hiệu phân tích N, cũng như vị trí cửa sổ được đặt ở đâu, tức là tìm n0 phù hợp. Ta phải chọn vị trí cửa sổ sao cho cửa sổ bao trùm lên phần quan trọng của tín hiệu và bỏ qua những chỗ có biên độ nhỏ, và phải chọn N sao cho một chu kỳ xp(n) là xấp xỉ của x(n) với sai số cho phép và không để xảy ra hiện tượng trùm thời gian. Như vậy, với những tín hiệu bất kỳ, do không có đủ thông tin để có thể chọn n0 và N một cách hợp lý thì sẽ không thể nhận được một kết quả phân tích tối ưu. Khi đó tốt nhất ta nên xem xét ở khía cạnh tần số để xác định N. 2.5. Phép biến đổi nhanh Fourier (FFT - Fast Fourier Transform) Đây thực chất là DFT nhưng với một thuật toán nhanh, gọn và hiệu quả. FFT đã tạo ra một bước ngoặt mới và thực sự đóng vai trò hết sức quan trọng trong việc phân tích, thiết kế và thực hiện các thuật toán xử lý tín hiệu số cũng như tín hiệu tương tự. Tuy có nhiều thuật toán tính FFT khác nhau, nhưng nguyên tắc chung của tất cả các thuật toán này là dựa trên việc phân tích cách tính DFT cuả một dãy N số (gọi tắt là DFT N điểm) thành các phép tính DFT của các dãy nhỏ hơn, trong đó số phép tính tỷ lệ với N.log(N). Trong các cách tính này, FFT có 2 lớp cơ bản: thuật toán FFT được phân chia theo thời gian và phân chia theo tần số. Cả hai thuật toán đều sử dụng phép tính toán tại chỗ (in place), và số phép nhân phức trong cả hai thuật giải là như nhau. Sự khác nhau cơ bản giữa hai cách tính là thứ tự xắp xếp dữ liệu đầu vào và đầu ra. Thông thường, ta xét tới 2 cách tính FFT: tính FFT thuận và FFT ngược. Bắt đầu từ cặp công thức biến đổi Fourier rời rạc thuận và ngược: X(k) = x(n).WNkn với k = 0, 1, .., N-1 x(n) = X(k).WN-kn với n = 0, 1, .., N-1 Cặp công thức trên là tương tự nhau, chỉ khác ở hệ số tỷ lệ và dấu của mũ của hệ số W. Như vậy, ta có thể dùng công thức tính FFT thuận để tính FFT ngược bằng cách lấy liên hợp phức của cả hai vế công thức * và chuyển hệ số tỷ lệ N sang trái: N.x*(n) = X*(k).WknN (1.12) Vế phải chính là DFT của dẫy X*(k) nên có thể tính được bằng bất kỳ chương trình tính FFT nào. Còn dãy x(n) có thể tính bằng cách lấy liên hợp phức hai vế công thức * và chia cho n: x(n) = (1.13) Tóm lại, để tính FFT ngược từ chương trình tính FFT thuận ta thực hiện các bước sau: Lấy liên hợp phức của X(k) bằng cách đổi dấu phần ảo của X(k). Tính FFT của dãy X(k) đã đổi dấu. Đổi dấu phần ảo của kết quả thu được, sau đó chia dãy cho hệ số tỷ lệ N để có kết quả cuối cùng. 2.6. Cepstrum Phép biến đổi tín hiệu sang dạng Cepstrum tương ứng là một phép biến đổi homomorphic, phép giải các bài toán không tuyến tính bằng các công cụ toán tuyến tính đã biết. Cepstrum là từ đảo của từ Spectrum (phổ) có nghĩa là chúng ta đang tiếp tục thực hiện việc phân tích phổ nào đó trên một phổ tần số. Khái niệm về Cepstrum là một phần cơ bản của lý thuyết trong các hệ thống homomorphic cho quá trình xử lý tín hiệu. Ngoài ra, ta có khái niệm: Cepstrum phức có nghĩa là biến đổi ngược Fourier (hay Z) của logarit tự nhiên phức của phổ phức; và Cepstrum thực là phép biến đổi của Fourier ngược của logarit thực của biến đổi Fourier của hàm đó. Hình 2.2: Hệ thống xử lý Homomorphic Ưu điểm của hệ thống xử lý này là thuật toán có thể được tách thành các thuật toán mắc dây chuyền như trên. Trong đó, các khối A và A-1 là các khối nghịch đảo của nhau. Còn khối F là hệ thống tuyến tính, bất biến, hay nói chung đó là một bộ lọc tuyến tính đơn giản. Chương 2 giới thiệu chung về âm thanh số 1. Âm thanh và đặc tính của âm thanh 1.1. Sóng âm và cảm giác âm Khi một vật dao động về một phía nào đó, nó làm cho các lớp không khí liền trước bị nén lại, và lớp không liền sau dãn ra. Sự nén và dãn không khí như vậy lặp đi lặp lại một cách tuần hoàn nên đã tạo ra trong không khí một sóng đàn hồi. Sóng này truyền tới tai, nén vào màng nhĩ khiến cho màng nhĩ cũng dao động với cùng tần số. Khi màng nhĩ dao động, các vị trí phân biệt của màng nhĩ trên bề mặt giống như nó chuyển động về trước hay sau đáp ứng với các sóng âm vào. Khi cùng một thời điểm, ta nghe thấy nhiều âm, thì mọi âm thanh phân biệt này được trộn với nhau một cách tự nhiên trong tai giống như một hình mẫu đơn của áp suất không khí thay đổi. Tai và óc làm việc cùng nhau để phân tích tín hiệu này ngược lại thành những cảm giác về âm riêng biệt. 1.2. Độ cao của âm Độ cao của âm là một đặc tính sinh lý của âm và nó phụ thuộc vào một đặc tính của âm là tần số. Những âm có tần số khác nhau, tạo nên cảm giác về các âm khác nhau: âm có tần số lớn gọi là âm cao hay âm thanh; âm có tần số nhỏ gọi là âm thấp hay âm trầm. Sự cảm nhận về mức độ to nhỏ của âm thanh được gọi là cường độ (pitch). Và cường độ có liên quan rất gần với một thuộc tính về mặt vật lý gọi là tần số (frequency). 1.3. Âm lượng của âm (độ to của âm) Năng lượng của âm Giống như các sóng cơ học, sóng âm cũng mang năng lượng sóng tỷ lệ với bình phương biên độ sóng. Và cường độ âm chính là năng lượng được sóng âm truyền trong một đơn vị thời gian qua một đơn vị diện tích đặt vuông góc với phương truyền (đơn vị W/m2). Tuy nhiên, để cảm nhận một âm, ta không đánh giá qua giá trị tuyệt đối của cường độ âm I, mà xét theo mức cường độ âm L. Tức là: L(B) = lg(I/I0) , với I0 là một giá trị chuẩn nào đó. Thông thường, L lấy đơn vị là deciben (ký hiệu là dB). Với L=1dB (I lớn gấp 1,26 lần I0) là mức cường độ nhỏ nhất mà tai ta có thể phân biệt được. Âm lượng của âm Để có thể tạo ra cảm giác âm, cường độ âm phải lớn hơn một ngưỡng nào đó. Với các tần số trong khoảng 1000-5000Hz, ngưỡng nghe khoảng 10-12W/m2. Với tần số 50Hz thì ngưỡng nghe lớn gấp 105 lần. Và mức âm lượng của âm phụ thuộc vào cả cường độ âm và tần số. 1.4. Âm sắc của âm Âm sắc là một đặc tính sinh lý của âm và nó được cấu thành trên cơ sở các đặc tính vật lý của âm là tần số và biên độ. Đây là một đặc trưng riêng của từng nguồn phát âm. Khi một nguồn phát ra một âm có tần số f1, thì đồng thời cũng phát ra các âm có tần số f2=2* f1, f3=3* f1 ... Âm có tần số f1 gọi là âm cơ bản hay hoạ âm thứ nhất. Các âm có tần số f2, f3, ... gọi là các hoạ âm thứ hai, thứ ba ... Tuỳ theo đặc tính của từng nguồn phát âm mà tạo ra các hoạ âm khác nhau với biên độ hay khoảng kéo dài khác nhau. Do đó âm do một nguồn âm phát ra là sự tổng hợp âm cơ bản và các hoạ âm. Nên, mặc dù có cùng tần số f1 của âm cơ bản nhưng đường biểu diễn không còn là một đường hình sin đơn thuần mà là một đường phức tạp có chu kỳ. 2. Âm thanh số Dạng chung nhất của các quá trình thu âm thanh số là dạng điều biến mã xung (PCM - Pulse Code Modulation). Đây là dạng mà phần lớn các đĩa compact và các tệp Wave sử dụng. Trong phần cứng thu thanh dạng PCM, một microphone chuyển dạng biến đổi áp suất không khí (các sóng âm thanh) thành dạng biến đổi điện áp. Sau đó một bộ chuyển đổi tương tự-số đo (mẫu hoá) dòng điện áp tại các quãng thời gian đều nhau. Ví dụ như, trong một đĩa compact có tới 44,100 mẫu được lấy mỗi giây. Mỗi điện áp mẫu hoá nhận được sẽ được chuyển đổi sang dạng số nguyên 16-bit. Một đĩa CD chứa 2 kênh dữ liệu: một cho tai trái, và một cho tai phải (đối với âm thanh dạng stereo). Hai kênh được thu thanh độc lập, được đặt theo cạnh (side) trên đĩa compact (dữ liệu cho các kênh trái và phải luân phiên nhau...trái, phải, trái, phải, ...). Dữ liệu nhận được từ quá trình thu thanh PCM là một hàm theo thời gian. 2.1. Nguyên lý Về cơ bản, âm thanh tương tự và số là khác nhau, nên ta luôn bị mất thông tin khi làm phép chuyển đổi giữa chúng. Khi được số hoá, sóng âm thanh được biểu diễn như là một chuỗi các số (được gọi là các mẫu), mà chúng biểu diễn áp suất không khí hay tín hiệu điện tại các thời điểm kế tiếp nhau theo thời gian. Khi mẫu hoá một tín hiệu tương tự, ta luôn gặp phải 2 vấn đề: thứ nhất, mỗi giá trị kế tiếp trong dạng biểu diễn dạng số là một quãng xác định nào đó của thời gian, và mỗi khối có một độ rộng xác định; thứ hai là các số số hoá là rời rạc. Chỉ có một số xác định các độ cao có thể cho mỗi khối. Theo hình vẽ, ta thấy độ cao các khối không ăn khớp với đường tín hiệu gốc. Hình 2.3: Chuyển đổi tín hiệu sang dạng các mẫu số Đây là hai lỗi cơ bản trong tín hiệu âm thanh số. Lỗi này có thể được kiểm soát bằng cách thay đổi khuôn dạng chi tiết của dạng biểu diễn âm thanh, nhưng không thể loại bỏ được hoàn toàn. Chính vì vậy, tuỳ theo ứng dụng ta sẽ phải chấp nhận một số lỗi nhất định. Và các hệ số khác như kích thước dữ liệu hay tần số xử lý yêu cầu ta phải chấp nhận một sai số lớn hơn từ một số nguồn để có thể giảm hơn nữa các sai số khác. 2.2. Tần số và cường độ Tần số của một sóng hình sin là khoảng thời gian mà nó dùng cho một chu kỳ hoàn chỉnh. Tần số được tính theo hertz (Hz), là số các chu kỳ hoàn chỉnh mà chúng xuất hiện trong một giây. Tai người có thể nghe thấy các sóng hình sin có tần số dao động trong khoảng 30 Hz tới 20.000 Hz. Những dao động trong miền tần số này gọi là dao động âm hay âm thanh. Chu kỳ (periodic) là nghịch đảo của tần số, là khoảng thời gian mà tín hiệu lặp lại một cách chính xác. Mặc dù rất nhiều hàm toán học được sử dụng để làm việc với âm thanh dựa trên các tín hiệu lặp một cách lý tưởng, đặc biệt là phép biến đổi Fourier, nhưng lại có rất ít các âm thanh thực là thực sự tuần hoàn. Trong thực tế, tần số chỉ có ý nghĩa trực tiếp cho các sóng hình sin. Tuy nhiên, mọi âm thanh đều có thể làm vỡ thành một tập các sóng hình sin. Ta có thể tạo bất cứ âm thanh nào bằng cách thêm vào một tập các sóng hìn