码迷,mamicode.com
首页 > 其他好文 > 详细

【数字信号调制】基于matlab二进制数字相位调制(2PSK)【含Matlab源码 1000期】

时间:2021-06-19 18:43:24      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ros   sha   space   mat   title   反向   The   lte   idt   

一、简介

相移键控法, 根据数字基带信号的两个电平使载波相位在两个不同的数值之间切换的一种相位调制方法。
产生PSK信号的两种方法:
1)、调相法:将基带数字信号(双极性)与载波信号直接相乘的方法:
2)、选择法:用数字基带信号去对相位相差180度的两个载波进行选择。
两个载波相位通常相差180度,此时称为反向键控(PSK)。
解调方法:只能采用相干解调。
类型:二进制相移键控(2PSK),多进制相移键控(MPSK)。

二、源代码

clear all
close all
i=10;
j=5000;
fc=4;%载波频率
fm=i/5;%码元速率
B=2*fm;
t=linspace(0,5,j);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生基带信号
a=round(rand(1,i));%随机序列,基带信号
st1=t;
for n=1:10
    if a(n)<1;
        for m=j/i*(n-1)+1:j/i*n
            st1(m)=0;
        end
    else
        for m=j/i*(n-1)+1:j/i*n
            st1(m)=1;
        end
    end
end
figure(1);
subplot(511);
plot(t,st1);
title(‘基带信号‘);
axis([0,5,-1,2]);
%%%%%%%%%%%&&&&&&%%%%%%%%%%%%%%%%%产生双极性基带信号
st2=t;               
for k=1:j;
    if st1(k)>=1;
        st2(k)=0;
    else
        st2(k)=1;
    end
end;
st3=st1-st2;%双极性基带信号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%载波信号
s1=sin(2*pi*fc*t);
subplot(512);
plot(s1);
title(‘载波信号‘);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%调制
psk=st3.*s1;
subplot(513);
plot(t,psk);
title(‘2PSK信号‘);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解调
psk=psk.*s1;%与载波相乘
[f,af] = T2F(t,psk);%%%%%%%%%%%通过低通滤波器
[t,psk] = lpf(f,af,B);
subplot(514);
plot(t,psk);
title(‘低通滤波后波形‘);
%脚本文件F2T.m定义了函数F2T,计算信号的反傅立叶变换。
function [t,st]=F2T(f,sf)
%This function calculate the time signal using ifft function for the input
%signal‘s spectrum
 df = f(2)-f(1);
Fmx = ( f(end)-f(1) +df);
dt = 1/Fmx;
N = length(sf);
T = dt*N;
%t=-T/2:dt:T/2-dt;
t = 0:dt:T-dt;
sff = fftshift(sf);
st = Fmx*ifft(sff);
function [t,st]=lpf(f,sf,B)
%This function filter an input data using a lowpass filter
%Inputs: f:  frequency samples
% sf: input data spectrum samples
% B:  lowpass‘s bandwidth with a rectangle lowpass
%Outputs:  t: time samples
% st: output data‘s time samples
df = f(2)-f(1);
T = 1/df;
hf = zeros(1,length(f));%全零矩阵
bf = [-floor( B/df ): floor( B/df )] + floor( length(f)/2 );
hf(bf)=1;
yf=hf.*sf;
[t,st]=F2T(f,yf);
st = real(st);

三、运行结果

技术图片

四、备注

版本:2014a
完整代码或代写加1564658423

【数字信号调制】基于matlab二进制数字相位调制(2PSK)【含Matlab源码 1000期】

标签:ros   sha   space   mat   title   反向   The   lte   idt   

原文地址:https://www.cnblogs.com/homeofmatlab/p/14901203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!