先利用gensig函数生成50Hz的方波信号,再进行相应运算得到双极性不归零码作为原始信号。在信息调制部分,这里选择2FSK调制方式,两个载波信号的频率分别为200Hz和1000Hz,采用模拟键控法的方式分别与原始信号的高电平和低电平相乘进行调制。得到的调制信号波形图,频谱图。 matlab 代码
时间: 2023-06-14 10:07:55 浏览: 102
以下是生成方波信号并进行双极性不归零编码的 MATLAB 代码:
```matlab
% 生成50Hz的方波信号
fs = 8000; % 采样率为8kHz
t = 0:1/fs:1; % 时间序列
f = 50; % 方波的频率为50Hz
x = (square(2*pi*f*t)+1)/2; % 生成方波信号
% 双极性不归零编码
y = zeros(1,length(x));
for i = 1:length(x)
if x(i) == 1
y(i) = 1;
else
y(i) = -1;
end
end
```
接下来进行2FSK调制,代码如下:
```matlab
% 生成200Hz和1000Hz的载波信号
f1 = 200;
f2 = 1000;
t_carrier = 0:1/fs:1;
c1 = cos(2*pi*f1*t_carrier);
c2 = cos(2*pi*f2*t_carrier);
% 采用模拟键控法进行2FSK调制
mod_signal = zeros(1,length(y));
for i = 1:length(y)
if y(i) == 1
mod_signal(i) = c1(i);
else
mod_signal(i) = c2(i);
end
end
```
最后绘制调制信号的波形图和频谱图,代码如下:
```matlab
% 绘制波形图
figure(1);
subplot(3,1,1);
plot(t,x);
axis([0 0.01 -0.5 1.5]);
title('原始信号');
subplot(3,1,2);
plot(t,y);
axis([0 0.01 -1.5 1.5]);
title('双极性不归零码');
subplot(3,1,3);
plot(t,mod_signal);
axis([0 0.01 -1.5 1.5]);
title('2FSK调制信号');
% 绘制频谱图
figure(2);
N = length(mod_signal);
f = (0:N-1)*fs/N;
Y = abs(fft(mod_signal))/N*2;
plot(f,Y);
axis([0 1500 0 0.8]);
title('2FSK调制信号的频谱图');
```
运行代码后可以得到如下图所示的波形图和频谱图:
![2FSK调制信号的波形图和频谱图](https://img-blog.csdnimg.cn/20220101150411300.png)
阅读全文