2017年9月20日水曜日

ARMだった

ドトールから出たら、おじさんに「おい」と声をかけられ、見たら昔の仲間でした。同じ卒中仲間で暫く雑談義で不自由さを言い合い、特に用事もなく別れました。その時最近の趣味に言及しましたけど、名称が思いだせず(卒中の後遺症か老化の進行)棚の本の背表紙を見て、ARMと思いだしました。数年前に暇つぶしで夢中だったのですが。
右上はDIP8ピンのマイコンが乗ったトラ技のおまけ
右下は正規?の購入したもの
左がブレッドボードに乗ったトラ技のおまけ
どれもARMで動いている様です

2017年3月16日木曜日

またandroidへ

PC作業が一段落したのでgrooveをまたandroidへ
キーボードもマウスも無いので、数値入力は専用ページ(activity)を作りました。
最初enterで数値を読むようにしたけど、今一なので、一括ボタンで読むことにしました。
直接Javaで作ったのでTextViewとEditTextの表示位置を揃えたりが面倒でした。
試して困ったのが改行してしまうこと(当たり前)で
.setInputType(InputType.TYPE_CLASS_TEXT)を指定することで何とかなりました。

以下がタイトルと入力の一部です
String iname[] = {" freq[Hz]"," level[dB]"," dia[mm]"," stylus[μ]"," s-pres[μ]",""," anl"};
TextViewの設定は
            in[i] = new TextView(this);
            in[i].setText(iname[i]);
            in[i].setWidth(380);
            in[i].setHeight(150);
            in[i].setTextSize(20);
            in[i].setGravity(Gravity.CENTER | Gravity.LEFT);
            inpanel.addView(in[i]);
EditTextの設定は
         etx[i] =new EditText(this);
        etx[i].setHeight(150);
        etx[i].setTextSize(20);
        etx[i].setInputType(InputType.TYPE_CLASS_TEXT);
         pfpanel.addView(etx[i]);
       

.setHeight(150)と.setTextSize(20)を揃えることでTextViewとEditTextの高さを揃えます。
.setGravity(Gravity.CENTER | Gravity.LEFT);でEditTextとの位置を揃えます。
試して困ったのが改行してしまうこと(当たり前)で
.setInputType(InputType.TYPE_CLASS_TEXT)を指定することで何とかなりました。
setText(Double.toString(Groove.freq))でEditTextの表示を本体の変数から読みます。
本体の変数への入力は
Groove.freq =Double.parseDouble(etx[0].getText().toString());です




こんなんです

2017年3月2日木曜日

grooove+

FFTの形が凸凹していて気持ち悪、でウインドー設定を変えました。
凸凹はスッキリです。
元波を直接FFTするSWを付けました。
ノイズが出ているのがはっきりと分るようになりました。

2017年2月25日土曜日

groove追

groove(溝解析ソフト)にCDモードを追加しました。
CDボタンを押すと同一条件の溝解析と入れ替わります
44.1k16bitで変換したPCM波形をFFTします。
dB設定で分解能が変わります。
予想では、有効ビットが少なくなる小レベルで歪が増えると思いましたが、
高域で階段波形になっても、高調波が発生せず
でも、全域(ノイズ)が増えてきます。
4kHz0dBの溝解析です。歪が3.9%です。












4kHz0dBのPCM解析です。歪が0%です












16bitフルですが周波数が高いと階段になります。でも歪は0%です
そこで周波数を下げて100Hzにすると綺麗なSINになりました。でも歪あり。



















2017年2月17日金曜日

groove改善

android用に作ったのをPCに移植しました。
周波数、レベル、記録径、針径(r)、に針圧による凹みも加えました。
なんだか変な形だなと思い見直したら、案の定間違えてました。
44.1kのx32で計算してます。スマホでは遅いなと思いましたが
win10ではスカスカ動きます。
半径100、4KHz10dBの歪が10.9%と出ています。
針圧による沈み込みを加えました。ここでは0.2μに設定しました。

半径145(最外周)8KHz0dBでは歪6.7%になりますが

半径60(最内周)では酷い形です、針のrが溝底のrより大きいのが分ります。
歪30%と出ていますが、実際にはトレースできないでしょうね。
グリーンが原波形で、赤が沈み込み、青が針のrが有限で歪んだ波形です。
黒の線は針です。半円ですが波形を観やすくするため、縦横比を変えています。

2017年1月19日木曜日

groove

レコードがリバイバルしています。
古い資料を見ていたら溝再生の説明がありました。
再生針のRで歪が発生します。
5μの山をR10μの針で再生するんですから、そりゃ歪むよね。
で実際どれ位にと思い、これを作りました。
周波数とレベル等を設定すると、RIAAで記録補正したした正弦波を作ります。
その溝を丸針でトレースしたとき、その軌跡をFFTして歪を計算します。

以下が1KHz0dBを10μの針でトレースしたときの絵です。
青線がトレースの軌跡、グレーの半丸が針、赤がFFT結果。
2Kに少し凸がありますが歪は0.4%です。













今度は8kHz10dBにしました。歪は13.3%です。
緑が溝波形でグレーの半丸の針が溝にはまっている感じです。
1kの時は緑と重なっていた青線が歪んでいるのが分ります。
この辺が限界でしょう。



今度は内周(半径12cm)に移動します。
溝よりも針が大きいので再生不能のはずです。
再生できても、歪は53%となります。
黄色が付加されて緑が青になります。














上りと下りでは青の山高が違っています。
44.1のx4サンプリングではこれくらいみたいです。
これをさらにx8すると双コブの高さが揃ってきますが、計算が遅くなりました。