• ベストアンサー

Matlabでコヒーレント検波のプログラム

Matlabでコヒーレント検波のプログラムを作りたいのですが見当がつかず困っています。 すべて教えてほしいとは言いません。どのような考え方で、作ったらいいのか例を示してほしいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • masudaya
  • ベストアンサー率47% (250/524)
回答No.1

同期検波のプログラムとはどういうものを指しているのでしょうか? たとえば,Dataというデータ列に対するASK信号という観点では, 以下のようなコードで同期検波できます.この後にLPFをいれれば 波形は出てきますが... 変調方式は,TxDataを生成することはData1,Data0を変更することで可能です.(FSK,PSK程度なら) 受信信号に対する位相抽出などはできていません. プリアンブル受信して,位相を抽出してMixしながら出力でフィードバック掛けるなどが必要でしょう. Data=[1 0 1 1 0 0 1 0 1]; % 送信データ列 fai=0; %φ:位相ずれ sn=20; %SN比 [dB] t=0:0.05:10*2*pi; % tsize=size(t,2); Amp=10^(sn/20); % data1=Amp*sin(t); % Data "1" に対応する信号 data0=zeros(1,tsize); %Data "0" に対応する信号 Txdata=[];Lodata=[]; %信号とLo信号生成 for k=1:datasize Lodata=[Lodata,sin(t+fai)]; noise=randn(1,tsize); if Data(k)==1 Txdata=[Txdata,data1+noise]; else Txdata=[Txdata,noise]; end end Txsize=size(Txdata,2); t1=linspace(0,0.05,Txsize); %Mixによる同期検波 mixdata=Lodata.*Txdata; %表示 figure subplot(2,1,1);plot(t1,Txdata) subplot(2,1,2);plot(t1,mixdata)

関連するQ&A