2013-04-03 30 views
6

Tôi không muốn sử dụng thư viện- tôi muốn viết từ đầu. Tôi muốn chơi xung quanh làm cho một bộ giải mã cho WEFAX được truyền qua radio. Các tần số âm thanh khác nhau chuyển đổi thành các pixel tối khác nhau. Chỉ có thang màu xám - không có màu.Tìm kiếm thông tin cơ bản về đọc tần số âm thanh trong C

Có 120 dòng mỗi phút với một nơi nào đó trên 1000 pixel. Tôi muốn phát hiện tần số và biến nó thành một giá trị 8 bit. Phần cứng tương đương sẽ giống như một tần số LM567 để chuyển đổi điện áp.

Tôi không biết nên bắt đầu từ đâu. Đây có phải là một cái gì đó giống như một FIR hoặc IIR? Bất cứ ai có thể chỉ cho tôi mã tôi có thể học? Tôi không viết cho Windows, hoàn toàn unix.

Alan

+0

Tra cứu 'Ước tính tần số', 'Phát hiện vùng' và' Chuyển đổi Fourier rời rạc 'nhanh. –

+0

Hãy xem [Aquila] (http://aquila-dsp.org/) hoặc [aubio] (http://aubio.org/). (Ngay cả khi bạn muốn viết từ đầu, bạn nên xem cách người khác đã làm điều đó nếu bạn không có ý tưởng làm thế nào để thậm chí bắt đầu.) –

Trả lời

0

Giả sử bạn có dữ liệu chỉ số IQ, bạn có thể bắt đầu với một bộ giải điều chế FM đơn giản thực hiện với một pha khác biệt. Tần số là đạo hàm của pha, vì vậy bạn có thể tính toán sự khác biệt pha từ mẫu đến mẫu để ước lượng tín hiệu FM gốc. Một mẫu sản lượng duy nhất có thể được đưa ra bởi một cái gì đó như:

y[k] = arctan(imag(x[k])/real(x[k])) - arctan(imag(x[k-1])/real(x[k-1])) 

Bạn cũng có thể cần phải thực hiện một số giai đoạn unwrapping để tránh nhảy trong đầu ra bằng bội số của 2*pi. Xem phần tần số tức thời here để biết thêm chi tiết.

Đầu ra của bản dem FM nên về cơ bản là hình ảnh của bạn vì nó sẽ tạo ra một tín hiệu thay đổi theo biên độ theo cách tín hiệu ban đầu thay đổi theo tần số. Bạn sẽ phải resample nó vào lưới điểm ảnh chính xác và quy mô/quantize các cấp độ màu xám một cách chính xác.

Nó có thể cải thiện chất lượng hình ảnh thành bộ lọc lowpass đầu ra của bộ giải điều chế FM để giảm nhiễu.