Trong Matlab, tôi thường tính toán phổ công suất bằng phương pháp Welch (pwelch
), sau đó tôi hiển thị trên một ô log-log. Các tần số được ước tính bởi pwelch
là khoảng cách bằng nhau, nhưng các khoảng cách lôgarit cách nhau sẽ thích hợp hơn cho lô log-log. Đặc biệt, khi lưu cốt truyện vào một tập tin PDF, điều này dẫn đến một kích thước tập tin rất lớn vì số điểm vượt quá ở tần số cao.Làm thế nào để lấy lại mẫu/làm lại phổ?
Một lược đồ hiệu quả để tái tạo lại (rebin) phổ là gì, từ tần số khoảng cách tuyến tính đến tần số khoảng cách log? Hoặc, cách nào để bao gồm phổ độ phân giải cao trong tệp PDF mà không tạo kích thước tệp quá lớn?
Các điều hiển nhiên phải làm là chỉ cần sử dụng interp1
:
rate = 16384; %# sample rate (samples/sec)
nfft = 16384; %# number of points in the fft
[Pxx, f] = pwelch(detrend(data), hanning(nfft), nfft/2, nfft, rate);
f2 = logspace(log10(f(2)), log10(f(end)), 300);
Pxx2 = interp1(f, Pxx, f2);
loglog(f2, sqrt(Pxx2));
Tuy nhiên, điều này là không mong muốn vì nó không bảo tồn năng lượng trong quang phổ. Ví dụ, nếu có một đường phổ lớn giữa hai trong số các thùng tần số mới, nó sẽ bị loại trừ khỏi phổ lấy mẫu được ghi lại.
Để khắc phục điều này, chúng tôi thay vì có thể nội suy các thể thiếu của quang phổ điện:
df = f(2) - f(1);
intPxx = cumsum(Pxx) * df; % integrate
intPxx2 = interp1(f, intPxx, f2); % interpolate
Pxx2 = diff([0 intPxx2]) ./ diff([0 F]); % difference
Đây là dễ thương và chủ yếu hoạt động, nhưng các trung tâm bin không hoàn toàn đúng, và nó không xử lý thông minh vùng tần số thấp, nơi mà lưới tần số có thể trở nên được lấy mẫu tốt hơn.
ý tưởng khác:
- ghi một chức năng để xác định sự di chuyển chuột tần số mới và sau đó sử dụng
accumarray
để làm rebinning. - Áp dụng bộ lọc làm mịn cho quang phổ trước khi thực hiện nội suy. Vấn đề: kích thước hạt làm mịn sẽ phải thích nghi với việc làm trơn logarit mong muốn.
- Chức năng
pwelch
chấp nhận đối số vector tần sốf
, trong trường hợp này nó tính toán PSD ở tần số mong muốn bằng thuật toán Goetzel. Có lẽ chỉ cần gọi sốpwelch
với vectơ tần số có dấu log ở vị trí đầu tiên sẽ là đủ. (Điều này có hiệu quả hơn hay không?) - Đối với vấn đề kích thước tệp PDF: bao gồm hình ảnh bitmap của quang phổ (có vẻ kludgy - Tôi muốn đồ họa vector đẹp!);
- hoặc có thể hiển thị vùng (đa giác/khoảng tin cậy) thay vì chỉ đơn giản là đường được phân đoạn để biểu thị phổ.
Vấn đề với cách tiếp cận này là số lượng trung bình được đặt bởi bin tần số thấp nhất (độ phân giải cao nhất). Chúng tôi nhận được ít điểm hơn ở tần số cao (như mong muốn), nhưng chúng tôi không nhận được lợi thế về mức trung bình cao hơn ở tần số cao hơn. – nibot