f = fopen('C:\Users\Administrator\Desktop\20161117_090257.z', 'rb');
[zac, count] = fread(f, inf, 'float');
time = 0 : 0.008 : (count - 1) * 0.008;
figure(1);
subplot(3, 1, 1);
plot(time, zac);
fs = 125;
n = 4096;
zacfft = fft(zac, n); % fft
zacfft(1) = zacfft(2);
fre = ((1 : 1 : n) - 1) * fs / n; % fre
amp = abs(zacfft) / (n / 2); % amp
xiangwei = angle(zacfft) * 180 / pi;
subplot(3, 1, 2);
plot(fre(1:n/2), amp(1:n/2));
subplot(3, 1, 3);
plot(fre(1:n/2), xiangwei(1:n/2));
% batewosi ditong filter
tongdb = 1;
zudb = 30;
tongfre = 2 * 8 / fs;
zufre = 2 * 12 / fs;
% batewosi zuixiaojieshu he jiezhi pinlv
[filterorder, filterwn] = buttord(tongfre, zufre, tongdb, zudb);
% fengzi he fengmu
[fengzi, fengmu] = butter(filterorder, filterwn);
% pingxiang moren 512 dian, pingxiangfushu he pinlvdian
[freqzfushu, freqzfre] = freqz(fengzi, fengmu);
figure(2);
subplot(2, 1, 1);
plot(freqzfre, abs(freqzfushu));
subplot(2, 1, 2);
plot(freqzfre, angle(freqzfushu));
% filter
zacfilter = filter(fengzi, fengmu, zac);
figure(3);
subplot(2, 1, 1);
plot(time, zacfilter);
% filter fft
zacfilterfft = fft(zacfilter, n);
zacfilterfft(1) = zacfilterfft(2);
zacfilterfftamp = abs(zacfilterfft) / (n / 2);
subplot(2, 1, 2);
plot(fre(1:n/2), zacfilterfftamp(1:n/2));
fread函数要注意大端模式和小端模式
大端 fread(f, inf, 'float', 'b');
小端 fread(f, inf, 'float', 'l');
fread(f, inf, 'float', 'n');是以原来的模式读取,原来是大端就是大端,原来是小端就是小端。