【C4FM】デジタル信号復調 2 【π/4DQPSK】 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
各種測定器、SDR、ソフトウェアなどを最大限に利用してデジタル通信の復調にチャレンジする人たちが集うスレです。
コテハン推奨。
前スレ
【C4FM】デジタル信号復調【π/4DQPSK】
http://mint.2ch.net/test/read.cgi/radio/1434951910/ >>240
お疲れ様です!頂戴します。
インターリーブはなにか手がかりがあればいいかもしれませんね。 >>241
手がかりといえばこの辺....
ff490cb79d724098ec3329b2e6035da3e70dde16b4c3efe491e003f2d2247506
fc490eb79f724098ed332bb2e5035fa3e60ddf16b4c3eee490e002f2d3247706
上の2行(2フレーム)はFチャンの無音時のもので、これがエラー0でデコード出来るデインターリーブパターンを導き出せばOKのはずです
あと、デジタルMCAの無音時のフレーム(秘話解除後)が手に入れば、それと比較することで大きなヒントになり得ると思います
出来ることをガンガン進めたいですね! >>242
お疲れ様です!
こちらは味噌が有名な市ですが、無音時のビットパターンは同じでした。
数がないと何とも言えませんが、行政間でスクランブルコードに違いはなさそうですね。
ちなみに全体のエラー数ではなく、最初にエラーが見つかったインデックスも出力できれば解析がはかどるかなと思いますがいかがでしょうか? お!fc490eb79f724098ed332bb2e5035fa3e60ddf16b4c3eee490e002f2d3247706 出たわ
同じなんですね!
あ、ピーナッツ県です。 うちもたこやき府の受信できるので協力したいが、機材と知識が無いorz
協力者が増えれば手がかりも多くなると思うが、何すれば良いかわからん。 >>243
ありがとうございます
無音時パターンが同じ局はかなり多いですが、全く無い局もあって、???だったりします
エラー比較しているのはdeconvolution.cのfunc_f594()なので、この中に入れれば良さそうですね
次回はデバッグログ出力を入れてみたいと思います なんか上2つの無音パターンに似たパターンが連続で出たすよ、
真の無音ではなく無音に近い若干の音を含んでた感じかな?
TCH: fd494fb79e624098 ec332bb2e6135db3 aa0ddf97b4c3eee4 09e18da852246e05
TCH: ff494cb79d691f98 ac3329b2e6135db3 e70ddf16b482efe4 d0e001f2d22561dd
TCH: fc490ab79b634098 ed332bb2ec155bb3 e60ddf16b482eee4 94e002f2d3257706
TCH: ff494cb79d634098 ac3329b2e6125db3 e70dde16b483efe4 d1e003f2d22561dd
TCH: 6ae8c5023b66ee80 879ce573490cad20 e60ddf16b482eee4 d4e002f2d3257706
VOICEデータ眺めてるとたまに規則性に近いものを感じてくるときがあって面白いですね >>246
まずはSDR#で受信できる環境ですね
SDR#で使えるUSBワンセグチューナーを手に入れて下さい
(SDR#はあくまでワンセグチューナーのテスト用なので、実際の受信には使いません)
安物(FC0012使用)だと送料込み500円くらいですが、R820T2を使ったもののほうが個人的にはお勧めです >>244
ピーナッツ県だと、PICHの4フィールド目(12ビット)が00010000xxxxだったりしますか?
たぶんここが消防団体コード(非公開)だと踏んでいるのですが...
因みに山の上での受信をまとめると、
東京: 00010010xxxx、
神奈川: 00010011xxxx
埼玉: 00001110xxxxと00001111xxxx
茨城: 00001011xxxx
栃木: 00001100xxxx
群馬: 00001101xxxx
な感じに見えてます(一部例外あり)
>>248
その「ちょっと違う」というのもインターリーブの重要なヒントだったりします
>>250
それです! >>251
>>244>>248のピーナッツ県です。PICHの4フィールドですがまさに00010000xxxxでした。 >>252
ありがとうございます。この情報も全国的にまとめてみたいですね。
(大半がwikipediaの『消防本部一覧』の順に並んでいるみたいです) 些細ながら私も受信したうち気になったところの報告です、首都FIREの受令です
#S2: RICH: 11 011 001 110 000000 ** VOICE ** RCH/SACCH: 9001e TCH: fc490eb79f724098 ed332bb2e5035fa3 e60ddf16b4c3eee4 90e002f2d3247706
S6: RICH: 11 011 001 110 000000 ** VOICE ** RCH/SACCH: 99999 TCH: ff490cb79d724098 ec3329b2e6035da3 e70dde16b4c3efe4 91e003f2d2247506
S6: RICH: 11 011 001 110 000000 ** VOICE ** RCH/SACCH: b506f TCH: fc490eb79f724098 ed332bb2e5035fa3 e60ddf16b4c3eee4 90e002f2d3247706
S6: RICH: 11 011 001 110 000000 ** VOICE ** RCH/SACCH: 88503 TCH: ff490cb79d724098 ec3329b2e6035da3 e70dde16b4c3efe4 91e003f2d2247506
S6: RICH: 11 011 001 110 000000 ** VOICE ** RCH/SACCH: 07d70 TCH: fc490eb79f724098 ed332bb2e5035fa3 e60ddf16b4c3eee4 90e002f2d3247706
S6: RICH: 11 011 001 110 000000 ** VOICE ** RCH/SACCH: 3b10a TCH: 400b21ecb924e294 c87f238fb64075be e70dde16b4c3efe4 91e003f2d2247506
1〜5段目のTCHデータは>>242のコンフォートノイズパターンと一致ですが、
6段目、1・2ブロックは規則性から外れた内容。しかし3・4ブロックは>>242の規則パターン。
皆様の役に立てれば幸いです。 >>251
カナガワですが自分近くですと00010100xxxxですね・・・ 追記ですがPICHの第4ブロック、>>251と一致です。00010010xxxxでした。 >>250
自分が持ってるのは
X-tal 常温/温特±10PPM実装TV28Tv2DVB-T(R820T2)チューナー単品ブラック[RTL2832U+R820T2][DVB-T+DAB+FM][広帯域受信用]【USBコネクター換装品】
って奴だけど違いがよくわからない >>257
それ、よく見かけるけど、もう何言ってるのかよく解らない型番w TV28Tv2DVB-T(R820T2)
[RTL2832U+R820T2][DVB-T+DAB+
/(^q^)\ >>252 >>254 >>255 >>256
ありがとうございます
まとめますと
茨城: 00001011xxxx
栃木: 00001100xxxx
群馬: 00001101xxxx
埼玉: 00001110xxxx 00001111xxxx
千葉: 00010000xxxx
??: 00010001xxxx (たぶん千葉)
東京: 00010010xxxx
神奈川: 00010011xxxx 00010100xxxx
先頭8ビットが地域番号で、後ろ4ビットが団体番号というのが裏付けられそうです
(雑誌のおまけの周波数帳にちゃんと載せてくれれば買いますよ > 関係者) >>258
歓迎光臨!
不躾で何なんですが、何かちょっとしたことでもヒントを頂けましたら... 水色チューナーじゃないとダメなんだよな
黒色チューナーだとダメ >>263
団体コードは県防災にももちろん番号は振ってあるけど防災ヘリぐらいしか出てこないのね。で、各団体に振ってある番号だと、10進であれば、
団体CD 局番号
0001 0001
こんな感じで無線機ごとに振ってあります。
番号構成は24ビットのバイナリで、1〜12ビットが個別局番号、13〜22ビットが団体コード、残り2ビットは予備、となります。
雑魚ネタですまぬ。 >>268
大変ありがとうございます。団体コードは実質10bitでしたか...
また機会がありましたらご教示下さい。 >>268
貴殿におかれましては解析は順調ですか? >>269
MCELPボードの表は汎用チップなんだけどボードのウラにある管理番号と菱印のシールが貼ってあるチップが何者かなあと。 >>271
すでにチップ実物入手されているのですね。朗報待ってます、頑張ってください。 >>271
見ただけですw
持ってたらそのまま使いますよ >>249
機材そろってるけど、何かできることありますか? >>274
Fチャンが受信できる体制を整えて、幾らかのフレームを受信して溜めていただければ、
音声フレームの地域毎のエンコードの違いの有無(いまのところ数箇所では違いが無いようです)、
消防団体コードの全国調査、ほかには周波数ごとの発信局情報のまとめなどが出来ると考えられます。 >>250
次はデジタルMCAの中古実機を入手すること 役に立つかわからないですけど、首都FIREで無音データにそっくりな連続データがでましたよ
S6: RICH: 11 011 000 110 000000 ## IDLE ## RCH/SACCH: 88503 TCH: 4d0981d23630e6a9 f4475fd0fa215d87 e60ddd16b4c3ece4 93e003f2d0247706
S6: RICH: 11 011 101 000 000000 -- FREE -- RCH/SACCH: 88503 TCH: 4d0981d23630e6a9 f4475fd0fa215d87 e60ddd16b4c3ece4 93e003f2d0247706
VOICEではなくIDLEとFREEなの。スペースの関係上乗せてませんがIDLEでは上記のデータが数十行FREEで3行出ましたわ。
なぜかFREEのあとのVOICEデータがbinから変換取得できなかったんですけど、
いわゆる無音データと思われるfc490eb79f724098 ed332bb2e5035fa3 e60ddf16b4c3eee4 90e002f2d3247706
と似てるあと思ったんですよ。
・・・って気のせいですかね? 自己レスですが、なぜ>>278のようなデータが出てるか判明しました。
長いtxtなんで↓を参照下さい。
http://fast-uploader.com/file/7055423450219/ PASS:周波数
この通り、VOICEデータの最後の行で出たデータがそのままIDLEとFREEに通しで使われてるんですね。
さすがに用途まではわからないのですが・・・。
こういったデータ役に立ちますかね?皆様ご参考にどうぞ。 >>278 >>279
フレームデータの多数決により、エラーフリーのフレームデータとして使えると思います。
ビット化けが無いフレームというのは、計算する上でとても重要です... IDLEやFREEのフレームは、
(1) 全て0
(2) def0ef01f0120123 1234234534564567 56786789789a89ab 9abcabcdbcdecdef
(3) 有意なフレーム(VOICE,DATA,FACCH)の最後の行の繰り返し
の三パターンあるみたいです
メーカーのソフトウェアの実装の違いでしょうか? >>281
メーカーの違いなら各地域ごとの入札結果から使用しているメーカーを絞りこめる場合もあるので
照らし合わせてみると面白いかもしれませんね。 う〜ん、インタリーブ手強いなあ。早く解きたいぜ。規則性を見出したい。
まさかこれフレーム間同士でインタリーブされてないよね? 気分転換に河原を散歩してたら、誰かが捨てた共通仕様書落ちてたりしないかな… とりとめの無い駄文失礼します
無音部から有音部に移るところですが、TCHの前半分が無音で無いビット列、後ろ半分が無音と同じビット列になっているのが散見されます
逆に有音部から無音部へ移る時も、TCHの前半分が無音と同じビット列、後ろ半分が無音で無いビット列となっているのが同様に散見されます
というのは、前スレ624あたりに書いたのと重複するのですが、
CELPのほうの解析によって1フレーム138ビットの内訳が以下のようになっているのが分かりました(decode.cのfunc_c975のコメント参照)
8 + 12 + (8 + 16 + 7 + 5 + 16 + 7) + (8 + 16 + 7 + 5 + 16 + 7) = 138(bit)
カッコ外の20ビットはフレーム共通、1つ目のカッコ内が前半20ms、2つ目のカッコ内が後半20msのデータですが、
よって、後ろのカッコの59bitをエンコードしたものが前半128bitの一部に、前のカッコのほうは後半128ビットの一部に混ざらずに割り当てられていることが強く推察されます
これがインターリーブのヒントになるんじゃないかと踏んでいるのですが、頭がパンクしそうです
ご参考まで >>284
上記の推察と、「遅延:85ms以下」という情報をあわせると、フレーム間インターリーブはしていないんじゃないかと思ってますが確信は無いです >>287
138ビットの内訳での8 + 12のフレーム共通とは各フレームともに共通ということですか? >>288
共通仕様書は制御系インターフェース部分の解説はあってもその他の規格はARIB STD-T61がベースだった気がします。 ここのところコーデックのフレームの構成のこと話してるのになんでここで共通仕様の制御系インターフェース??
怪しいと思ってたけどこの人本物じゃないよね?MCELPボードも「ぼく見たことあるもん」って子供かよ
知らない人が無理して書こうとして墓穴掘ってるように見えるんだが >>291
スルーすればいいのに
貴重なレスに横槍入れて邪魔すんな >>291
トリップついてるから本人でしょ。
2ちゃんねるの事あまり知らないのに無理して書いて墓穴掘ってますなw >>296
書いちゃっていいのか?
G1Eさんは前スレでお客さんがどうこう書かれてるから納入業者の人か何かで
技術のことは政治的な理由か何かで一度も書かれたことはないけど
本当はエンジニアさんだから詳しいことをトボケて聞いたらポロっと答えてくれるかも
ってことでしょ?
>>291は書かないことと書けないことの違いがわかってないから論外だけどね
もうやめたほうがいいでしょ? >>240
失礼します
ファイルが消えてしまいましたので改めまして...
ttp://fast-uploader.com/file/7055574420140/
>>240と同じファイルですのでお持ちの方は改めてのダウンロードは不要です
ダウンロードパス・展開パスは以前と同じ >>125 の通りです >>289
そのフレーム内での共通のパラメータという意味で書きましたが、分かりづらいですよね...
別々のフレーム間では内容は異なると思います
余談
8 + 12 は (1+7) + (6+6) だったりしますが解析する力が尽きてます >>290
>>299
いろいろ申し訳ないです
実生活に面倒の及ばない範囲で、これからもお願いいたします... >>301
289です。なるほどそういうことでしたか。お答えありがとうございます。
無音以外も含めた各フレームでの共通部分なんかがあればいいんですがね。 >>301
古い資料ですがRCR STD-27の5.2.2はお読みになりましたか?
関係あるように見えますが、どうですか? >>302
前にメールいただきましたっけ?
共通仕様書には通信制御な内容(一斉通信とか個別通信とかグループ通信とか割込切断とかデータ通信とかそういうの)は書いてあっても、三菱CELPの音声符号化に関することは書いてないんです。
その点で考えれば、特定のコーデックを使ってない東消のほうが前スレ549さん向きかなと。 >>305
周回遅れで参加したもので話題に乗り遅れてしまい、メールは送っておりません
三菱CELPはハードウェアモジュール供給とのことで、内部を詳述したものは無いのかもしれませんね...
尚、AMBE+2のチップは既に手に入れております
M-CELPデコードに関しては、行き掛かり上、このままライフワークにしようかと思っております >>304
STD-27を確認しました。PSI-CELPですね
M-CELPもこれの改良発展系だったと思いますので、インターリーブやエラー訂正の考え方等、参考にしたいと思います
ありがとうございます こんばんは
毎度駄文を失礼します
CELPの送信側の解析をまとめました
(1) CELPモジュールから出力された138ビットは、18+23+43+54ビットとして別々に計算し、84+54ビットとして格納します(func_f82f)
(2) この84ビットの先頭18ビットと末尾23ビットを使ってパリティ演算(func_f5cb)をし、その結果を84ビットの前に4ビット、後ろに5ビット連結し、93ビットとします
(3) (2)の93ビットの後ろに0を8ビット付けた101ビットを、R=1/2, K=9の畳み込み演算をして、202ビットにします(func_f5ab)
(4) その202ビットと、(1)の54ビットを連結し、256ビットにします
(5) (4)をインターリーブします(func_f7ac)
(6) (5)を(1/2/4フレーム間)インターリーブします(func_f777/func_f721/func_f74c)
(1)にはconst.cの末尾にある "voice frame offset/voice frame bit position" が使われています
このテーブルがモジュールパラメータだとすると、このテーブルをFチャン仕様に再構成することが全てでは無いかと考えています
(以下妄想)
FチャンがM-CELPを採用するにあたって、何も実績が無いcodecをいきなり新規採用するとは考えにくいので、MCAデジタルでの実績を基に売り込んだんじゃ無いかな?
その際モジュール内部のロジックを弄っては元も子もないので、このテーブルと、フレーム間インターリーブ方式等の、モジュールパラメータだけを変更したか?
(妄想ここまで)
R=1/2, K=9の畳み込み演算というのが確定したので、総当り演算量はかなり減ったと思います
K=9というのが地獄ですが... >>309
k=9確定ってのは、>>309に書かれてる仮定が正しければってことですよね?
それとも他にソースありましたっけ >>310
まあ、仮定といえば仮定ですね
ファームのディスアセンブルリストからロジックを拾い出したものですので >>311
そもそもFがK=9確定っていう話はしてない感じですか? >>310
>>312
549さんが行っている解析はFチャンがこのデジタルMCAと同一コーディクであることは仮定(前スレなどから挙げられた資料からFと同一名のコーディク)ですが
そのデジタルMCAのファームを逆アセした結果このデジタルMCAでの畳み込みがK=9であることが確定したということでは? >>312 >>313
変な仮定をすると嵌るかもしれませんが、
何も仮定をしないと先に進まないので、これで進めています
Fの無線機?受令機?のファームが入手できれば別ですが(前スレには入手された方も...
人それぞれ色々なチャレンジがあっていいと思います >前スレなどから挙げられた資料からFと同一名のコーディク
マジすか!見落としてました
ホワイトニングないなら総当たりでいけるかもしれないですね! >>314
313ですが私もいろんな方向性があってそれぞれ解析をすすめられればいいと思います。
むしろそのほうが盛り上がりますし進展も早いかもしれませんし。
去年のFハンディのヤフオク騒動を思い出しました。。。 >>312 >>313
まあでも、convolution/deconvolutionに関しては、全然違うかも知れんとも思ってます
FチャンTCHのビット列を薄目を開けて眺めると、16ビット毎の周期性が見られるみたいなので >>249
そろえたら次はSDR#で受信できればいいんですか? >>318
SDR#で、274.000MHzを中心に受信してみてください
ちょっと太めの縦線が出ていれば受信できているはずです >>249
250です。国際郵便で時間かかりましたがブツ届きました。
お手数ですがデータの提供方法教示ください。余ってるwindowsマシンあります。
環境整ったら地元や実家など複数の消防波受信してきます。 >>321
青いヤツ(R820T2)を買われたと仮定してお話します
アンテナは274MHz周辺の受信できるものを、出来るだけ見晴らしの良いところに設置します
郊外ならお手軽にスリーブアンテナ等で良いでしょう
都会なら、アーバンノイズに強い『磁気ループアンテナ(スモールループアンテナ)』が効果を発揮します
付属のアンテナと基台は波長が合わないのであまり使い物にはならないです
基台の下側のシールを剥がすとケーブルが外せますので、MCXコネクタの付いたケーブルとして利用するのが良いと思います
次は、SDR#をインストールして既知の周波数の電波を受信してみてください
(SDR#の詳しい使い方は割愛します)
地元のFMラジオ等が良いと思います
ここでUSBドングルの周波数のズレを把握しておきます(歯車メニュー⇒Frequency correction(PPM))
暖まるまでは結構ズレますので、気長にやりましょう
ppm単位でだいたい合わせられたら終了です
次に、274MHz±1MHzを受信して、電波が出ている周波数を把握してください
Snap to Gridにチェックを入れ、Step Sizeに6.25kHzを指定すると分かりやすいです
見つかった周波数を全てメモしておきます
連続送信している局があればbestです
(一旦ここまで) >>322の続き
次に、>>223に書いてある環境を構築します
USBメモリは出来るだけ速いのが良いです。遅いヤツだとGUIが立ち上がるまでに無茶苦茶時間がかかってしまう場合があります
これはUSBメモリのせいだけではなく、PCとの相性もあるようです
USBメモリから起動したら、まずは端末を起動し、volk_profileコマンドを実行しておきます
volk_profileの結果はUSBメモリに記録されますので、一度きりで良いです
(PCを変えたりする場合は再度実行すべきですが)
次に本題のGRCを起動します。起動すると、既にt61.grcが読まれている状態になると思います
(なってなければ"Open an existing flow graph"→"t61.grc")
中段左にある"RTL-SDR source"をダブルクリックして、"Ch0: Freq Corr.(ppm)"に以前調べた誤差値を入れてOKを押します
その他は多分いじらなくてOKのはずです
次に、上のメニューバーの、緑の右三角を押すとt61.grcが実行されます
連続送信している周波数が見つかっていればそれを"Frequency"に入れます。無事コンスタが出れば、"Fine Tune"を弄って真っすぐにします
("Frequency"や"Fine Tune"はマウスホイールでも操作可能ですので簡単に微調整できると思います)
この状態で、"Monitor"タブに切り替えると、ビットマップが表示されていると思います
また、ホームディレクトリに"output.bin"というファイルが出来ています。それが受信データになります
受信の終了は、"pi/4 DQPSK demodulator"ウィンドウの左上の×をクリックします
GRC側のメニューの×をクリックすると、受信アプリの強制終了になってしまいますので好ましくありません
(一旦ここまで) >>323の続き
出来上がったoutput.binは、端末を起動して、コマンドを
100 < output.bin > output.t61
500 < output.t61 > output.txt
と実行すると、テキストファイル(漢字はShift-JIS)が出来ます
そのままUbuntu環境で見る場合は、"sudo apt-get nkf" をした上で、
nkf output.txt | less
等で見てみてください
Windows等で見たい方は、
sudo cp output.txt /cdrom
と実行すると、USBメモリのFAT32エリア(casper-rwがある場所)へ書き込めますので、
リブートしてWindows等を立ち上げ、USBメモリのルートディレクトリをチェックしてください
(毎回毎回scandiskが必要なのはUbuntu側の問題だと思いますがご愛嬌)
とりあえず以上です
駄文散文失礼しました こんばんは
>>309 の最後に書いたことですが、間違いでしたので撤回します...
R=1/2, K=9の最初と最後の状態遷移のビットパターンを正順逆順インターリーブ・オフセット有で全検索しましたが、見つかりませんでした...
TCHの前半後半の相関をハミング距離から求めようとしましたが、これも相関無しっぽいです
やはり前半後半が別々に符号化されている可能性が高いみたいです
69ビットを符号化して128ビットになる符号化パターンを探さねばなりませんが、仮にパンクチャが絡むとすると、大変難しいです >>326
多項式に触れられていませんがCDMA等と同一の(g0,g1)=(657, 435)octで検索されたのでしょうか
多項式が標準的なものではない可能性も残っていると考えておいて良いですか? >>327
IS-95 CDMAの多項式
G1(D) = 1 + D4 + D5 + D6 + D8
G2(D) = 1 + D + D3 + D5 + D6 + D7 + D8
を使用しました
多項式が違う可能性はあると思います やっとUbuntu環境立ち上がった
非UEFIなx64環境だとunebootinが不調でした
そしてT79はアイパターン見えたけどT69は見えない
というか普段電波出てない??
別PCのRTL-SDRで見てるとたまに出てる感じがする
ちなみに24県の?市 >>322
うちのあたりだと、6秒送信8秒停止を同期してる周波数が複数見つかった
通話のあるときだけ送信されてるわけじゃないんですね 毎度思い付きレベルでスミマセン
音声TCHって、フレーム間インターリーブしてるかも知れんなあと思い始めました
nフレームの前半とn+1フレームの後半に相関が見られる気がしませんか...? なかなか難儀なんでこれからデジタルMCAのTCHとデータ比較してみたいと思うんだが、先例でそもそものデジタルMCAのTCHから音声復号に成功した人いるすか? ubuntuの扱い方から始めないといけないな
output.binはできるけど、その後のファイルが0byteになってしまう ちゃんと周波数とコンスタとれてる?それだけでbinに落ちてくるっしょ? binはできるけど、txtにできないんです
ubuntuの操作ミスなんだろうけど
100
500
ってコマンドがググってもよくわからない やっとできたー
triple県 00100010XXXXでした
IDLE/FREEは>>281の2のパターン 受信実行中に、別ウィンドウで
tail -f output.bin | 100 | 500
とか起動すると、擬似リアルタイムデコード表示になります
(終了はコントロールC)
output.binに影響は無いのでお試しあれ F-D
ARIB STD-61(SCPC方式)
変調 4πシフトQPSK(9600bps)
音声コーデック M-CELP >>337
ありがとうございます
データらしきものが見えるようになりました
周波数設定がシビアなのか、RICHやRCH/SACCHっていうのが見えたり見えなかったり… ■ このスレッドは過去ログ倉庫に格納されています