2psk调制和解调matlab代码仿真
时间: 2023-10-08 19:09:28 浏览: 84
2psk的matlab调制解调的代码
5星 · 资源好评率100%
以下是2PSK调制和解调的MATLAB代码仿真:
调制部分:
```matlab
% 2PSK调制
clear all; close all; clc;
N=10000; % 信号长度
fc=10; % 载波频率
fs=50*fc; % 采样频率
t=0:1/fs:(N-1)/fs; % 时间范围
m=round(rand(1,N)); % 原始数据
s=2*m-1; % 调制信号
c=cos(2*pi*fc*t); % 载波信号
x=s.*c; % 调制信号
subplot(3,1,1); plot(t,m); title('原始数据');
subplot(3,1,2); plot(t,x); title('调制信号');
subplot(3,1,3); plot(t,c); title('载波信号');
```
解调部分:
```matlab
% 2PSK解调
clear all; close all; clc;
N=10000; % 信号长度
fc=10; % 载波频率
fs=50*fc; % 采样频率
t=0:1/fs:(N-1)/fs; % 时间范围
m=round(rand(1,N)); % 原始数据
s=2*m-1; % 调制信号
c=cos(2*pi*fc*t); % 载波信号
x=s.*c; % 调制信号
r=x.*c; % 解调信号
[b,a]=butter(5,2*pi*fc/fs); % 低通滤波器
y=filter(b,a,r); % 滤波
z=y(1:50:end)>0; % 采样
subplot(2,1,1); plot(t,x); title('调制信号');
subplot(2,1,2); plot(t,z); title('解调数据');
```
其中,调制信号为 $x=s(t)\cdot c(t)$,解调信号为 $r(t)=x(t)\cdot c(t)$,通过低通滤波器对解调信号进行滤波,再进行采样处理,得到解调后的数据 $z(t)$。
需要注意的是,解调后的数据 $z(t)$ 仅是一个近似值,因为在实际应用中,调制信号和解调信号在传输过程中会受到多种干扰,如噪声、衰减等,因此解调后的数据可能会存在误码。
阅读全文