デジタル変調の基本

space_escalator @ ウィキ内検索 / 「デジタル変調の基本」で検索した結果

検索 :
  • デジタル変調の基本
    ディジタル変調 時刻tに送信側から送りたいメッセージmi(ビット値1や0)を信号si(t)にマッピングさせること。 si(t)は基底関数φj(t)と実数係数sijをかけたjの積分で表せる。 基底関数はsinやcosin関数で表せる。 基底関数は直交していなければならない。
  • 非線形ダイナミクス
    はじめに 非線形ダイナミクスとは? 自然界のあらゆる現象は非線形的なふるまいを行う。 非線形ダイナミクスとはそのような動的で複雑な振る舞いをいい、これを解析することで様々なことに応用を行うことが可能となる。 カオス理論の情報通信への応用 CSMAにおけるバックオフ時間に注目。 現在ランダムアクセス方式を採用しているが、これをカオスにしてやるとなぜか性能がよくなる。 カオスCDMA カオス カオスの初期値鋭敏性を示した図。 赤の線は初期値が0.16の場合で緑の線は初期値が0.160000000001の場合を示している。 最初はほとんど同じ振る舞いをしているのに後は全く違う振る舞いをしている。 これはわずかな誤差がだんだん大きくなる(バタフライ効果)カオスの性質を示している。 CDMA 拡散符号 カオス同期 カオスCDMA OFDMA ディジタル変調 ディジ...
  • GNU Radio
    開発環境 開発環境 GNURadio 基礎 Pythonサンプルコード benchmark_tx.py benchmark_rx.py gr_scrambler_bb test_cdma_tx.py test_cdma_rx.py C++サンプルコード howto_interp_scrambler_cc howto_interp_gscrambler_cc gr_pn_correlator_ccの調査 howto_decim_gdescrambler_cc howto_correlation_sink_c howto_signal_adder_cc 課題と検討 拡散について USRP2の設定 RRCフィルタについて チップ同期について 符号 実はCDMAできてなかった!?急いでデバッグ! gmskについて bpskの実現に向けて USRP2送信波形の歪み USRP210 オシロスコー...
  • フーリエ変換
    sin,cosの和で不連続の波を表現できる。 フーリエ変換は不連続関数を三角関数で表すための変換公式。 それは不連続関数の周波数領域を示している。 デルタ関数 δ(t-t0):t=t0のときのみ無限大、あとはすべて0の関数 例)インパルスのフーリエ変換は無限の範囲で1をとる。 F(δ(t-t0)) = e-j2πft0 → 複素信号 また、インパルスの積分値は1をとる。 ∫δ(t-t0)dt = 1 逆フーリエはtをfに置き換えるだけ。 ここからが重要 δ(t-t0)関数に関数F(t)をかけて積分するとF(t0)となる。 ∫δ(t-t0)・F(t)dt = F(t0) これをサンプリング定理と呼ぶ。この証明はインパルスのフーリエ変換でも証明できる。 時間的に離散の場合、周波数領域は連続値の繰り返しになる。 時間的に連続の場合、周波数領域はインパルスがいくる...
  • RCCフィルタについて
    一次変調信号を拡散させた信号を伝送する際に、最適にRCCフィルタを設定しなければならない。 指定された帯域内で信号を送信するため、パルス整形フィルタでデータビットが成形される。 その信号はキャリア変調部と無線周波数(RF)変換部を通過してアンテナを通して空気中に送信される。 (参考資料 altera,fujitsu,慶応) W-CDMAではチャネライゼーションとスクランブルという拡散が行われており、 前者が同セル内でユーザ間を識別したり、マルチコード伝送(1ユーザが複数チャネルを使うこと?)を実現するのに使われている。 後者はセル間の識別に用いられている。 一般的にはチャネライゼーションに直行符号、スクランブルにGold符号が用いられている。 alteraの仕様書ではどちらの拡散もQPSK変調する前に行っている。 一方fujitsuの仕様書ではチャネライゼーションをQPS...
  • bpskの実現に向けて
    実装参考 bpsk同期検波器の要素 搬送波再生 受信信号からコスタスループ(PLLの一種)を用いて搬送波を再生する。 そして再生した搬送波を受信信号にかける。 LPF 高周波(搬送波周波数成分)を取り除く。 クロック再生及びそれによるシンボル判定 クロック再生器はディジタルPLLとタイミング検出器から構成される。 タイミング信号を抽出するために検波された波形の極性が変化する時点を検出。 この時点は雑音等で変化するので、PLLで平均化する。 BPSK復調参考:サーキットデザイン BPSK変調信号は同期検波方式で復調します。同期検波方式とは、受信信号と再生搬送波を変調器で乗算する方式です。再生搬送波は、送信側で使用した搬送波に対し周波数と位相が一致(同期)している必要があります。同期がとれていない再生搬送波で乗算すると、振幅レベルが変動したり信号極性が反転し、エラー...
  • プラグイン/人気商品一覧
    人気商品一覧 @wikiのwikiモードでは #price_list(カテゴリ名) と入力することで、あるカテゴリの売れ筋商品のリストを表示することができます。 カテゴリには以下のキーワードがご利用できます。 キーワード 表示される内容 ps3 PlayStation3 ps2 PlayStation3 psp PSP wii Wii xbox XBOX nds Nintendo DS desctop-pc デスクトップパソコン note-pc ノートパソコン mp3player デジタルオーディオプレイヤー kaden 家電 aircon エアコン camera カメラ game-toy ゲーム・おもちゃ全般 all 指定無し 空白の場合はランダムな商品が表示されます。 ※このプラグインは価格比較サイト@PRICEのデータを利用しています。 ...
  • Gnuradioの基本
    公式wikiのチュートリアルを見て分かったことをまとめて見た。 フローグラフの作成:Python SignalProcessingブロックの作成:C++
  • cdma
    Code Division Multiple Access(CDMA) CDMAとは 日本語で「符号分割多元接続方式」(複数ユーザに対する多元接続方法であり、同じ周波数帯域を用いて同時に通信が行える。) CDMAでは、ユーザごとに分離特性(直交性)の優れた符号を個別に割り当てることにより実現する。 メリット 他の多元接続方法と比べたメリットとして、同一周波数を用いたセルの面的配置が可能なので、周波数利用効率の面で優れている。 スペクトル拡散(SS Spread Spectrum)方式 情報信号系列に符号系列を掛け合わせることで、送信信号を広帯域な低電力密度の信号に変換する。 受信側では同じ符号系列を用いて逆拡散することにより、もとの情報信号を抽出する。 この逆拡散により、帯域内に発生するインパルス上の雑音や、多重反射波干渉(マルチパスフェージング)を除去できる。 ...
  • benchmark_tx.py
    パケット送信プログラムのサンプルコード。 受信に成功しやすいパラメータの例) ./benchmark_tx.py -f 2.45G -m dbpsk -s 10 -r 64k ペイロードデータ デフォルトではパケット番号+パケット番号下位1バイトのペイロードが作られる。 Pythonではバイト列を文字列として扱う data = (pkt_size - 2) * chr(pktno 0xff) #chr()は引数に対応するascii文字を返す。これを指定パケットサイズ-2個繋げてdataに格納。 payload = struct.pack( !H , pktno 0xffff) + data #パケット番号の下位2バイト(複数バイトなのでネットワークバイトオーダーを指定)とdataを繋げてpayload完成。 send_pkt(payload) パケットの作成:mod...
  • 直交周波数分割多元接続(OFDMA)
    次世代PHS規格であるXGPや次世代携帯電話のLTE、高速無線WiMAXで採用されている。 マルチキャリア変調 1つのキャリアを複数の直行したサブキャリアに分けて変調して多重化して送る。 直行性を崩す原因は 周波数オフセット(frequency offset) タイミングジッタ(timing jitter)
  • gmskについて
    gmsk.py 送信側 Gnuradioで用意されているgmskは以下のフローで構成される。 self.connect(self, self.nrz, self.gaussian_filter, self.fmmod, self) それぞれのノードのパラメータは以下のように設定されている。 ntaps = 4 * samples_per_symbol# up to 3 bits in filter at once sensitivity = (pi / 2) / samples_per_symbol# phase change per bit = pi / 2 # Turn it into NRZ data. self.nrz = gr.bytes_to_syms()//NRZ信号に変換 # Form Gaussian filter # Generate Gaussia...
  • そして終焉へ。。
    マルチユーザが動いた なぜできたのか? 複素拡散にした まず、複素拡散・逆拡散にして、その前後に位相差分変調を挿入。 位相差分変調にした理由 通信路で結構フェージングがあるせか、相関器が出力する値が虚部に結構いっていた。 シングルユーザだとほぼBER=20% だけどマルチユーザだと25%%くらい BERを下げる historyが設定されてなかった! On Tue, Dec 22, 2009 at 12 22 29PM +0800, zhi yan wrote Hi All, I am confused of the Set_history() which is a function of gr_block, what is the function of this function? thanks~~ It exists so t...
  • wikiの使い方
    まずはこちらをご覧ください。 @wikiの基本操作 用途別のオススメ機能紹介 @wikiの設定/管理 分からないことは? @wiki ご利用ガイド よくある質問 無料で会員登録できるSNS内の@wiki助け合いコミュニティ @wiki更新情報 @wikiへのお問合せフォーム 等をご活用ください @wiki助け合いコミュニティの掲示板スレッド一覧 #atfb_bbs_list その他お勧めサービスについて 大容量1G、PHP/CGI、MySQL、FTPが使える無料ホームページは@PAGES 無料ブログ作成は@WORDをご利用ください 2ch型の無料掲示板は@chsをご利用ください フォーラム型の無料掲示板は@bbをご利用ください お絵かき掲示板は@paintをご利用ください その他の無料掲示板は@bbsをご利用ください 無料ソーシャルプロフィールサービス @flabo(アットフラ...
  • 拡散について
    dbpskにおいて拡散は有効なのか? シミュレーションではbpskを用いるため、拡散は実数値のみを用いており、虚数値に関する拡散は行っていない。 しかし、dbpskで変調された信号には虚数軸にも情報を含むため、虚数部も拡散してやらないといけない! 以下、実部及び虚部を拡散させてCDMAのシミュレーションをした結果 入力信号1 = (3.0-1.0j, -2.0+1.0j, 1.0+3.0j) 入力信号2 = (2.0-3.0j, -1.0+2.0j, 2.0+1.0j) をそれぞれ系列長15と31のM系列で掛け合わせて足した信号を、入力信号1に対する逆拡散を行った結果。 root@omori-desktop /usr/share/gnuradio/examples/digital# python ./test_cdma_sim.py noutput_items = 2 i...
  • プラグイン/ニュース
    ニュース @wikiのwikiモードでは #news(興味のある単語) と入力することで、あるキーワードに関連するニュース一覧を表示することができます 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/17_174_ja.html たとえば、#news(wiki)と入力すると以下のように表示されます。 メトロイド ドレッド攻略Wiki - Gamerch(ゲーマチ) 【まおりゅう】最強パーティー編成とおすすめキャラ【転スラアプリ】 - Gamerch(ゲーマチ) 【グランサガ】リセマラ当たりランキング - グランサガ攻略wiki - Gamerch(ゲーマチ) Among Us攻略Wiki【アマングアス・アモングアス】 - Gamerch(ゲーマチ) マニュアル作成に便利な「画像編集」機能を提供開始! - ナレッジ共...
  • ついに1対1のCDMAが動いた。。
    動いた。。 なぜ動いたか GNURadio4.Xでアップデートされたクロックリカバリー回路を用いたらBERがほぼ0に(全ビットが反転してしまう場合を除く)。 マルチユーザはだめ? やった!これで論文書ける!と意気込み さて次はマルチユーザだ!とすぐさまやったが、うまく動かない。 信号が衝突してしまうせいか、全然同期がとれない。→無線で試したがやはりだめ。。 マルチユーザへの挑戦 なぜ動かないのか? 以下はoscilloscopeでキャプチャした画像だが、キャリア周波数がベースバンドよりもなぜか小さく(?)、 マルチユーザにしたときに減衰部分がかき消されてしまう。→検討違い。 このキャプチャによると、キャリアらしきものは1kHzくらい。 CDMAチップレートは97.5kchip/sec(=195sample/sec÷2sample/symbol)くらい。(つ...
  • benchmark_rx.py
    フロー Source → LPF → dbpsk demodulator → descrambler → access code correlator → Sink usrpソースの作成 self.u = usrp_options.create_usrp_source(options) self.u.set_decim(self._decim) options.bitrate, self._demod_class.bits_per_symbol(), options.samples_per_symbol, options.decim, adc_rate, から最適なdecimationを決定した後、この関数でそれをセットする。 LPFの作成 self.channel_filter = gr.fft_filter_ccc(sw_decim, chan_coeffs...
  • test_cdma_tx
    M系列のみを送信するプログラム。 gr.glfsr_source_b(int degree, bool repeat, int mask, int seed) M系列を発生させるブロック。出力はunsigned char(1 or 0) 以下、gr_glfsr_sourceブロックの定義 int gr_glfsr_source_b work ( int noutput_items, gr_vector_const_void_star input_items, gr_vector_void_star output_items ) ここでgr_vector_void_starはunsigned char型の配列になる。 これを直接mod_bpsk内のgr.packed_to_unpacked_bbに接続してはだめ! このブロックは入出力をunsigned...
  • メニュー
    メニュー トップページ プラグイン紹介 まとめサイト作成支援ツール メニュー メニュー2 リンク @wiki @wikiご利用ガイド 他のサービス 無料ホームページ作成 無料ブログ作成 2ch型掲示板レンタル 無料掲示板レンタル お絵かきレンタル 無料ソーシャルプロフ ここを編集
  • SVM
    LibSVM 様々な言語によりSVMを実現するライブラリを提供。 LibSVMの使い方 基本的にはsvm-train.exeで入力データに対して識別モデルを作成し、svm-predict.exeでそのモデルを使ってテスト入力データに対する識別をします。 LibSVMの動作確認テストデータ
  • howto_decim_gdescrambler_cc
    M系列を使った直接逆拡散ブロックを作る。 基本的にgr_pn_correlator_ccをいじって作った。 usage descrambler = howto.decim_gdescrambler_cc(degree, mask, seed) 実行結果 src_data = (3.0+1.0j, -1.0+1.0j, 1.0+3.0j) noutput_items = 2 in[0]=3+1j, out[0]=3+1j in[1]=-1+1j, out[1]=-1+1j noutput_items = 1 in[0]=1+3j, out[0]=1+3j ソースコード howto_decim_gdescrambler_cc.h howto_decim_gdescrambler_cc.cc test_decim_gdescrambler_cc.py
  • libpqを使ったサンプル
    接続できない場合 "stdafx.h" stdio.h stdlib.h string.h "libpq-fe.h" static void exit_nicely(PGconn *conn) { PQfinish(conn); exit(1); } int _tmain(int argc, _TCHAR* argv[]) { const char *conninfo; PGconn *conn; PGresult *res; int nFields, nrows; int i, j; char buff[1024]; /* データベースとの接続を確立する *...
  • SignalProcessingブロックの作成:C++
    Pythonとの切り分けは? From the Python point of view, GNU Radio provides a data flow abstraction. パイソンはデータフロウの概要を提供する。 From the high level point-of-view, infinite streams of data flow through the ports. At the C++ level, streams are dealt with in convenient sized pieces, represented as contiguous arrays of the underlying type. C++ブロックは潜在に潜む配列によって切り分けられたストリームが扱われる。 3つのファイルが必要 xxx.h, xxx.cc #新しいクラスを定義...
  • @wiki全体から「デジタル変調の基本」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索