matlab实现单、双极性;归零、不归零码波形编码,并显示其频谱图,需要代码
时间: 2024-02-03 22:04:11 浏览: 186
单双极性码_单双极性码_归零码占空比_占空比归零码_二进制编码_positive8we_
5星 · 资源好评率100%
以下是MATLAB实现单、双极性归零、不归零编码的代码:
```matlab
% 单极性归零编码
clc; clear; close all;
f = 10; % 信号频率
fs = 1000; % 采样频率
t = 0:1/fs:1; % 时间序列
x = 2*sin(2*pi*f*t); % 原始信号
y = zeros(1,length(x)); % 归零编码
y(x >= 0) = 1; % 信号大于0时为1
subplot(2,1,1);
plot(t,x,'b','LineWidth',2);
title('原始信号');
grid on;
subplot(2,1,2);
plot(t,y,'r','LineWidth',2);
title('单极性归零编码');
grid on;
% 单极性不归零编码
clc; clear; close all;
f = 10; % 信号频率
fs = 1000; % 采样频率
t = 0:1/fs:1; % 时间序列
x = 2*sin(2*pi*f*t); % 原始信号
y = zeros(1,length(x)); % 不归零编码
y(x >= 0) = 1; % 信号大于0时为1
y(x < 0) = -1; % 信号小于0时为-1
subplot(2,1,1);
plot(t,x,'b','LineWidth',2);
title('原始信号');
grid on;
subplot(2,1,2);
plot(t,y,'r','LineWidth',2);
title('单极性不归零编码');
grid on;
% 双极性归零编码
clc; clear; close all;
f = 10; % 信号频率
fs = 1000; % 采样频率
t = 0:1/fs:1; % 时间序列
x = 2*sin(2*pi*f*t); % 原始信号
y = zeros(1,length(x)); % 归零编码
y(x >= 0) = 1; % 信号大于0时为1
y(x < 0) = -1; % 信号小于0时为-1
subplot(2,1,1);
plot(t,x,'b','LineWidth',2);
title('原始信号');
grid on;
subplot(2,1,2);
plot(t,y,'r','LineWidth',2);
title('双极性归零编码');
grid on;
% 双极性不归零编码
clc; clear; close all;
f = 10; % 信号频率
fs = 1000; % 采样频率
t = 0:1/fs:1; % 时间序列
x = 2*sin(2*pi*f*t); % 原始信号
y = zeros(1,length(x)); % 不归零编码
y(x >= 0) = 1; % 信号大于0时为1
y(x < 0) = -1; % 信号小于0时为-1
subplot(2,1,1);
plot(t,x,'b','LineWidth',2);
title('原始信号');
grid on;
subplot(2,1,2);
plot(t,y,'r','LineWidth',2);
title('双极性不归零编码');
grid on;
% 频率谱分析
clc; clear; close all;
f = 10; % 信号频率
fs = 1000; % 采样频率
t = 0:1/fs:1; % 时间序列
x = 2*sin(2*pi*f*t); % 原始信号
y1 = zeros(1,length(x)); % 单极性归零编码
y1(x >= 0) = 1; % 信号大于0时为1
y2 = zeros(1,length(x)); % 单极性不归零编码
y2(x >= 0) = 1; % 信号大于0时为1
y2(x < 0) = -1; % 信号小于0时为-1
y3 = zeros(1,length(x)); % 双极性归零编码
y3(x >= 0) = 1; % 信号大于0时为1
y3(x < 0) = -1; % 信号小于0时为-1
y4 = zeros(1,length(x)); % 双极性不归零编码
y4(x >= 0) = 1; % 信号大于0时为1
y4(x < 0) = -1; % 信号小于0时为-1
f_fft = fft(x); % 原始信号频谱
f1_fft = fft(y1); % 单极性归零编码频谱
f2_fft = fft(y2); % 单极性不归零编码频谱
f3_fft = fft(y3); % 双极性归零编码频谱
f4_fft = fft(y4); % 双极性不归零编码频谱
f_axis = linspace(0,fs,length(x)); % 频率轴
subplot(5,1,1);
plot(f_axis,abs(f_fft),'b','LineWidth',2);
title('原始信号频谱');
grid on;
subplot(5,1,2);
plot(f_axis,abs(f1_fft),'r','LineWidth',2);
title('单极性归零编码频谱');
grid on;
subplot(5,1,3);
plot(f_axis,abs(f2_fft),'r','LineWidth',2);
title('单极性不归零编码频谱');
grid on;
subplot(5,1,4);
plot(f_axis,abs(f3_fft),'r','LineWidth',2);
title('双极性归零编码频谱');
grid on;
subplot(5,1,5);
plot(f_axis,abs(f4_fft),'r','LineWidth',2);
title('双极性不归零编码频谱');
grid on;
```
这段代码会生成5个子图,其中前4个子图分别显示原始信号和四种编码方式的波形图,最后一个子图显示原始信号和四种编码方式的频谱图。你可以根据需要选择其中的子图显示。
阅读全文