⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 psk.txt

📁 学习matlab时编写的一个关于psk的小程序
💻 TXT
字号:
%程序设计PSK的一些说明:
%1)在调制时,我人为的将用cos信号来表示一,注意解调时将cos信号变成二进制信号的一码。
%2)在接受端解调的时候,我采用的是将本地振荡信号延伸到与信号一样长后进行解调的。
%

clear all
close all
N=input('input N=');     %控制产生N个序列
d=rand(1,N)>=0.5;   %随机生成N个1,0序列
bits=[d,zeros(1,7-(length(d)-fix(length(d)/7)*7))];%将在不够指定位数添0,对信号进行7位扩展完成

datastream=[];   %这是信道编码
n=fix(length(bits)/7);
for k=1:n
temp=bits((k-1)*7+1:k*7);
datastream=[datastream,temp,rem(sum(temp),2)];
end         %信道编码结束

t=linspace(0,0.001,160);    %调制信号
fc=1000;
y1=cos(2*pi*fc*t);     %fc为调制频率
y2=sin(2*pi*fc*t);

result=[];     %信号开始调制
for j=1:length(datastream);
    if datastream(j)==1
        result=[result,datastream(j)*y1];      %信号调制结束
    else
        result=[result,1*y2];
    end
end
figure(1)
plot(1:length(result),result),title('PSK调制后的波形');  %输出调制信号的波形,以便于进行与接收端的信号进行比较


receivesignal=awgn(result,30); %这是信号在信道中的高斯白噪声
figure(2)
plot(1:length(receivesignal),receivesignal),title('PSK信号在信道中的波形图')%这是信号在信道中的高斯白噪声的波形


t=linspace(0,0.001,160);    %本地震荡信号
fc=1000;
ys=cos(2*pi*fc*t);     %本地fc为调制频率
d1=rand(1:length(datastream))>0;
result1=[];    
for j=1:length(datastream);
    result1=[result1,d1(j)*ys];  
end
figure(3)
plot(1:length(result1),result1),title('本地载波信号')


resignal=[];    %本地解调
for k=1:length(receivesignal);
    resignal=[resignal,result1(k)*receivesignal(k)];
end
figure(4)
plot(1:length(resignal),resignal),title('解调信号波形')%输出本地解调波形


load num
signal=filter(Num1,1,resignal);title('接收信号*本地载波信号');
figure(5)
plot(1:length(signal),signal),title('包络信号');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -