【C4FM】デジタル信号復調 2 【π/4DQPSK】 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
各種測定器、SDR、ソフトウェアなどを最大限に利用してデジタル通信の復調にチャレンジする人たちが集うスレです。
コテハン推奨。
前スレ
【C4FM】デジタル信号復調【π/4DQPSK】
http://mint.2ch.net/test/read.cgi/radio/1434951910/ 中途報告です
(up205r57 2007/08/22を前提にした話です)
・プログラムは292aa〜2966bと2c68f〜2f9d6 前者は外部とのインタフェース、後者が本体
・データは1dfb0〜1f9f3 固定コードブックやμ-LAW変換テーブルなど
・ワークRAMは8kワード(16kB)程度使っている模様
・データフレームは、インターリーブとは別に3つのランダマイズパターンがある模様
・CELPモジュールのデコード入力は138bit単位、出力は320ワード単位(1単位40ms)
生フレームが138bitというのは、「無線脳の視点」さんのM-CELP情報とも合致しますね... >>116
すごいですね
ROMをどうやって読み出してるんだろう >>117
基板からROMを剥がして、ROMライタを使って読み取ってます メーカーとか出版社の特殊部隊に後は任せたい気分です... >>118
すごいですね! EF-6190が手元にあります。
TIのDSP,NECのチップ,パナのCPUらしきものなどが見えますが
ターゲットのROMがどれが教えていただけないでしょうか。 >>121
ROMはCPUやDSPの反対面にある、東芝のTC58FVT160ATG-70です
これにMPUとDSPの両方のファームが含まれています
DSPのファームの組み立て方は>>100を参照してください ついでに
FM-807F02とEF-6190のファームが同一なのは確認済みです
FM-857F02/EF-6195A(新型MCA)はファームも新型ですので、別途解析が必要ですが、まだやってません >>122
549さんありがとうございます、ありましたー
自分のには黄緑の〇シールがついてました。
これは敷居が高いなぁと思います。
何とかうまく行ったら20年前のC54xアセンブラに
登場してもらおうと思います。
行かなかったときは、またご相談させてください。 >>124
ROM外しは、お知り合いにハード屋さんが居られるようなら、お任せするのが良いでしょうね...
かなり悩んだのですが、ハードをお持ちの方なら問題なかろうと思い、セーブ領域を除いたファームをupしておきました
ダウンロードパスは、裏蓋に書かれている技術基準適合証明番号の先頭9桁で、展開パスは、裏蓋の一番上の行全体です
ttp://fast-uploader.com/file/7049362643618/
C54xアセンブラは今回の件で勉強を始めたところなので、経験者の方からのご助言を頂けるとありがたいです またまたついでに
FM-857F02(新型MCA)のファームをざっくり調べました。0x320000-0x34ffffがDSP部分で、組み立て方はEF-6190と同じです
M-CELPと思しき部分に関しては、外部インタフェース側は2関数増えていましたが、本体は全く変わらずでした >>125
121です。ありがとうございます。
ほんとに以心伝心ですね。.bin(2031616byte)受信できました。
当方はC54xDSKが手元にありますが全くシロウトですので
549さんのお役にはとても立てないです。。
お礼に昔遊んだときのデータをお送りします。
ttp://fast-uploader.com/file/7049392377638/
ダウンロードパスは、125でいただいた技術基準適合証明番号に
該当する全て(11桁)で、解凍パスはbinと同じです。
(ちょっとドキドキですので流出なしということで・・) >>121です。up205r57....20070822....(.=0x00)確認しました。596さんには脱帽です。
10年ぶりのCでフレーム構築してみます。 >>127
度々すみません。番号がたくさんありました。
10番目は125の6桁目のHEX読み-9、11番目は同様に-3でお願いします. >>127
頂きました。ありがとうございます...
蛇足で、組み立てた各ページのバイナリとページ1のHEXダンプ、ページ2,3のディスアセンブルしたものをupしました
ダウンロードパスは、プリント基板の"PbF"の下に書かれている、基板の品番の、末尾1文字を除いた7文字です
展開パスは>>125と同じです
ttp://fast-uploader.com/file/7049465101036/
どなたかが別CPUへ移植してくれることを期待してます... ピン数多いチップの取り外しはchip quikみたいな低融点はんだがオススメ
あるとないとでは難易度かなり違う >>133
お疲れ様です。
基盤の品番の末尾抜きましたがダウンロードできません。
R25の左に書いてある品番ですよね? >>135
基板表面の、DSPの下、CPUの左あたりの大きなシルク印刷です
R25は印刷されていませんので、それは別バージョンの基板かもしれません... すいません、旧スプリアス基準(証明番号の末尾が03)の無線機は別基板でした...
改めてダウンロードパスを変えてupしておきました
ttp://fast-uploader.com/file/7049508271637/
>>135
よろしければこちらもお試し下さい >133
121(=124=127≠135)です。資料いただきました、ありがとうございます。
昨日組み立てた3PAGEは同じ内容になりました。自分のCodeExplooerがWin95専用なので
先に進むのに時間かかりそうです。
127届いてよかったです(少し拡散してしまいました...)。
ご興味があれば別ad送りますのでご連絡ください(その時は何かキーワードいただけると
助かります。PAGE3のアドレスFFD5〜FFE3のFF除く8文字など)。 >>137
無事ダウンロードできました!
ありがとうございます!
お騒がせしました。 >>133
蛇足の蛇足で、CELPのデコードに必要な部分のみ切り出したものを作ってみました
ttp://fast-uploader.com/file/7050064635546/
ダウンロードパス、展開パスは>>125と同じです
ディスアセンブルリストも、中途半端ですがちょっと読みやすく整形してあります
申し訳ありませんが、MPU側の録音・再生部分の解析に篭りますのでDSP側は一旦手を離します... スレチかもしれないが、京急とか小田急のデジタル列車無線の仕様とコーデックって何ですかね?
京急のは三菱の提供だから改良型RL-CELPだったりするのかな? ん?141ですが、別のところで何もしてないですよ?
私鉄のデジタル列車無線もARIB規格に準拠してるんだろうけど、そこらへんどうなんだろうかな?と疑問を持っただけです。
小田急・京急・千葉モノ・TX・箱根登山と、色々仕様がありそうですが、いかんせんちょっと遠方住まいなので、それでもいずれ現地へ行って軽く目を通したらわかるかなとは思いますがコーデックはパッとわかりませんし汗
いずれにせよ142さんすいません、場を濁したようなのでこのスレから引っ込みます。 全然良くね
142が何考えてるか知らないがここは適切なスレだと思うよ
自分はSHUREのπ/4shiftQPSKで奮闘してる デジタル列車無線で既知のコーデックのやつってあるのかな〜、確かに気になる所。
DSDに突っ込んでパッと音声復調とはいかないとは思うが、既知のコーデックなら少しは希望も持てるよね。
京急・JR・千葉モノは三菱、小田急・箱根はNEC、TXは日立?
三菱系は推測に過ぎないけどCELP系でしょうかな、CELP系となるともうなんだかね(´・ω・`)
個人的にはかなり前からあるTX気になるわー。
>>143 戻っておいで、
>>142こそ引っ込んでよろし >>146
そうそう 送信機は仕方ないけど受信機たっけぇからさ…ソフトでどうにかなったらハードに移植したい >>148
すごい!!がんばって。
ワイヤレスマイクに手を出してる人を初めて見た。 デジタルワイヤレスマイクって、送受信機間でペアリングして暗号化かけてなかったっけ? おはよう。
とりあえず変調方式まとめた。
京急→PSK
JR→PSK
千葉モノ→PSK
小田急→PSK
箱根→FSK
TX→PSK ここに出入りしているすごい方々は、鉄道、消防、行政防災といろいろ解析をされていると思いますが、どれが一番難易度が低いのでしょう?関係ないレスですまん・・ >>153
仮にT102みたいな仕様ならもしかしたら?とか思っちゃうけど、そうは問屋が卸さないと思うぜ。
ホワイトニングコードとかがネックになったりとかね。
しかしながら僅かな希望を抱き試してみたい。でも箱根遠いよ〜ww >>155
職場から近いから、 (っていっても20キロくらいあるが)
今週どこかで試してくる。 >>153
箱根登山のNEC型デジタルはDV1で解読できるよ。
ただ、あそこは連続キャリアじゃなくてPTT押下したときだけ波が出るからできるらしい。
それなら、同じ方式の小田急線も行けそうだよね。
連続キャリアをどうにかすれば >>157
小田急→PSK
箱根→FSK
同じ方式って何情報? 箱根登山を試しにきたけど全然交信がない。
終電まで粘ってみる。 やったね!
願わくば、関西私鉄のデジタル化の際には、是非この方式で。
NECの営業力に期待。 ちなみに待ってる間、小田急も試したけど全然だめ。
PSKということで手動でT-DMにしても全く反応なかった。 >>162
希望の光だな
昔は体たらくRLがスクープすべきネタなんだが
もしかして金欠で受信機持ってないとかw 箱根登山の件お疲れ様でした。見事な収穫すね!
π/4QPSK・TDMAのもSDRの類で突破できればな〜、もしかしたら小田急とかのNEC式もAMBEでいけるかな⁉︎知識浅いけどちょっと頑張ってみようかな。
そういえばM-CELP解析陣の方々、その後はどうですか? 近所はJR(関西地区の東海道でデジタル化済み)しか走ってないが、何か調査に協力できそうな事があったらやります。 しばらくぶりに覗いてみたら賑やかになってきてますね!おらワクワクすっぞ!!
さて遅ばせながら、私もROMでいずにこれから近いうちにSDRでデジタル無線の解析を始めようと思っているんですが(特にπ/4DQPSK)
揃えるのはとりあえずTV28Tv2DVB-T(R820T)とSDR#やgnuradio・pi4qpsk_demod.grcといったところでいいんですかね? >>170 だいたいOK
青いチューナー(R820T2)のほうがS/N比が良いらしい fc0013の方が消費電力少なくてオススメ
前に検証記事見たけど820とSNは変わらず >>174
対象がないだろ。
防災固定系?
もしかして、多重無線? 現行で波及してる防行のデジタル同報系って16QAMじゃなかったっけ?音声デコードでつまづくだろうけど。
んでま、今後は色々な規格で同報系広がるんだね。
AMR-WB+とかいうコーデックは初めて知ったわ
https://www.jstage.jst.go.jp/article/bplus/9/3/9_187/_pdf >>176
AMR-WB+はソースが公開されているので、できる人には楽勝なはず。
ttp://www.3gpp.org/ftp/Specs/archive/26_series/26.273/26273-800.zip R820T2導入しました、アドバイス下さった方々ありがとうございました。なかなか手強そうな感触、慣れるのに時間ちょっとかかりそう(汗
前スレ549さん、恐縮ながらお願いがあるのですが、以前前スレ618でupされていたT79様式復調のソースファイル、同じく前スレ958にてupされてましたT61様式復調のファイルの2点を再upして頂けませんでしょうか?
お忙しいなか恐れ入りますが宜しくお願いいたします。 こんばんは、ご無沙汰しております
>>179
全部入りをupしておきましたのでご活用下さい
ttp://fast-uploader.com/file/7052474630207/
>>168
> そういえばM-CELP解析陣の方々、その後はどうですか?
頭が破裂しそうなのでお休み中です、すいません 本当にありがとうございます!
まだまだ慣れてないところもあるんですが、なんとか頑張ってみます。
(今夜泊まり勤務なので、明日DLさせていただきます)
M-CELPもなかなか一筋縄ではいかなさそうですよね。
期待に胸踊らせていますが、どうかお体を壊さないようご自愛下さいませ。ごゆっくりお休み下さい。 >>180
159さん
頑張ってください。
応援しています。 >>180
549さん
頑張ってください。
応援しています。 いかん、早速つまずいてしまった汗
[R82XX] PLL not locked!
と
RuntimeError: can't open file
この二点の対処方がわからない・・・
https://www.fastpic.jp/images.php?file=1428556530.jpg
誰か教えてください! t61.grcでも同様の症状・・・
もしや根本的にgnuradioとドングルとの接続未良なのかとおもいきや、
どこかで拾ったFM_Receiver_1ch_RTL-SDR.grcとやらは[R82XX] PLL not locked!と出るも
エラー無くWFM音声を再生。なんだこりゃ。 >>180 >>183
ありがとうございます
驚異の粘り腰でがんばります
>>184
"PLL not locked!" は無害ですので置いておいて...
エラーの本体は"output.bin: Permission denied"なので、GRCを起動したディレクトリの書込み許可が無いためと思われます
File Sinkのパスを変えるとどうでしょうか?
(WindowsのGRCはいろいろと不完全なので、前スレの579に書いた、USBメモリを使ったLinux(Ubuntu)のGRCを使うのが良いと思います) 早速ありがとうございます、パスを変えたらpi/4 DQPSK demodulatorでるようになりました!
まだコンスタが出るまでに達してなくてこれから調整を要しますが、引き続き頑張ってみます。 私も>>187さんのように昨今から私も復調に挑んでいるんですが、先日前スレ574さまがUPしてくれたファイルのうち、
500.cなどのソースコードと出力されたoutput.binのバイナリデータの扱い(使い方?)がわかりません。
お恥ずかしながら初歩的な質問なのかもしれませんが、どなたかご教示願います。 >>188
それはつまりC言語が読めないってこと? 大変申し訳ありません、Cは高校生の時に一時的にポケコンで少々かじっていた程度でして、
それ以降の知識はさっぱりで・・・
.cということですからコンパイルすると.exeが現れる、そこまではわかっているんですけどね
一応visual studio 2017やMingwとかはインストールしてあります。
ちなみに500.cをコンパイルして現れたa.exe、これをどうにかするんですか? ちなみにconstellationはとれてるんですけどなぜかビットイメージが出ない。
http://i.imgur.com/ZXbBf9x.jpg >>190
とりあえずコンパイルするのは100.cと500.cだけでOKです
コンパイルしたa.exeを各々100.exe, 500.exeにリネームしておいてください
100.exe < output.bin > output.t61 とすると、フレームを整列したファイルが出来ます
それを、 500.exe < output.t61 > output.txt とすると、デコードしたテキストになります
あとはテキストエディタとかで眺めてみてください
>>191
WindowsだとQWT5なのでビットマップが出ませんね...
実行時に"Warning QWT has been found..." 云々と出ているのがそれです
Windowsでの解決策は分かりません、すみません >>192
ありがとうございます、100.cをコンパイルした際に
100.c:229:1: warning: return type defaults to 'int' [-Wimplicit-int]
writebuf(const char *ptr, int len)
と、出たので????っとなりましたが、500.cは問題なくその後output.txtが出せるようになりました。
Warning QWT has been found出てました!やはりWINじゃだめなんですね。
Ubuntuの方でgrc動かすように今後準備してみますです。
>>193
恐れ入りますが、すでに持ってます。 >>194
すいません、228行目に int と書いてもらえれば警告は消えるはずです
手元のも直しておきます うーむ、T79なかなか解析がうまくいかんな〜。
報知情報も捕りたいけど、とりあえず音声フレームの抽出ができるまでなんとか頑張るぜ。もしかして出来てる人いる? すいません前スレ見たら相当数ヒント出てましたね汗
前スレ見ながら引き続き頑張ってみます。 大変ご無沙汰してます
今回は皆様のお力を拝借いたしたく、スレ汚し失礼します...
ttp://fast-uploader.com/file/7054376538497/
ダウンロードパス、展開パスは >>125 と同じです
コンパイル・リンクは出来ますが、たぶんバグがあって動きません
バグを見つけた方はここで教えていただけると幸いです
実験のたたき台として使っていただきたく思います
プログラムは相変わらず標準入出力を使っています
入力はTCHの中身(32バイト単位)、出力は16bit-PCMを想定しています >>199
もちろん自分でもデバッグは続けるつもりですが期待しないで下さい >>199
度々すみません
展開パスですが、「形」→「型」にして下さい
ミスばかりで申し訳ないです >>199
お疲れ様です!いただきます。
コンパイルはできましたがこの入力はどのような形式ですか? >>202
想定している入力は、T61の音声TCHフレームを一送信分まとめたものです。
SYNC-VOICE-FREEの形で送信された一連のフレームの、真ん中のVOICEのTCHデータをバイナリエディタを使って並べ、ファイルに書き出せば良いです。 >>203
ありがとうございます。
試してみます。 >>199
>>200
早速バグ見つけた orz
decode.cの474行目は 1 << 8 に括弧が要ります
同じくdecode.cの360行目は (a >> 16)をマクロのAHに換えねばダメです >>199
>>200
公開すると次々バグが見つかる法則 orz
init.cの81行目 誤:ar6 = mem[ar4]; 正:ar6 = ar4;
同じく182行目 誤:ar2 = mem[ar6]; 正:ar2 = ar6;
すんません >消防デジタル無線では団体コード(非公開)をシフトレジスタの初期値として利用しているようですね。
http://scanner-hobbyist.blog.jp/lite/archives/65135213/comments/1492890/?p=2
↑これは推測かも既出かもしれんがワシ知らなかったわ。今更ながら勉強になった。
あと、これも参考になった。現行のシステムに反映されてるかわからんけどかなり勉強になりましたよ↓
https://www.google.com/patents/WO2013042454A1?cl=ja デバッグの段階だけどうまくいった人いる?
上記以外のバグ箇所がわからん、おいらお手上げだ MCアクセスeの通話中のTCHを数秒分バイナリーファイルに書き出してみたものの
上げていただいたソースファイルをコンパイルするための環境もやり方もわからないのでもうお手上げです >>209
一緒に入ってるMakefileからできましたよ。 ご迷惑をおかけしております
いくつかバグを取ったものを再度上げておきます
ttp://fast-uploader.com/file/7054633888898/
ダウンロードパス、展開パスは毎度同じ >>125 の通りです
今回は「形」で間違いありません
一応変換は完走するようになりましたが、手元のデータではエラー訂正がダメで音声になりません
たぶんインターリーブかランダマイズの問題だと思いますが、ヒントが無いと難しいところです
>>209
コンパイルは、USBメモリを使ったGNU Radio(GRC)環境が用意できれば、その中でも可能です
Windowsなら、MinGWとかCygwinを使ってもコンパイル出来ると思います
コンパイル自体はmakeコマンド一発にしてあります お疲れ様です、コンパイル無事できました。
このconstがコードブックに値する物ですよね?ここまで分析が進んでいたとは!
残すは音声データの解析、私も頑張ってバイナリにらめっこしながらじっくりトライしてみますわ^ ^ >>212
> このconstがコードブックに値する物ですよね?
そのはずです(固定コードブック)
他にもいくつかの構造が含まれているようですが、まだ詳細はつかめていません
適応コードブックはmulti_session.cでセーブ/リストアしているものに含まれるはずですが、これもよく分かっていません
現時点ではdeconvolution.cのエラー訂正ロジックが不完全な動作をしているっぽいので、対になるエンコード側も調べ始めたところです
余談ですが、TIのCode Composer Studio(CCS)のV2にはこのDSPのシミュレータ(実機が無くても動くやつ)が含まれているみたいなので、持っている人は試して欲しいなぁ、なんて思ってます
あと、gDSPsimというプログラムも、PC上で動くシミュレータみたいなのですが、RedHat系のLinuxをターゲットにしているみたいで、まだ手が出せていません
勇者の方の挑戦をお待ちしてます! 209です、>>210 >>211 教示ありがとうございます。
まだ環境の準備ができてませんが週末に中古PCでも買おうと思います。 スレ汚しすみません
またまた重大なバグです orz
>>211
deconvolution.cの1131行目あたりに、brc = 63; を挿入して下さい
よろしくお願いします ■ このスレッドは過去ログ倉庫に格納されています