同期検波のプログラムとはどういうものを指しているのでしょうか?
たとえば,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)