% 2017.9.1(金) load_data_raw_AB_fixed_rows_changed.m をコピーして編集。 function [A1_g, A2_g, B1_g, B2_g] = load_data_raw_AB_fixed_rows_changed_PCB(filename, dl, ls); fid = fopen(filename, 'r'); %n = 201; % データファイルの行数 n = 35; % データファイルの行数 buf_len = 9; % 一行当たりの列数 %l = 0.126; % 圧力センサ間の距離 (m) %l = 0.45+0.068; % 圧力センサ間の距離 (m) %dl = 0.068/2; % 外挿する距離 c0 = 346; % 音速 (m/s) rho0 = 1.21; % 空気の密度 (kg/m^2) S = pi*0.025^2; % 管の断面積 (m^2) Zc = rho0*c0 / S; % 特性音響インピーダンス %pcb_coeff = 145e-6; % PCBセンサの係数(カタログ値、145mV/kPa = 145e-6 V/Pa) pcb_coeff_12991 = 141.2e-6; pcb_coeff_12992 = 131.3e-6; pcb_coeff_12637 = 147.0e-6; pcb_coeff_12638 = 152.0e-6; %nagano_keiki_coeff = 625e3/464.; % (Pa/V) %frdata = (fscanf(fid, '%lf', [buf_len, n]))'; % 2014.6.11(水) spk1.dat などが1行あたり buf_len 列以上のデータを持っていても、無視して buf_len 列分のみ読み込む。 frdata = []; for m=1:n tline = fgetl(fid); % if ~ischar(tline), break, end tmp = (sscanf(tline, '%lf', buf_len))'; frdata = [frdata; tmp]; end f = frdata(:,1); % 周波数 w = 2*pi*f; k = w / c0; % 波数 % 2013.9.3(火)1ページ参照 %ps1_jw = frdata(:,4).*exp(i*pi/180.0*frdata(:,5))/pcb_coeff_12638; % ps1まで %ps2_jw = frdata(:,8).*exp(i*pi/180.0*frdata(:,9))/pcb_coeff_12992; % ps2まで %pc1_jw = frdata(:,2).*exp(i*pi/180.0*frdata(:,3))/pcb_coeff_12637; % pc1まで %pc2_jw = frdata(:,6).*exp(i*pi/180.0*frdata(:,7))/pcb_coeff_12991; % pc2まで pc2_jw = frdata(:,4).*exp(i*pi/180.0*frdata(:,5))/pcb_coeff_12638; % ps1_jw = frdata(:,8).*exp(i*pi/180.0*frdata(:,9))/pcb_coeff_12992; % dummy ps2_jw = frdata(:,2).*exp(i*pi/180.0*frdata(:,3))/pcb_coeff_12637; % pc1_jw = frdata(:,6).*exp(i*pi/180.0*frdata(:,7))/pcb_coeff_12991; % dummy %ps1_jw = frdata(:,4).*exp(i*pi/180.0*frdata(:,5))*nagano_keiki_coeff; % ps1まで %ps2_jw = frdata(:,8).*exp(i*pi/180.0*frdata(:,9))*nagano_keiki_coeff; % ps2まで %pc1_jw = frdata(:,2).*exp(i*pi/180.0*frdata(:,3))*nagano_keiki_coeff; % pc1まで %pc2_jw = frdata(:,6).*exp(i*pi/180.0*frdata(:,7))*nagano_keiki_coeff; % pc2まで %% 2013.9.10(火)1ページ参照 %us1_jw = (cos(k*l).*ps1_jw - pc1_jw)./(i*Zc*sin(k*l)); %us2_jw = (pc2_jw - cos(k*l).*ps2_jw)./(i*Zc*sin(k*l)); %uc1_jw = (ps1_jw - cos(k*l).*pc1_jw)./(i*Zc*sin(k*l)); %uc2_jw = (cos(k*l).*pc2_jw - ps2_jw)./(i*Zc*sin(k*l)); % 2014.7.17(木)3ページ参照 %p1_jw = ( -sin(k*dl).*ps1_jw + sin(k*(l+dl)).*pc1_jw)./( sin(k*l)); %u1_jw = ( cos(k*dl).*ps1_jw - cos(k*(l+dl)).*pc1_jw)./(i*Zc*sin(k*l)); %p2_jw = (sin(k*(l+dl)).*pc2_jw - sin(k*dl).*ps2_jw)./( sin(k*l)); %u2_jw = (cos(k*(l+dl)).*pc2_jw - cos(k*dl).*ps2_jw)./(i*Zc*sin(k*l)); A1_jw = ( exp(-i*k*dl).*ps1_jw - exp(-i*k*(ls+dl)).*pc1_jw)./( 2*i*sin(k*ls)); B1_jw = (-exp( i*k*dl).*ps1_jw + exp( i*k*(ls+dl)).*pc1_jw)./( 2*i*sin(k*ls)); A2_jw = (-exp( i*k*dl).*ps2_jw + exp( i*k*(ls+dl)).*pc2_jw)./( 2*i*sin(k*ls)); B2_jw = ( exp(-i*k*dl).*ps2_jw - exp(-i*k*(ls+dl)).*pc2_jw)./( 2*i*sin(k*ls)); A1_g = frd(A1_jw, w); B1_g = frd(B1_jw, w); A2_g = frd(A2_jw, w); B2_g = frd(B2_jw, w);