負の周波数
節電が流行っている。白熱電球をLEDに替えたり。思わず雑音大丈夫かって心配になるぞ。おいらの所では、 6mバンドが何時聞いても、S9+の雑音に埋め尽くされていて、トンツーはおろか音声は全く聞こえてこない。 何処かに、強力な雑音源が有るんだな。ARDFのチャンピオンを招聘したいぞ。
その他の節電で良く聞くのは、緑のカーテン。ゴーヤ育てましょう、そして日陰を作りましょうって奴。 みんな考える事は同じらしくて、苗がさっぱり手に入らないようだ。きゅうりとかへちまとか瓢箪って 発想はないんでしょうかね? テレビに毒されちゃって、自分で考える事放棄しちゃったかな。
おいらの所では、夏エアコン無しに挑戦するとかで、扇風機だけで我慢するぞ宣言が発令されました。 乗り切る武器は、扇風機だそうです。音のしない静かな扇風機を発注したらしい。おいらは団扇の方が 省電力になると思うんだけどね。
そして省エネの第2弾として、鍋を毛布で包む作戦が実施されている。煮物を作る時、鍋が沸騰したら、毛布 で包んでから、上下から座布団でサンドイッチにする。暖かい今なら、2時間ぐらいは優に高温を保って いるよ。そして第3弾は、保温ポットを考えているらしい。広告を盛んにチェックしてるよ。そんなの どうせすぐに飽きた殿堂入りするに決まっている。ガラクタ増やしてどうする!
ガラクタと言えば、各種のダイエット用設備もそうだな。この間、ソファーの裏から出てきた、ダンベル。 いつぞや、ダンベル・ダイエットだかに熱を上げて、500gと1kg用のダンベルを使ってたんだけど、効果が 無いと言って投げ出していたんだ。
折角なので、このダンベル使わしてもらうよ。団扇の動力源には疲れない腕が必要だからね。今から 腕を鍛えておかねば。
ぐらいがいいかな。無理せずにね。 そして、団扇で我慢が出来なくなったら、アルコール変調をかけるしかないか。
KX3 Transceiver
この間ちょっと書いた、KX3の広告がPreliminaryながら、 http://www.elecraft.com/に出てきた。
FT-817のH8と比べて、KX3には、High-performance 32-bit floating-point DSP が載ってるようだ。 半導体の進歩は目覚しいねぇ。こんな石が載るんだもん。SDR頑張ってるな。
負の周波数
とある人から、負の周波数とは? って、質問を受けた。即答出来なかった。 後で考えたら、そんなの、正があるから負が有るんだよ、と禅回答しとけば良かったかな。
ICの規格表でもICに流れる電流を正負で表し、正の電流は ICに流れ込む方向の電流(と決めた)。そうすると、負の電流は、IC内部から外部に向かって流れる電流 だよ。まあ、約束だな。ショックレーとその仲間達が昔々ベル研でトランジスタを発見したけど、トランジスタ に流れる電流の方向の定義はこの時になされたのかなあ? 更に、時代は下って石より球の方が先だけど、電流の方向ってどうなんだろ?調べてみたら面白いかも知れんな。
で、周波数はどうなん? 負の周波数ってことさら強調するけど、周波数カウンターで、正負の表示な んて、今まで一度も見た事ないぞ。ええ、こうなったらぐぐる様だな。
http://www.h4.dion.ne.jp/~ja5fp/nfreq.pdf
面白そうなのを引いてきた。そして、2chでも板が立っていたよ。
5 : 774ワット発電中さん : 04/09/24 21:32:39 ID:wBvpPEDH [2回発言] >>1 君のこの問題は無線通信分野の問題ではなく言葉の問題なのであると気付くべきであり、 負の個数のリンゴを思い浮かべるのが難しいのとかわらないのであると神様がおっしゃている。 神様は周波数に負の符号をつけた覚えは無いともおっしゃている。 但し、角速度には方向性を持たせ、正負の符号を付けておいたそうだ。 8 : 774ワット発電中さん : 04/09/24 23:10:42 ID:eXsz6XDI [1回発言] 時計方向に回転している、糸に繋いだ球を想像してみましょう。 1秒間に10回まわれば10Hz。 この回転している球を横から見てみると、球が上→下→上→下→・・・ というふうに上下運動しているように見えます。 この球の回転速度をだんだん下げていくと、やがて回転は止まり、 ついには逆回転していきます。これが負の周波数。 でも横から見ている分には、上→下→上→下→・・・という 上下運動をしているように見え、正の周波数のときと全く同じ 運動に見えます。負の周波数でも正の周波数でも、現実的には 区別できず全く同じように観測されるという事。 12 : 774ワット発電中さん : 04/09/26 18:31:07 ID:fhJg14H9 [1回発言] 解釈というより「負の周波数」はフーリェ変換上の表現なわけだが。。 実数関数F(w)で実数関数f(t) を表現する f(t)=∫F(w)exp(jwt) dw には負の周波数がいるわな。 13 : 774ワット発電中さん : 04/09/26 19:15:14 ID:a5KkPQcB [2回発言] >>12 負の周波数なんか要らんわな。負の角速度でええ。 フーリエ変換みたいな直感的でないものをいきなり持ち出したらアカン。 そのような人間性の欠如した表現が日本の技術離れを加速している。 17 : 774ワット発電中さん : 04/09/27 02:43:01 ID:Vt3hXnVk [2回発言] 数学で表現しようとしたとき便利じゃん だから実際の現象との対応は考えなくてよろし 複素数に拡張して考えるのと似てる 20 : 774ワット発電中さん : 04/09/27 23:46:51 ID:aptv+OrK [1回発言] あーそーか! 17の解釈でいいんでない? >複素数に拡張して考えるのと似てる ってのがヒントだね.私は理解できたよ. つまり,三角関数を指数関数で表現するときに現れるんだ. だから物理的な本質はないわけよ. みなさん良く考えてみて.
まあ、負の周波数なんてのは、便利だから虚数と言う想像の数を考えましょ、みたいな。 この便利な虚に乗っかって、携帯電話も地デジも出来上がってますって事で。。。
FFT
で、どうも、負の周波数とフーリエ変換は切っても切れない関係にあるな。そして、元を正すと三角関係 まで行き着いちゃう。オイラーも勉強してみよっかな、と、寒い親父ギャクをかましておこう。
折角の機会なので、関数とはなんだろう(ブルーバックス)なんて本を紐解いてみた。そしたら、三角関係の 所に、回転の向きをブラスマイナスで表そう、なんて言う項があった。それによると、
数学で回転を扱う時は、反時計回りを正の向きとする。時計回りなら角度は負になる。そして、x軸の正の 部分を0度とする。
これ、数学業界のISOですかね。
本を読むのも頭を使うので気晴らしに、FFTでぐぐっていたら、 小野測器 FFTアナライザーについて なんて言う、素敵なページに行き着いた。これ、面白い。手を動かしてみるかな。
グラフ付きの関数電卓っぽいのが欲しいねぇ。gaucheとかでもいいけど、ちょっとグラフを書くのに難が ある( めんどくさい) ので、Pythonで行きます。python shellに補助手続きを定義しておこうと思って aux.pyとしたんだけど。。。
Windows7では、auxって名前が拒否された。何で?と思ったらふと、com、lptなんてのも禁句だったぞと 思い出した。いまだにMSDOS時代を引きずっているとは難ちゅうOSだ。。Wintelグループのもう一方も、未だに 電卓上がりの石に増設をし続けて、顰蹙かってるしなあ。
嗚呼、余計な事に熱が入っちゃった。話しを元に戻して、ファイル名はワークベンチを略して、wb.pyぐらいで 良かろう。
from pylab import * from numpy import * from numpy.fft import * from math import * from cmath import phase r2d = lambda r: 180 * r / pi d2r = lambda d: d * pi / 180 th = lambda z: r2d(phase(z)) def wave(ca, sa, f=10, N=4096): wave = [] for n in range(N): wave.append(ca * cos(2 * pi * f * n / N) + sa * sin(2 * pi * f * n / N) ) return array(wave) def getr(a): return array([x.real for x in a]) def geti(a): return array([x.imag for x in a]) def gett(a): return array([th(x) for x in a])
今回はこれを、emacs上から使ってみる。C-x C-f wb.rb して、bufferに読み込んでおく。なんせ歳の 成果、どんな手続きを定義したか忘れちゃうんで。次に、M-x run-python すると、画面が割れて python shellが顔を出す。
from wb import * を叩きたいんだけど、いきなりそれをやっちゃうと、そんなの無いよと怒られるので、 一度、wb.py画面に移っておいて、おまじないの C-c C-l をやっておく。(多分この操作で、shell側 のワーキングディレクトリィが認知されるのだろう)
これで準備は整った。ちょっと使ってみる。
>>> w = wave(1, 1) >>> f = fft(w) >>> t = gett(f)
waveを使って、cosとsinの振幅が1、(周波数が10の4096ポイント分解能)の波形を生成、それをFFTして から、各周波数における偏角(位相)を求めてみた。ここまでの結果を確認してみると
>>> w array([ 1. , 1.01522155, 1.03020422, ..., 0.95293811, 0.96885461, 0.98454314]) >>> f array([ -1.66755498e-13 +0.00000000e+00j, -1.73095806e-13 +1.88249304e-14j, -2.80275803e-13 +4.97990538e-13j, ..., -1.88161629e-13 -3.45504603e-14j, -9.69288950e-14 +4.02115396e-13j, -1.73095806e-13 -1.88249304e-14j]) >>> t array([ 180. , 173.79322547, 119.37139706, ..., -169.59518689, 103.55246623, -173.79322547])
波形データは実数(の配列)、FFTの結果は複素数、位相は勿論実数となっている。周波数10のシングルトーン なので、そのあたりのスペクトラムを見る。
>>> f[9:12] array([ -8.45862065e-13 +7.64910350e-13j, 2.04800000e+03 -2.04800000e+03j, 7.47113525e-13 -8.30859544e-13j]) >>> t[9:12] array([ 137.87706231, -45. , -48.03794541])
スライスってなかなか便利だな。
>>> w = wave(2, 1) >>> f = fft(w) >>> t = gett(f) >>> t[10] -26.565051177078153 >>> r2d(atan(0.5)) 26.56505117707799
今度は、波形に含まれるcos,sinの振幅を変えてみた。FFTの結果から求めた位相と、振幅比率から求めた 位相を比べてみた。次は、いよいよ表示だな。
>>> plot(w) >>> show()
Windows上のemacsでやると、pythonが固まる。不思議なんで、ipythonやidleから実行すると、ちゃんと グラフが出てくる。と言う事は、emacsとの相性が悪いのかなあ。emacsは、 こちら経由で頂いたのを使っているんですけどね。 ウブの上だと難の問題もなく、plotって叩いた瞬間にグラフが出てきて、続けてplotすると、どんどんと 重ね合わせてくれるんで、非常に便利!
そうそう、ifftすると元に戻るんですね(但し、結果は複素数になる)。周波数ドメインとタイムドメインを行ったり来たりで、とっても 愉快。
今回のワークベンチには、まだまだ足りない物が多い。ツートーンジェネレータとか、三角波とか ノコギリ波等のファンクション・ジェネレータ、雑音発生器(ホワイト系、ピンク系)、フィルターも 欲しいな、欲を出して移相器、更に変復調器とかも。
言い出したら切りがないけど、シャー音とザー音から追加してくかな。 randomモジュール でいろいろ出来そうだけど、所詮計算された雑音だからなあ。 福島原発からもう?電力は取り出せませんが、放射線崩壊によるランダム乱数は十分過ぎるほど、供給 されています。困ったものだ能。
参考書
おいらの所にある数学関係の参考書は、上記で出てきた一冊だけだ。引越しの時に、もう数学とは縁が 無いと思って処分しちゃったのだ。でも、こうして三角関係とかに触れてみると、また勉強してみたく なったよ。で、ネットで探してみた。
PDFが公開されてて、後悔無しです。