在相移键控期间改变相位
varying phase during phase shift keying
我正在对二进制数据进行相移键控。
这就是我正在做的,
f=10;
m=[];
b = [1 0 0 1 1 1 0]
for i=1:1:length(b)
if (b(i)==1)
Modulated=10*cos(2*pi*f*t2);
else
Modulated=10*cos(2*pi*f*t2 + pi);
end
m=[m Modulated];
end
当最后一位与当前位或当前位与未来位存在差异时,相位不变。
位值不同时如何改变相位?
编辑:系统完整的图片。我正在使用等波纹滤波器。
您的代码运行良好。也许频率太高,情节太密集,以至于您无法注意到它。尝试降低频率。
这是(简化的)完全调制和解调的代码:
%% modulation
f=0.5;
t2 = 0:0.01:1;
m=[];
b = [1 0 0 1 1 1 0];
for i=1:1:length(b)
if (b(i)==1)
Modulated=10*cos(2*pi*f*t2);
else
Modulated=10*cos(2*pi*f*t2 + pi);
end
m=[m Modulated];
end
subplot(3, 1, 1)
plot(m)
title('Modulated')
%% downconversion
oscillator = cos(2*pi*f*t2);
demod = m .* repmat(oscillator, 1, length(b));
subplot(3, 1, 2)
plot(demod)
title('Downconverted')
%% demodulation
d = [];
for i = 1:1:length(b)
idx_start = (i - 1) * length(t2) + 1;
idx_end = i * length(t2);
Demodulated = mean(demod(idx_start:idx_end));
d = [d Demodulated];
end
subplot(3, 1, 3)
plot(d, 'x')
title('Demodulated (LPF)')
并且请注意,即使信号1和信号0是连续的,不代表他们同相
我正在对二进制数据进行相移键控。
这就是我正在做的,
f=10;
m=[];
b = [1 0 0 1 1 1 0]
for i=1:1:length(b)
if (b(i)==1)
Modulated=10*cos(2*pi*f*t2);
else
Modulated=10*cos(2*pi*f*t2 + pi);
end
m=[m Modulated];
end
当最后一位与当前位或当前位与未来位存在差异时,相位不变。
位值不同时如何改变相位?
编辑:系统完整的图片。我正在使用等波纹滤波器。
您的代码运行良好。也许频率太高,情节太密集,以至于您无法注意到它。尝试降低频率。
这是(简化的)完全调制和解调的代码:
%% modulation
f=0.5;
t2 = 0:0.01:1;
m=[];
b = [1 0 0 1 1 1 0];
for i=1:1:length(b)
if (b(i)==1)
Modulated=10*cos(2*pi*f*t2);
else
Modulated=10*cos(2*pi*f*t2 + pi);
end
m=[m Modulated];
end
subplot(3, 1, 1)
plot(m)
title('Modulated')
%% downconversion
oscillator = cos(2*pi*f*t2);
demod = m .* repmat(oscillator, 1, length(b));
subplot(3, 1, 2)
plot(demod)
title('Downconverted')
%% demodulation
d = [];
for i = 1:1:length(b)
idx_start = (i - 1) * length(t2) + 1;
idx_end = i * length(t2);
Demodulated = mean(demod(idx_start:idx_end));
d = [d Demodulated];
end
subplot(3, 1, 3)
plot(d, 'x')
title('Demodulated (LPF)')
并且请注意,即使信号1和信号0是连续的,不代表他们同相