いきなり済みません。そんなだいそれた話ではありません。
前回までアナログ変調=AM変調をやってみたので、今度はデジタル信号を変調して伝送してみるには、というテーマで scilab で遊んでみようというわけです。
まずはシステムjとしてどういうものか簡単に見てみましょう。
(表は直接貼り付かないようですね...。)
非常におおざっぱですが、いかがでしょうか。
それぞれこういう流れになるかと思います。
なぜこのようなことを書いたかというと、AM変復調の動作確認の中でおおよその処理の流れをつかんだとすると、デジタル変復調処理をそれに当てはめることで、今検討している動作がどこに位置づけされるかを確認したかったからです。
要は知っている知識をベースにして次の技術を考えると理解が早いことを期待してのことです。
では、まずデジタルデータの準備からはじめましょう。
AM変復調の動作の場合は、1Hzの信号を使いました。デジタルの場合はあまり根拠はないですが、ランダムデータを使ってみようと思います。サイズは 64bit とします
。
ランダムデータの発生には、関数 rand を使います。
SciNote を立ち上げて以下の内容を入力して下さい。
コンソールの以下のような表示が出たかと思います。
column 1 to 22
0. 1. 0. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 0. 0. 0. 1. 1. 0. 1.
column 23 to 44
0. 0. 0. 0. 1. 0. 0. 1. 1. 0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 1. 0.
column 45 to 64
0. 1. 0. 1. 1. 0. 0. 1. 0. 0. 1. 1. 1. 1. 1. 0. 0. 1. 1. 0.
乱数なので毎回違うはず、と思いきや初期値の設定を行っているので、毎回同じだと思います。
さて、このデジタルデータを伝送するわけですが、アナログ信号を伝送するのとは大分趣が違います。
音声信号の場合は電気信号ですから、線でつなげば伝わります。また電波で伝えたいのであればAM変調して搬送波信号を重畳すれば伝わります。再生する方も受け取った信号を受け取れたところから処理すればそれ以降は問題なく再生できます。
ですが、デジタルデータはどうでしょうか。
たとえば、上述のデータパターンにおいて最初の'0'から検出できればいいのですが、
万が一ミスして次のデータから検出すると、そのデジタルデータが4bit単位で意味を持つような性質だった場合、全く違ったデータが伝達されてしまいます。さらに'0'や'1'が送られる周期が出す側と受け取る側で少しでもずれていると、どこかでデータの検出ミスを起こします。
従って、デジタルデータの伝送を行う際には、そういったことまで配慮したデータ形式
にしなければなりません。
これをフォーマット化といいます。また、フォーマット化の中に符号化ということもあります。
これら全般をここでは前置処理と云うことにします。
次回は、前置処理無しで上述のデータを搬送波信号に重畳させて、伝送させてみます。前述のような同期の問題は考えないことにします。
前回までアナログ変調=AM変調をやってみたので、今度はデジタル信号を変調して伝送してみるには、というテーマで scilab で遊んでみようというわけです。
まずはシステムjとしてどういうものか簡単に見てみましょう。
AM変復調 | デジタル変復調 | |
入力 | 音声信号 | デジタルデータ |
前置処理 | なし | フォーマット化、符号化 |
変調 | 搬送波重畳 | 搬送波重畳 |
復調 | 検波 | 信号復調 |
後置処理 | LPF | 符号復調 |
出力 | 音声信号 | デジタルデータ |
(表は直接貼り付かないようですね...。)
非常におおざっぱですが、いかがでしょうか。
それぞれこういう流れになるかと思います。
なぜこのようなことを書いたかというと、AM変復調の動作確認の中でおおよその処理の流れをつかんだとすると、デジタル変復調処理をそれに当てはめることで、今検討している動作がどこに位置づけされるかを確認したかったからです。
要は知っている知識をベースにして次の技術を考えると理解が早いことを期待してのことです。
では、まずデジタルデータの準備からはじめましょう。
AM変復調の動作の場合は、1Hzの信号を使いました。デジタルの場合はあまり根拠はないですが、ランダムデータを使ってみようと思います。サイズは 64bit とします
。
ランダムデータの発生には、関数 rand を使います。
SciNote を立ち上げて以下の内容を入力して下さい。
/ランダムデジタルデータの発生
//初期値の設定
rand('seed',0)
//一様分布の乱数発生。数値範囲 0-1.0
randomdata=(rand(1,64,'uniform'))
//'0','1' 符号化するために、0.5を足して整数部分のみを抽出
data=int(0.5+randomdata)
disp(data)
column 1 to 22
0. 1. 0. 0. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 0. 0. 0. 1. 1. 0. 1.
column 23 to 44
0. 0. 0. 0. 1. 0. 0. 1. 1. 0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 1. 0.
column 45 to 64
0. 1. 0. 1. 1. 0. 0. 1. 0. 0. 1. 1. 1. 1. 1. 0. 0. 1. 1. 0.
乱数なので毎回違うはず、と思いきや初期値の設定を行っているので、毎回同じだと思います。
さて、このデジタルデータを伝送するわけですが、アナログ信号を伝送するのとは大分趣が違います。
音声信号の場合は電気信号ですから、線でつなげば伝わります。また電波で伝えたいのであればAM変調して搬送波信号を重畳すれば伝わります。再生する方も受け取った信号を受け取れたところから処理すればそれ以降は問題なく再生できます。
ですが、デジタルデータはどうでしょうか。
たとえば、上述のデータパターンにおいて最初の'0'から検出できればいいのですが、
万が一ミスして次のデータから検出すると、そのデジタルデータが4bit単位で意味を持つような性質だった場合、全く違ったデータが伝達されてしまいます。さらに'0'や'1'が送られる周期が出す側と受け取る側で少しでもずれていると、どこかでデータの検出ミスを起こします。
従って、デジタルデータの伝送を行う際には、そういったことまで配慮したデータ形式
にしなければなりません。
これをフォーマット化といいます。また、フォーマット化の中に符号化ということもあります。
これら全般をここでは前置処理と云うことにします。
次回は、前置処理無しで上述のデータを搬送波信号に重畳させて、伝送させてみます。前述のような同期の問題は考えないことにします。