1. Tình huống ban đầu
Tôi có một tín hiệu gốc là dữ liệu n
kênh ma trận dữ liệu cột x:mxn (single)
, với m=120019
số lượng mẫu và n=15
số lượng kênh.
Ngoài ra, tôi có tín hiệu được lọc dưới dạng ma trận dữ liệu cột được lọc x:mxn (single)
.
Dữ liệu gốc chủ yếu là ngẫu nhiên, tập trung ở mức 0, từ các bộ thu nhận cảm biến.
Trong MATLAB
, đang sử dụng save
không có tùy chọn, butter
như bộ lọc đường cao tốc và single
để truyền sau khi lọc.
save
về cơ bản áp dụng nén GZIP cấp 3 theo định dạng HDF5 nhị phân, do đó chúng ta có thể giả sử kích thước tệp là một công cụ ước tính tốt về nội dung thông tin , tức là tối đa cho tín hiệu ngẫu nhiên và gần bằng 0 đối với tín hiệu không đổi.
Lưu tín hiệu gốc sẽ tạo tệp 2MB ,
Lưu tín hiệu đã lọc sẽ tạo tệp 5MB (?!).
2. Câu hỏi
Làm thế nào có thể tín hiệu được lọc có kích thước lớn hơn , xem xét tín hiệu được lọc có ít thông tin hơn , được loại bỏ bởi bộ lọc?
3. Ví dụ đơn giản
Một ví dụ đơn giản:
n=120019; m=15;t=(0:n-1)';
x=single(randn(n,m));
[b,a]=butter(2,10/200,'high');
xf=filter(b,a,x);
save('x','x'); save('xf','xf');
tạo các tệp 6MB , cả cho tín hiệu gốc và tín hiệu được lọc, lớn hơn các giá trị trước đó do sử dụng dữ liệu ngẫu nhiên thuần túy.
Theo một nghĩa nào đó, chỉ ra rằng tín hiệu được lọc là ngẫu nhiên hơn tín hiệu được lọc (?!).
4. Ví dụ đánh giá
Hãy xem xét những điều sau đây:
- Một bộ lọc được tạo từ tín hiệu ngẫu nhiên từ nhiễu gaussian và tín hiệu không đổi bằng .
- Bỏ qua kiểu dữ liệu, tức là chỉ sử dụng
double
, - Bỏ qua các kích thước dữ liệu, tức là hãy sử dụng một vectơ dữ liệu cột là 1MB, , .
- Cho phép xem xét tham số như Index Randomness để thử nghiệm: , có nghĩa là là hoàn toàn ngẫu nhiên và hoàn toàn không thay đổi.
- Xem xét bộ lọc butterworth đường cao với .
Các mã sau đây:
%% Data
n=125000;m=1;
t=(0:n-1)';
[hb,ha]=butter(2,0.5,'high');
d=100;
a=logspace(-6,0,d);
xr=randn(n,m);xc=ones(n,m);
b=zeros(d,2);
for i=1:d
x=a(i)*xr+(1-a(i))*xc;
xf=filter(hb,ha,x);
save('x1.mat','x'); save('x2.mat','xf');
b1=dir('x1.mat'); b2=dir('x2.mat');
b(i,1)=b1.bytes/1024;
b(i,2)=b2.bytes/1024;
i
end
%% Plot
semilogx(a,b);
title('Data Size for Filtered Signals');
legend({'original','filtered'},'location','southeast');
xlabel('Random Index \alpha');
ylabel('FIle Size [kB]');
grid on;
Mô phỏng này tái tạo điều kiện của tín hiệu được lọc luôn có kích thước lớn hơn khét tiếng so với tín hiệu gốc, điều này mâu thuẫn với thực tế là tín hiệu được lọc có ít thông tin hơn , bị bộ lọc loại bỏ.