スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

直交復調(ゼロIF) シミュレーション

clear
clf()

//////////////// 共通パラメータ ///////////////////////////////////////////////////
n = 1:1024; //解析範囲
fs = 1000; //サンプリング周波数[MHz]
///////////////////////////////////////////////////////////////////////////////

Tini = 0;//%pi/4; //初期位相
f = 400; //RF周波数[MHz]
fl = 400; //LO周波数[MHz]


w = 2*%pi*f/fs;
wl = 2*%pi*fl/fs;

RF = cos(w*n + Tini);
LO_I = cos(wl*n);
LO_Q = cos(wl*n + %pi/2);

I = RF .* LO_I;
Q = RF .* LO_Q;

fig = figure(0);
subplot(121);
title("waveform");
xlabel("time");
ylabel("amplitude");
xgrid;
plot(n,RF)
plot(n,LO_I,'r')
plot(n,LO_Q,'g')
//zoom_rect(gca(),[0,0,20,1.5])

subplot(122);
title("waveform");
xlabel("time");
ylabel("amplitude");
xgrid;
plot(n,I)
plot(n,Q,'r')
//zoom_rect(gca(),[0,0,0.5,50])


///////////////////////////////////////////
// LPF
///////////////////////////////////////////
TAP_NUM = 64;

[wft,wff,fr]=wfir('lp',TAP_NUM,[0.1 0],'hn',[1 0]); //wft:インパルス応答、wff:周波数応答、fr:周波数グリッド

figure(1)
subplot(121)
title("周波数応答");
plot(fr,wff)
xgrid;

subplot(122)
title("インパルス応答");
plot(0:TAP_NUM-1,wft)
xgrid;


///////////////////////////////////////////
// LPF適用
///////////////////////////////////////////
I_LPF = convol(wft,I);
I_LPF_len = size(I_LPF,2); //畳込みの計算上、(信号長さ - 1) = (畳込み結果の長さ)
Q_LPF = convol(wft,Q);
Q_LPF_len = size(Q_LPF,2);

P = sqrt(I_LPF^2 + Q_LPF^2);

fig = figure(3);
subplot(121);
title("waveform");
xlabel("time");
ylabel("amplitude");
xgrid;
//plot(n,RF)
plot(0:I_LPF_len-1,I_LPF)
plot(0:Q_LPF_len-1,Q_LPF,'r')
//zoom_rect(gca(),[0,0,20,1.5])

subplot(122);
title("waveform");
xlabel("time");
ylabel("amplitude");
xgrid;
plot(0:I_LPF_len-1,P)
//plot(n,Q,'r')
//zoom_rect(gca(),[0,0,0.5,50])
スポンサーサイト

コメント

非公開コメント
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。