F02 RIAAイコライザ

室長:レコード再生にはイコライザが必要だ。代表的な特性であるRIAAイコライザをFIRフィルタでつくってくれ。ちなみにAudacity(Ver.2.0.0)のRIAAイコライザは直線位相のFIRフィルタのようだがレーコード製作時に直線位相フィルタを使っていたとは考え難い。自信はないが最小位相フィルタのほうが良さそうな気がする。

助手:まずはRIAAイコライザをググって特性をしらべます。グラフから読み取るか、表を探して….ちょうど良いのがありました。The Art of Analog Circuitsと言うサイトにイコライザの表がありました。うーん、この名前のサイトのデータでデジタルフィルタを作ってしまうのもどうかと思いますが気にしない事にします。ゲインが0dBを超えないようにして出来上がり。

fs=96000;
tap=4096-1;
fm=[
0,        -22;
10,       -19.743;
12.589,   -19.647;
15.849,   -19.5;
19.953,   -19.277;
25.119,   -18.946;
31.623,   -18.468;
39.811,   -17.808;
50.119,   -16.936;
63.096,   -15.844;
79.433,   -14.549;
100,      -13.088;
125.893,  -11.513;
158.489,  -9.877;
199.526,  -8.236;
251.189,  -6.645;
316.228,  -5.155;
398.107,  -3.810;
501.187,  -2.636;
630.957,  -1.636;
794.328,  -0.776;
1000,      0;
1258.925,  0.768;
1584.893,  1.606;
1995.262,  2.578;
2122.1,    2.867;
2511.896,  3.726;
3162.278,  5.062;
3981.072,  6.572;
5011.872,  8.227;
6309.573,  9.992;
7943.282,  11.836;
10000,     13.734;
12589.254, 15.669;
15848.932, 17.627;
19952.623, 19.6;
21221,     20.130;
25118.864, 21.583;
31622.777, 23.572;
39810.717, 25.565;
48000,     26.7
];

f=fm(:,1);
m=fm(:,2);
f1=f/fs*2;
m1=db2a(-m);
a=fir2(tap-1,f1,m1,(tap+1)*2);
[y a2]=rceps(a);
a2=a2*db2a(-20);
filterplot(a2,fs);

f02_1

f02_2

これでフィルタの出来上がりです。だけどこんなに高域を落としたらビット落ちでかなり音質劣化するんじゃないですか?

室長:フィルタのゲインをあげてしまえば良い。

助手:えー、以前に「デジタルフィルタはレベルオーバーすると歪んでしまうので0dBを超えないようにする」て言ったじゃないですか?

室長:それはその通りだ。だがそもそもレコードのイコライザがなぜ低域を持ち上げて高域を落としているかというと低域を高レベルでカッティング出来ないからだ。つまりこのイコライザは低域に大入力がないことが前提なのだ。したがって実際のレコードで低域がクリップしない程度のゲインを持たせてかまわないのだ。

助手:でもそれでは間違えてこのイコライザでCDをリッピングしたデータを再生すると大変なことになりますよ?

室長:昔もアンプのphono入力に間違って他の機器をつないでしまうという失敗があったな。だがPCオーディオだと格段に危険が増えてしまうのでちょっと工夫したほうが良さそうだな。まあそれは後回しにして他のカーブも作ってみよう。

2013年4月14日(2013年4月15日修正)

次ページへ

目次へ