2010-07-20 41 views
5

Dữ liệu âm thanh nổi (2 kênh) âm thanh nổi nên được trình bày như thế nào cho FFT? Bạn cóCách trình bày dữ liệu âm thanh nổi cho FFT

A. Lấy trung bình của hai kênh và gán nó vào thành phần thực sự của một số và rời khỏi thành phần tưởng tượng 0.

B. Gán một kênh để các thành phần thực và các kênh khác để thành phần tưởng tượng.

Có lý do để làm việc này hay cách khác không? Tôi đã tìm kiếm trên web nhưng không thể tìm thấy bất kỳ câu trả lời xác định nào về điều này.

Tôi đang thực hiện một số phân tích phổ đơn giản và không biết bất kỳ tùy chọn nào tốt hơn, được sử dụng A). Điều này đã cho tôi một kết quả không mong muốn, trong khi tùy chọn B) như mong đợi. Dưới đây là một số chi tiết khác:

Tôi có tệp WAV của đàn piano "trung-C". Theo định nghĩa, trung-C là 260Hz, vì vậy tôi mong đợi tần số đỉnh là 260Hz và các đỉnh nhỏ hơn ở các sóng hài. Tôi đã xác nhận điều này bằng cách xem quang phổ thông qua phần mềm chỉnh sửa âm thanh (Sound Forge). Nhưng khi tôi lấy FFT bản thân mình, với tùy chọn A), đỉnh là 520Hz. Với tùy chọn B), đỉnh là 260Hz.

Tôi có thiếu gì đó không? Lời giải thích mà tôi đã đưa ra cho đến nay là đại diện cho dữ liệu âm thanh nổi bằng cách sử dụng một thành phần thực và tưởng tượng ngụ ý rằng hai kênh độc lập, trong đó, tôi cho rằng chúng không có, và do đó là sự lộn xộn.

Trả lời

2

Lựa chọn B không có ý nghĩa. Tùy chọn A, số tiền chuyển đổi tín hiệu thành mono, là OK (nếu bạn quan tâm đến quang phổ toàn cục). Vấn đề của bạn (đôi freq) chắc chắn liên quan đến một số hiểu lầm trong việc sử dụng các thói quen FFT của bạn.

+0

Trong thực tế nó làm cho rất nhiều ý nghĩa. Xem câu trả lời của câu hỏi đó để biết chi tiết: http://stackoverflow.com/questions/14477454/apply-fft-to-a-both-channels-of-a-stereo-signal-seperately –

4

Tôi không nghĩ rằng bạn đang lấy trung bình một cách chính xác. :-)

C. Quá trình từng kênh riêng biệt, giao biên độ để các thành phần thực và rời khỏi thành phần tưởng tượng như 0.

+0

Hoặc chỉ sử dụng FFT được tối ưu hóa thực - hầu hết các bộ công cụ cung cấp một bộ lọc, và nó sẽ tránh nhầm lẫn về thành phần thực và tưởng tượng, ít nhất là đối với đầu vào;) Một số thậm chí còn cung cấp các biến thể "n-chiều" ; Hãy suy nghĩ của mỗi kênh đầu vào âm thanh của bạn như một chiều. Tất nhiên, bạn sẽ phải tìm trung bình của các kết quả FFT sau đó. – T045T

2

Khi bạn lấy FFT, bạn cần có được Độ lớn của phổ tần số phức tạp. Để có được độ lớn, bạn có thể sử dụng tuyệt đối của phổ phức tạp | X (w) |. Nếu bạn muốn nhìn vào quang phổ công suất, bạn đặt bình phương phổ độ lớn, | X (w) |^2.

Về chuyển đổi tần số, tôi nghĩ rằng nó phải làm với bạn thiết lập các phần tưởng tượng về không. Nếu bạn tưởng tượng phổ tần số phức tạp như một loạt các vectơ phức tạp hoặc vectơ vị trí trong không gian Descartes. Nếu bạn lấy một tần số riêng biệt bin X (w), sẽ có một thành phần thực biểu diễn hướng của nó trong trục thực (x -direction) và một thành phần ảo trong trục ảo (y-direction). Có bốn giá trị quan trọng về tần số rời rạc này, 1. giá trị thực, 2. giá trị tưởng tượng, 3. Độ lớn và, 4. pha. Nếu bạn chỉ lấy giá trị thực và đặt tưởng tượng là 0, bạn đang thiết lập Magnitude = real và phase = 0deg hoặc 90deg. Do đó bạn đã sửa đổi phổ kết quả, và áp dụng một thiên vị cho mỗi bin tần số. Hãy xem wiki trên Magnitude of a vector, còn được gọi là định mức Euclide của vec-tơ để đánh dấu sự hiểu biết của bạn. Leonbloy đã đúng, nhưng tôi hy vọng điều này có nhiều thông tin hơn.

+0

Tôi nghĩ bạn đang bối rối về khi OP thiết lập phần ảo thành 0, cụ thể là trong đầu vào của FFT. Điều này là hoàn toàn ổn, bởi vì dữ liệu âm thanh không có phần ảo, trong khi dữ liệu được chuyển đổi thì có. Ngay sau khi FFT được thực hiện, bạn đã đúng, tất nhiên. Bạn cần tính toán độ lớn, thay vì chỉ là phần thực. Tôi nghĩ rằng sự hiểu lầm leonbloy đã chơi tại có nhiều hơn để làm với ghi nhãn của các tần số thùng hơn với các tiêu chuẩn :) – T045T

0

Hãy suy nghĩ về FFT như một cách để nhận thông tin từ một tín hiệu duy nhất. Những gì bạn đang hỏi là cách tốt nhất để hiển thị dữ liệu từ hai tín hiệu là gì. Câu trả lời của tôi sẽ là đối xử độc lập với từng người và hiển thị FFT cho mỗi người.

Nếu bạn muốn có một FFT trực tuyến thực sự nhanh, bạn có thể đọc về thuật toán tôi đã viết ở đây: www.depthcharged.us/?p = 176

Các vấn đề liên quan