數(shù)字調(diào)制(ASK、FSK、PSK)例程分享:
2ASK(二進(jìn)制幅移鍵控)又稱OOK
function
askdigital(s,f)
% 實(shí)現(xiàn)ASK調(diào)制
% s——輸入二進(jìn)制序列;f——載波的頻率,即:一個(gè)碼元周期包括f個(gè)載波周期
% 調(diào)用舉例:askdigital([1 0 1 1 0], 2)
cp=[];
mod
=[];bit=[];
if
s(n)==0;
else
% s(n)==1;
bit1=
ones
(1,100);
c=
sin
(f*t);
mod
=[
mod
c];
bit=[bit bit1];
end
ask=bit.*
mod
;
subplot
(2,1,1);
plot
(bit,
'k'
,
'LineWidth'
,1);
grid
on;
ylabel
(
'Binary Signal'
);
axis
([0 100*
length
(s) -2.5 2.5]);
subplot
(2,1,2);
plot
(ask,
'k'
,
'LineWidth'
,1);
grid
on;
ylabel
(
'ASK modulation'
);
axis
([0 100*
length
(s) -2.5 2.5]);
2FSK:‘1’對(duì)應(yīng)頻率為ω1ω1的載波,‘0’對(duì)應(yīng)頻率為ω2ω2的載波。
function
fskdigital(s,f0,f1)
% 實(shí)現(xiàn) FSK 調(diào)制
% s——輸入二進(jìn)制序列 f0,f1——兩個(gè)不同頻率的載波
% 調(diào)用舉例 (f0 f1 必須是整數(shù)) : fskdigital([1 0 1 1 0],1,2)
t=0:2*
pi
/99:2*
pi
;
%初始化定義
cp=[];
mod
=[];bit=[];
for
n=1:
length
(s);
% 調(diào)制過(guò)程
if
s(n)==0;
cp1=
ones
(1,100);
c=
sin
(f0*t);
bit1=
zeros
(1,100);
else
%s(n)==1;
cp1=
ones
(1,100);
c=
sin
(f1*t);
bit1=
ones
(1,100);
end
cp=[cp cp1];
mod
=[
mod
c];
bit=[bit bit1];
end
fsk=cp.*
mod
;
% fsk = mod;
subplot
(2,1,1);
plot
(bit,
'k'
,
'LineWidth'
,1);
grid
on;
ylabel
(
'Binary Signal'
);
axis
([0 100*
length
(s) -2.5 2.5]);
subplot
(2,1,2);
plot
(fsk,
'k'
,
'LineWidth'
,1);
grid
on;
ylabel
(
'FSK modulation'
);
axis
([0 100*
length
(s) -2.5 2.5]);
或用Matlab提供的函數(shù)fskmod
- 調(diào)用格式
y= fskmod(x,M,freq_sep,nsamp);
y=fskmod(x,M,freq_sep,nsamp,Fs);
- 參數(shù)說(shuō)明
x:消息信號(hào)
M:表示消息的符號(hào)數(shù),必須是2的整數(shù)冪,M進(jìn)制信號(hào)(0~M-1)
freq_sep:兩載波之間的頻率間隔,單位Hz
nsamp:輸出信號(hào)的采樣數(shù),必須是大于1的正整數(shù)
Fs:根據(jù)奈奎斯特采樣定理,(M-1)*freq_seq <= Fs
M=2;freqsep=8;nsamp=8;Fs=32;
x=
randi
([0,M-1],1000,1);
y=fskmod(x,M,freqsep,nsamp,Fs);
ly =
length
(y);
%畫(huà)2FSK的信號(hào)頻譜
freq= -Fs/2:Fs/ly : Fs/2-Fs/ly;
Syy =
fftshift
(
abs
(
fft
(y)));
plot
(freq,Syy)
PSK
function
bpskdigital( s, f )
%實(shí)現(xiàn)BPSK
% s:輸入二進(jìn)制序列,f:載波信號(hào)的頻率(一個(gè)碼元有幾個(gè)載波周期)
% 調(diào)用舉例:bpskdigital([1 0 1 1 0], 2)
t = 0:2*
pi
/99:2*
pi
;
cp = [];
mod
= []; bit = [];
for
n=1:
length
(s)
if
s(n) == 0
cp1 = -
ones
(1,100);
bit1 =
zeros
(1,100);
else
%s(n)==1
cp1 =
ones
(1,100);
bit1 =
ones
(1,100);
end
c=
sin
(f*t);
cp = [cp,cp1];
mod
= [
mod
,c];
bit = [bit,bit1];
end
bpsk = cp .*
mod
;
subplot
(211);
plot
(bit,
'LineWidth'
,1.5);
grid
on;
ylabel
(
'Binary Signal'
);
axis
([0 100*
length
(s) -2.5 2.5]);
subplot
(212);
plot
(bpsk,
'LineWidth'
,1.5);
grid
on;
ylabel
(
'BPSK modulation'
);
axis
([0 100*
length
(s) -2.5 2.5]);
end
-
FSK
+關(guān)注
關(guān)注
14文章
114瀏覽量
58371 -
ASK
+關(guān)注
關(guān)注
2文章
75瀏覽量
45308 -
程序
+關(guān)注
關(guān)注
117文章
3785瀏覽量
81001 -
數(shù)字調(diào)制
+關(guān)注
關(guān)注
0文章
46瀏覽量
13007 -
PSK
+關(guān)注
關(guān)注
1文章
27瀏覽量
20982
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論