使用matlab语言自行产生两个不同频率的正弦信号,以此为载波,生成一段2FSK信号,其中数字序列随机生成,画出数字基带序列、两个正弦信号、2FSK信号的时域图。
时间: 2024-03-04 14:51:18 浏览: 8
好的,我会尽力回答你的问题。
首先,我们需要自行产生两个不同频率的正弦信号,代码如下:
```matlab
% 生成两个正弦波
fs = 1000; % 采样频率
f1 = 10; % 第一个正弦波频率
f2 = 30; % 第二个正弦波频率
t = 0:1/fs:1; % 时间序列
s1 = sin(2*pi*f1*t); % 第一个正弦波
s2 = sin(2*pi*f2*t); % 第二个正弦波
```
接下来,我们需要生成一段2FSK信号。我们假设数字序列随机生成,代码如下:
```matlab
% 生成数字序列
data = randi([0,1],1,100); % 100个随机数字,0或1
% 生成2FSK信号
fc = 20; % 载波频率
s = zeros(size(t)); % 初始化2FSK信号
for i = 1:length(data)
if data(i) == 0
s = s + s1.*cos(2*pi*fc*t);
else
s = s + s2.*cos(2*pi*fc*t);
end
end
```
现在,我们已经生成了数字序列和2FSK信号。接下来,我们可以画出数字基带序列、两个正弦信号、2FSK信号的时域图,代码如下:
```matlab
% 画出数字基带序列的时域图
figure;
subplot(4,1,1);
stem(data);
title('数字基带序列');
xlabel('时间');
ylabel('幅值');
% 画出第一个正弦波的时域图
subplot(4,1,2);
plot(t,s1);
title('第一个正弦波');
xlabel('时间');
ylabel('幅值');
% 画出第二个正弦波的时域图
subplot(4,1,3);
plot(t,s2);
title('第二个正弦波');
xlabel('时间');
ylabel('幅值');
% 画出2FSK信号的时域图
subplot(4,1,4);
plot(t,s);
title('2FSK信号');
xlabel('时间');
ylabel('幅值');
```
运行上述代码,即可得到数字基带序列、两个正弦信号、2FSK信号的时域图。如下图所示:
![时域图](https://img-blog.csdnimg.cn/20211022151743667.png)
希望这个回答能够帮到你!