Giải pháp "tốt nhất" có thể thực sự là DFT, loại bỏ 3/4 tần số hàng đầu và thực hiện DFT nghịch đảo, với miền bị hạn chế ở dưới cùng 1/4. Loại bỏ 3/4 hàng đầu là bộ lọc low-pass trong trường hợp này. Đệm vào một sức mạnh của 2 số mẫu có thể sẽ cung cấp cho bạn một lợi ích tốc độ. Hãy nhận biết cách gói FFT của bạn lưu trữ các mẫu mặc dù.Nếu đó là một FFT phức tạp (dễ phân tích hơn nhiều và thường có các thuộc tính đẹp hơn), các tần số sẽ chuyển từ -22 đến 22 hoặc 0 đến 44. Trong trường hợp đầu tiên, bạn muốn giữa 1/4. Trong thứ hai, ngoài cùng 1/4.
Bạn có thể thực hiện một công việc phù hợp bằng cách lấy trung bình các giá trị mẫu. Cách ngây thơ lấy mẫu bốn và làm một tác phẩm bình quân có trọng số bằng nhau, nhưng không quá lớn. Thay vào đó, bạn sẽ muốn sử dụng một hàm "hạt nhân" để tính trung bình chúng theo cách không trực quan.
Theo cách toán học, loại bỏ mọi thứ bên ngoài dải tần số thấp là nhân với chức năng hộp trong không gian tần số. Biến đổi Fourier (nghịch đảo) biến phép nhân theo điểm thành một phép biến đổi các biến đổi Fourier (nghịch đảo) của các hàm, và ngược lại. Vì vậy, nếu chúng ta muốn làm việc trong miền thời gian, chúng ta cần thực hiện một phép hồi quy với hàm biến đổi Fourier (nghịch đảo) của hàm hộp. Điều này hóa ra là tỷ lệ với hàm "sinc" (sin at)/at, trong đó a là chiều rộng của hộp trong không gian tần số. Vì vậy, tại mọi vị trí thứ 4 (kể từ khi bạn đang downsampling bởi một yếu tố của 4) bạn có thể thêm lên các điểm gần đó, nhân với tội lỗi (một dt)/a dt, nơi dt là khoảng cách trong thời gian đến vị trí đó. Làm thế nào gần đó? Vâng, điều đó phụ thuộc vào việc bạn muốn nó phát ra như thế nào. Thông thường, hãy bỏ qua mọi thứ bên ngoài số 0 đầu tiên, hoặc chỉ lấy số điểm là tỷ lệ mà bạn đang lấy mẫu.
Cuối cùng, có một cách cực kỳ nghèo nàn (nhưng nhanh) để loại bỏ phần lớn các mẫu, chỉ giữ lại số không, thứ tư, v.v.
Thành thật mà nói, nếu nó phù hợp với bộ nhớ, tôi khuyên bạn chỉ nên đi tuyến đường DFT. Nếu nó không sử dụng một trong các gói phần mềm bộ lọc mà người khác đã đề nghị xây dựng bộ lọc cho bạn.
Mã này là trung bình có trọng số trên cửa sổ. Nó có thể được tính toán từ một DFT nghịch đảo của một hàm lọc trên miền tần số. Bạn có thể sử dụng một mảng phần tử 4 và thử nghiệm với các giá trị, một cái gì đó như [0.1, 0.4, 0.4, 0.1], cho đến khi nó có vẻ tốt. – artificialidiot