1. Situasi Asli
Saya memiliki sinyal asli sebagai data kolom, n
saluran data x:mxn (single)
, dengan m=120019
jumlah sampel dan n=15
jumlah saluran.
Juga, saya memiliki sinyal yang difilter sebagai matriks data kolom yang difilter x:mxn (single)
.
Data asli sebagian besar acak, berpusat di nol, dari pickup sensor.
Di bawah MATLAB
, saya menggunakan save
tanpa opsi, butter
sebagai filter highpass, dan single
untuk casting setelah penyaringan.
save
pada dasarnya menerapkan kompresi level-3 GZIP atas format HDF5 biner, maka kita dapat mengasumsikan ukuran file adalah penduga yang baik dari isi informasi , yaitu maksimum untuk sinyal acak, dan mendekati nol untuk sinyal konstan.
Menyimpan sinyal asli menciptakan file 2MB ,
Menyimpan sinyal yang difilter membuat file 5MB (?!).
2. Pertanyaan
Bagaimana mungkin sinyal yang disaring memiliki ukuran lebih besar, mengingat sinyal yang disaring memiliki informasi lebih sedikit , dihilangkan oleh filter?
3. Contoh Sederhana
Contoh sederhana:
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');
membuat file 6MB , baik untuk sinyal asli dan yang difilter, yang lebih besar dari nilai sebelumnya karena menggunakan data acak murni.
Dalam arti tertentu, menunjukkan bahwa sinyal yang difilter lebih acak daripada sinyal yang difilter (?!).
4. Contoh Evaluatif
Pertimbangkan yang berikut ini:
- Filter dibuat dari sinyal acak dari gaussian noise , dan sinyal konstan sama dengan .
- Abaikan tipe data, yaitu mari kita gunakan saja
double
, - Abaikan ukuran data, yaitu mari kita gunakan satu vektor data kolom 1MB, , .
- Mari kita mempertimbangkan parameter sebagai Indeks Randomness untuk pengujian: , yang berarti sepenuhnya acak dan sepenuhnya konstan.
- Pertimbangkan filter highpass butterworth dengan .
Kode berikut:
%% 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;
Dengan bagan berikut sebagai hasilnya:
Simulasi ini mereproduksi kondisi sinyal yang difilter selalu memiliki ukuran yang lebih besar daripada sinyal asli, yang bertentangan dengan fakta bahwa sinyal yang difilter memiliki informasi lebih sedikit , dihilangkan oleh filter.