matlab实现2ASK、2FSK、2PSK、2DPSK的功率谱
时间: 2023-12-02 14:04:39 浏览: 708
利用MATLAB实现2ASK、2FSK、2PSK
5星 · 资源好评率100%
以下是MATLAB实现2ASK、2FSK、2PSK、2DPSK的功率谱的示例代码:
1. 2ASK(二进制幅度键控)的功率谱:
```matlab
% 生成2ASK调制信号
t = 0:0.001:1; % 时间范围
fc = 10; % 载波频率
Am = 1; % 幅度
m = [0 1 0 1]; % 二进制信息序列
s = Am*m; % 调制信号
% 计算功率谱
Fs = 1000; % 采样频率
N = length(s); % 信号长度
f = (-Fs/2):(Fs/N):(Fs/2-Fs/N); % 频率范围
S = abs(fftshift(fft(s,N)/N)).^2; % 功率谱密度
% 绘制功率谱图
plot(f, S);
xlabel('频率');
ylabel('功率谱密度');
title('2ASK的功率谱');
```
2. 2FSK(二进制频移键控)的功率谱:
```matlab
% 生成2FSK调制信号
t = 0:0.001:1; % 时间范围
fc1 = 10; % 第一个载波频率
fc2 = 20; % 第二个载波频率
m = [0 1 0 1]; % 二进制信息序列
s = cos(2*pi*fc1*t + pi*m) + cos(2*pi*fc2*t + pi*(1-m)); % 调制信号
% 计算功率谱
Fs = 1000; % 采样频率
N = length(s); % 信号长度
f = (-Fs/2):(Fs/N):(Fs/2-Fs/N); % 频率范围
S = abs(fftshift(fft(s,N)/N)).^2; % 功率谱密度
% 绘制功率谱图
plot(f, S);
xlabel('频率');
ylabel('功率谱密度');
title('2FSK的功率谱');
```
3. 2PSK(二进制相移键控)的功率谱:
```matlab
% 生成2PSK调制信号
t = 0:0.001:1; % 时间范围
fc = 10; % 载波频率
m = [0 1 0 1]; % 二进制信息序列
s = cos(2*pi*fc*t + pi*m); % 调制信号
% 计算功率谱
Fs = 1000; % 采样频率
N = length(s); % 信号长度
f = (-Fs/2):(Fs/N):(Fs/2-Fs/N); % 频率范围
S = abs(fftshift(fft(s,N)/N)).^2; % 功率谱密度
% 绘制功率谱图
plot(f, S);
xlabel('频率');
ylabel('功率谱密度');
title('2PSK的功率谱');
```
4. 2DPSK(二进制差分相移键控)的功率谱:
```matlab
% 生成2DPSK调制信号
t = 0:0.001:1; % 时间范围
fc = 10; % 载波频率
m = [0 1 0 1]; % 二进制信息序列
s = cos(2*pi*fc*t + pi*m); % 调制信号
s_diff = [0 diff(s)]; % 差分信号
% 计算功率谱
Fs = 1000; % 采样频率
N = length(s_diff); % 信号长度
f = (-Fs/2):(Fs/N):(Fs/2-Fs/N); % 频率范围
S = abs(fftshift(fft(s_diff,N)/N)).^2; % 功率谱密度
% 绘制功率谱图
plot(f, S);
xlabel('频率');
ylabel('功率谱密度');
title('2DPSK的功率谱');
```
阅读全文