タグ付けされた質問 「demodulation」

復調とは、変調された搬送波から元の情報伝達信号を抽出することです。

2
生のWAVからバイナリ磁気ストリップカードデータを抽出する
iPhoneの磁気ストリップカードリーダーからバイナリデータを抽出するという難しい課題に直面しています。これは、カードの磁化がどのように見えるかです: ソース カードをスワイプしたときにiPhoneが受け取る.WAVは次のとおりです(期待をかけすぎないでください、これはボーナスポイントカードです;))。ちなみに、異なる速度での3回のスワイプです。これは、使用しているスワイプの未加工のSInt16ダンプです。 ここで誰かがやったようです が、実際にキャプチャしたデータを処理するのは特に簡単ではありません。 読み取りは「ゼロ」の不定数で開始(および終了)します-波は2つのZEROSが収集された後にのみ繰り返されることに注意してください。これはNSに続いてSNを表します。 (3行のそれぞれが私が別のカードをスワイプすることを表していることに注意してください。この画像の一番下のカードは15歳ですので、このショットでは見えない場所で磁場が明らかに著しく低下しています) これにより、アルゴリズムはクロックティックを確認できます。 クロックティックごとに磁場が反転します。 また、バイナリ1の場合、ティックの中央で磁場が正確に反転します。 シーケンスは常に1101 + 0(パリティビット)開始センチネルで始まります。上記のグラフの3つの測定値すべてでこれを選択できます。これは、質問の冒頭でリンクしたcosmodroの記事でより明確に示されています。 磁気劣化の例を次に示します(下のカードの読み取りについてさらに詳しく説明します)。 この波形を対応するバイナリシーケンスに変換する賢明な方法を見つけようとしています。 詳細を説明するPDFを1つ見つけましたが、使用しているアルゴリズムがわかりません。 このPDFには興味深い画像が1つ含まれています。 この図のように赤と青の線を抽出できれば、どちらかを使用してデータを抽出できますが、構造の背後にあるロジックを理解することはできません。 これが私の質問です:バイナリシーケンスを抽出するにはどうすればよいですか? PS。スワイプ速度は一定にならないことに注意してください。そのため、クロックが決定されたら、1つのティックから次のティックに常に調整する必要があります。 PPS。自己相関はティックのペアをキャッチしますか?(ダニがNS SNを代替するように見える...) 編集(12年6月):これについて多くの助けが必要でしたが、最終的にはしっかりした読者(http://www.magstripedecoder.com/)を完成させました。助けてくれたみんなありがとう!IRCのefnetチャンネルで#musicdspをお勧めします。数学に慣れるのに挑戦するのに十分な熱心な人なら、本当に難しいです!

3
ソフトウェアでAFSK信号を復調する方法
オーディオチャネル(スピーカー/マイク)を介して、あるデバイスから別のデバイスにバイナリデータを送信しようとしています。パケットラジオのように、と2つの周波数および AFSK(Audio Frequency Shift Keying)を使用し。私はRubyで少し遊んでみましたが、私の最初の実装は古典的なインコヒーレントな復調器を単純に模倣したもので、今のところうまくいきます。1200 ボー1200 ボー1200 \text{ Baud}fm a r k= 1200 Hzfmark=1200 Hzf_{mark} = 1200 \text{ Hz}fs p a c e= 2200 Hzfspace=2200 Hzf_{space} = 2200 \text{ Hz} 問題は、パフォーマンスを懸念している現在のソリューションが遅すぎるモバイルプラットフォームにこれを移植しようとしていることです。ソフトウェアでAFSKを復調する方法は多数あります。 スライド式DFT(FFT) スライド式ゲルツェルフィルター フェーズロックループ ゼロクロッシング どのように行くのでしょうか?選択できるオプションが多すぎます。さらに多くのオプションが利用可能であると確信しています。おそらく、上記で名前を挙げたものよりも優れたソリューションが存在するのでしょうか?誰かが私のためにコード例を持っていますか?心配です パフォーマンス(iOSまたはAndroidデバイスなどのモバイルプラットフォームで実行する必要があります) 安定性(ある程度のノイズを処理できるはずです) 提案やヒントは大歓迎です!
14 dft  demodulation  fsk 

2
DSP技術を使用したSNRの改善
キャリア周波数のない光OOK(キーリングのオン)システムを構築しています。[ただし、シンボル間にガードタイムがあるため、連続した「1」メッセージはDCとは対照的にパルス列になります。画像を参照してください]。基本的に、シグナルの存在は1を示し、シグナルの欠如はゼロを示します。レシーバーとトランスミッターを同期する正確なクロックがあります。システムは低いSNRで動作し、DSP技術を使用してSNRを改善するのが好きです。 少し質問があります: ハードウェアで選択的なサンプリングを行います。言い換えると、チャネルを連続的にサンプリングするのではなく、信号を見る確率が最大の場合にのみサンプリングします(つまり、これは光パルスであり、ADCが最後にサンプリングするようにADCの時間を計りますアナログチェーン全体が安定していることがわかっているパルスの)。画像をご覧ください。 当然、この図面にはノイズは表示されませんが、そこにあります。これは特に低信号システムであり、主なノイズ源はショットノイズ、ジョンソンノイズ、およびアンプの内部ノイズです。(光学システムなので、Sun以外の干渉物はありません)。私のノイズの観測は、すべての周波数で類似していることを示しています。(少なくともスコープに表示されるもの) ソフトウェアで単純なしきい値比較を使用して、データが1かゼロかを判断します。もっと良い方法はありますか?私はいくつかの選択肢を考えましたが、専門家からの連絡をお待ちしています。 これまでのところ、次のオプションを検討しました。 連続ADCを実行し、立ち上がり時に統合を試みます:利点については完全にはわかりません(他の利点があるかもしれませんが、わかりません)。 ソフトウェアの一致フィルター:数学を本当に理解していないが、私が読んだものに基づいて、可能性 ガード時間中にサンプリングし、これを信号ADC値から減算します(これにより、さらに詳細な情報が得られる場合がありますが、確かではありません。ガード時間はノイズ測定になります) ハードウェアを同期デコーダーに変更すると、コストがかかり、時間がかかり、データレートが高速であり、同期復調器を取得すると、マルチMHz搬送周波数システムを構築する必要があるため、高価なボードになるため、うまく機能しない可能性があります。

1
ソフトウェアでキャリア位相回復を実行する方法は?
ソフトウェアでBPSK信号の位相を回復するためのオプションは何ですか?オンラインで見つけることができる唯一のリソースには回路図が含まれています。アナログ回路に不慣れな人々にこれを説明しようとする人は誰もいないようです。 理論上、キャリアリカバリがどのように機能するかについての説明が必要です。また、擬似コードまたはコード例も気に入っています。

2
OFDM信号を復調する方法
私は、BPSK変調された6つのキャリア(またはトーン)とチューニングを支援するパイロットトーンで構成されるOFDM信号のデコードを検討しています。私がOFDMを使ったのはこれが初めてなので、これを正しい方法で行っているかどうかを知る必要があります。 私がそれをデコードすることを考えている方法は、パイロットトーンを使用して(レシーバーがわずかに調整されていない可能性があるため)キャリブレーションし、次に6つのバンドパスフィルターを使用して各キャリアを分離し、通常の方法で復調します。誰もがこれで何か問題を見ることができますか?または、これを行うより良い方法を提案できますか?

1
FSK復調、ビットタイミング回復
私は現在、音響FSK変調と復調を実装しています。私は信号処理の専門家ではないので、ビットタイミングの回復について助けていただければ幸いです。現在、各トーンに対して2つの整合フィルターを使用して復調器を実装しています(非コヒーレント検出の場合、位相の差はです)。基本的に、各フィルターの出力は、振幅の異なるピークです。2つの質問があります。90∘90∘90^{\circ} ビットタイミング回復を実行するにはどうすればよいですか? パケット同期プリアンブル(チャープ、バーカーコード、ゴールデンコードなど)には何をお勧めしますか? 私はガードナーアルゴリズムをグーグルアウトしましたが、それが適用可能かどうか、またその方法はわかりません。現在、サウンドカードを使用してビットレート800 bpsの2つの周波数で作業していると考えてください。

2
DQPSKをソフトデコードする方法
シンボルと前のシンボルのコンスタレーション位置のドット積をとることで、D-BPSKをソフトデコードできました。結果が1以上の場合、シンボルの位相は変更されておらず、ビットはゼロです。結果が<= -1の場合、位相はシフトしており、結果は1です。-1と1の間の結果は、ソフト0またはソフト1です。 D-QPSKで同じことを行う方法がわかりません。フェーズのみを使用することもできますが、これにより、ソフトデコーダーに役立つ可能性のある多くの情報が破棄されます。 このペーパーでは、その方法を説明し、式(10)を示します。 b1=Re{sns∗n−1},b2=Im{sns∗n−1}b1=Re{snsn−1∗},b2=Im{snsn−1∗}b_1 = \mathrm{Re}\{s_n s^*_{n-1}\}, b_2 = \mathrm{Im}\{s_n s^*_{n-1}\} しかし、表記がわかりません*。上に浮かぶとはどういう意味ですか?複素数を掛けて実数部と虚数部をとるだけでうまくいきませんでした。 コンスタレーションは回転することができるので、2つの軸をどのように分離することができますか?

2
勾配ベースのハフ変換を実装する方法
私はエッジ検出にハフ変換を使用しようとしています、そして基礎として勾配画像を使用したいと思います。 私はこれまでやっていること、画像所与のIサイズの[M,N]とその偏導関数gx、gy、各画素の勾配角度を計算することですthetas = atan(gy(x,y) ./ gx。同様に、勾配の大きさをとして計算しmagnitudes = sqrt(gx.^2+gy.^2)ます。 ハフ変換を作成するには、次のMATLABコードを使用します。 max_rho = ceil(sqrt(M^2 + N^2)); hough = zeros(2*max_rho, 101); for x=1:M for y=1:N theta = thetas(x,y); rho = x*cos(theta) + y*sin(theta); rho_idx = round(rho)+max_rho; theta_idx = floor((theta + pi/2) / pi * 100) + 1; hough(rho_idx, theta_idx) = hough(rho_idx, theta_idx) + …

1
直交復調システムのIQプレーンにおけるアナログ信号対雑音比と信号対雑音比の関係は何ですか?
LO周波数付近のアナログノイズと、IQ復調後のIQ平面にあるポイントの統計値との定量的な関係を計算します。質問を完全に理解するために、最初にIQ復調システムの詳細を説明します。 IQ復調システム IQミキサーは、高周波で信号を取得し、信号をより低い周波数にすることで、より簡単に処理できるようにします。図1に、IQミキサーの回路図を示します。局部発振器(LO)信号cos(Ωtcos⁡(Ωt\cos(\Omega t)を使用して、RF信号をより低い周波数にミキシングします。 図1:完全な信号処理チェーン。マイクロ波周波数信号(およびノイズ)は、RFポートを介してIQミキサーに入ります。この信号は、局部発振器(LO)と混合され、中間周波数信号およびに変換されます。次に、中間周波数信号をフィルタリングして、残りの高周波成分(テキストを参照)を削除し、デジタルサンプリングします。各周波数成分の振幅と位相の検出は、デジタルロジックの離散フーリエ変換を介して行われます。IIIQQQ コヒーレント信号-DCケース 入力RF信号があると仮定します。次に、および信号は これらの信号をローパスフィルターに通して項 を削除し、 ご覧のとおり、dcとMcos(Ωt+ϕ)Mcos⁡(Ωt+ϕ)M \cos(\Omega t + \phi)IIIQQQI(t)Q(t)=M2cos(ϕ)+M2cos(2Ωt+ϕ)=−M2sin(ϕ)−M2sin(2Ωt+ϕ).I(t)=M2cos⁡(ϕ)+M2cos⁡(2Ωt+ϕ)Q(t)=−M2sin⁡(ϕ)−M2sin⁡(2Ωt+ϕ).\begin{align} I(t) &= \frac{M}{2} \cos(\phi) + \frac{M}{2} \cos(2\Omega t + \phi) \\ Q(t) &= -\frac{M}{2} \sin(\phi) - \frac{M}{2} \sin(2\Omega t + \phi) \, . \end{align}2Ω2Ω2 \OmegaIF(t)QF(t)=M2cos(ϕ)=−M2sin(ϕ).IF(t)=M2cos⁡(ϕ)QF(t)=−M2sin⁡(ϕ).\begin{align} I_F(t) &= \frac{M}{2} \cos(\phi) \\ Q_F(t) &= -\frac{M}{2} \sin(\phi) \, . …

1
PCサウンドカードの出力を介してデジタルデータを送信するのに適したデジタル変調方式
アクセス可能な出力周辺機器がオーディオインターフェイスのみであるコンピュータシステムから、以上でデータストリームを出力する必要があります。このインタフェースは、合理的なスペック、有する96 kHzのサンプリングレートと24 - ビット分解能が、出力段は、AC結合です。使用できる出力チャネルは1つだけです。良い仮定は、それが− 1 dB未満の減衰で4 Hzから40 kHzの通過帯域を持つバンドパスフィルターのように動作することです。また、SNR は90 dBです。エミッタに他の複雑さの制約はありません。40 kbit / s40 kbit/s40\textrm{ kbit/s}96 kHz96 kHz96\textrm{ kHz}242424ビットbit\textrm{bit}4 Hz4 Hz4\textrm{ Hz}40 kHz40 kHz40\textrm{ kHz}−1 dB−1 dB-1\textrm{ dB}90 dB90 dB90\textrm{ dB} エミッターとレシーバーを接続しているケーブルに追加のノイズ/減衰はありません。 レシーバーは、 Cortex-M3 MCUを備えた組み込みシステムです。必要に応じて、同様のオーディオ取得パフォーマンスを想定できます。追加の専用復調チップ(このような低周波数にそのようなものが存在する場合)はオプションになる可能性があります。120 MHz120 MHz120\textrm{ MHz} この状況にはどのデジタル変調方式が適していますか? ホイールの再発明を妨げるコードライブラリ(ソフトウェア定義のラジオライブラリ?)はすでにありますか? 私がインスピレーションを探すことができる同様の制約を持つ既存のアプリケーションはありますか?

1
BPSK信号の復調用にサンプリングする場所を決定する方法は?
単純なBPSK復調器があります。非常に単純に、信号が入り、1つはIに、もう1つはQに分割されます。 Iブランチはキャリアの正弦波と混合され、Qブランチはキャリアの余弦波と混合されます。 次に、各出力は、マッチドフィルター(この場合は、ルートレイズドコサインで、送信されたビットを最初にパルス整形したもの)とたたみ込まれます。 ここで、両方の出力を組み合わせて、両方の大きさ(I ^ 2 + Q ^ 2)を取ると、エンベロープが得られます。 ここから、ピークを探し、それらのインデックスを選択します。 次に、(4)で取得したものと同じインデックスを使用し、それらの同じインデックスでIとQをサンプリングします。これで、複雑なソフトビット値があり、位相または周波数のオフセットを修正でき、そこから難しい決定を下すことができます。(私は後処理の贅沢があります)。 この手法は、SNRが中程度の場合にうまく機能しました。問題は、SNR(およびマルチパス)が低いため、箇条書き(4)の実行方法がわからないことです。問題は、1ビットに対応するエンベロープの1つのピークではなく、複数のピークがあり、「ピークピッキング」が機能しないため、選択できる数が多いためです。この問題はどのように軽減されますか?「ビット」がどこにあるのかわからなければ前進できないので、これはボトルネックのようです。何かご意見は? どんな助けもありがたいです、数学は良いですが、答えは前もってもっとpesudo-code / concept指向であるようにお願いします。ありがとう! 編集:Dilipからのフィードバックのおかげで、信号があり信号がない場合にエンベロープ内の「エネルギー」を明確に見ることができることも追加する必要があります。(つまり、私の信号が到着する前に)、これは私が同期/復調できるはずであり、それだけでSNRの問題ではないことを信じるようにします...

2
キャリア位相が不明なQAMコンスタレーションスライサー
画像に示されているように、位相回転のために16QAMコンスタレーションがずれています。この場合、回転量は約であることがわかりますが、これは一般的には当てはまりません。実世界のデータの場合、位相はゆっくり変化する時間関数になる可能性があるため、一定の修正係数を適用するだけでは不十分です。θ = π/ 4θ=π/4\theta = \pi/4θ (t )θ(t)\theta(t) 対称性を持つコンスタレーションによる位相のあいまいさの問題を解決する差分マッピングスキームを知っていますが、がスライスを実行することを知っている必要があります。π/ 2π/2\pi/2θθ\theta 提案された解決策の1つは、受信したコンスタレーションポイントを最も近いQAMコンスタレーションポイントにマッピングし、その結果をフェーズロックループに与えることですが、が時間とともに変化する場合にこれがどのように実行されるかは明確ではありません。θθ\theta シンボルを復元するためにどのようなテクニックがありますか?私はすでにフィードバックループに基づいてさまざまなキャリア回復スキームを試してみましたが、成功していません。また、フェーズを見つける必要を回避できる意思決定指向のアプローチに興味があります。

5
角度平均
私は、大部分は機能する802.11aの復調に取り組んでいますが、断続的なエラーを引き起こすバグがあります。特性評価はまだ完了していませんが、イコライザーブロックに問題があるようです。 802.11aはOFDM信号であり、各OFDMシンボルには64のサブチャネルがあります。それらのサブチャネルのうちの4つは、サブチャネル7、21、-7、および-21でのパイロット(既知のデータ)です。パイロットを使用して、残りのキャリアオフセット(パイロットでは一定の位相オフセットとして表示されます)とタイミングオフセット(ライナーオフセットとして表示されます)を修正します。つまり、位相オフセットはビン0で0であり、ビン0)。 単純な平均化を行ってキャリアオフセット位相を検出し、平均化の前にいくつかの簡単な操作を行って時間位相オフセットを検出します(たとえば、チャネル-21を-1で乗算、チャネル-7を-3で乗算、チャネル7を3で乗算)。不必要な詳細は意図的に省いていますが、これが私がやっていることの要点になれば幸いです。 私の問題は、角度が円形であるため、特定の値に対して、平均化が壊滅的な方法で誤動作する可能性があることです。たとえば、平均化および想像してみてください。答えがまたはであることをグラフィカルに表示するのは簡単ですが、標準の平均化式では0という答えが得られます。これは文字通り正しい答えの反対です。−45π−45π-\frac{4}{5}\pi45π45π\frac{4}{5}\pi−π−π-\piππ\pi 角度を平均化する適切な方法は何ですか? 編集:私がやろうとしていることを少し明確にしてみます。FFTの出力で異なる形で現れる2つの「エラー状態」があります。1つはキャリアオフセットで、一定の位相オフセットとして現れます。 この場合、Johnが示唆したように、角度ではなくデカルトパイロット値を平均化することは良い考えです。ありがとうございました。 2番目のエラー条件はタイミングオフセットで、線形位相オフセットとして現れます。時間オフセットが大きいほど、位相オフセットの傾きが大きくなります。レシーバーが前方または後方にあるかどうかに応じて、勾配が負になることもあります。 これは厳密に線形(原点がゼロを通過する)なので、理論的には1つのパイロットからのみ勾配を計算できます。最初にキャリアオフセット位相オフセット(つまり、エラー条件#1)を計算し、それを差し引いてから、4つのうちのいずれかを使用して勾配を計算します。それは完全に平均化を回避します。問題は、ノイズによってこれらの値が急激に変動する可能性があることです。そのため、4つすべてを使用する場合、つまり平均化すると、私の見積もりははるかに良くなります。 うまくいけば、上の画像から、パイロット値をそのままで平均化することはできないことがわかります。一定の+ノイズになるように変更する必要があります。これを行うには、-21パイロットの角度に-1、-7パイロットに-3、7パイロットに3、21パイロットに1を掛けます。これにより、21パイロットと同等になり、平均化できます。 直交座標系で「3」のような定数をベクトルの角度に掛ける良い方法がわからないので、極座標に変換し、角度に-1を掛ける必要があるように見えます-3、3、1はそれぞれデカルト座標に変換し、パイロットを平均化してから、極座標に変換して位相オフセットを取得します。これは実行可能ですが、可能であれば、より扱いにくいソリューションを見つけたいと思います。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.