信号的相位随机跳变与有序跳变

信号的相位有序跳变时,如测试1所示;随机跳变时,如测试2所示,
在这里插入图片描述
在这里插入图片描述
测试代码如下,

clc;clear vars;close all;

% 常量
GHZ = 1e9;
MHZ = 1e6;
KHZ = 1e3;
HZ  = 1;
NS  = 1e-9;
US  = 1e-6;
MS  = 1e-3;
S   = 1;

% 信号参数
FS  = 2000*MHZ;
TS  = 1/FS;
N   = 65536;
t   = (0:N-1)*TS;
f   = 200*MHZ;

phi_1 = 0;
phi_2 = pi;
sig1 = cos(2*pi*f*t + phi_1);
sig2 = cos(2*pi*f*t + phi_2);

each_len = 512;
iter_num = floor(N/each_len);

freq_vec = (0:N-1)/N*FS/MHZ;
each_bw  = 1/(each_len*TS)/MHZ;
fprintf('each_bw --> %12.6f MHz\n',each_bw);

sig       = zeros(1,iter_num*each_len);

% 相位有序跳
code_mask = zeros(1,iter_num);
code_mask(1,2:2:end) = 1;
for m=1:iter_num
    if (code_mask(1,m)==0)
        sig(1,(m-1)*each_len+1:m*each_len) = sig1(1,(m-1)*each_len+1:m*each_len);
    else
        sig(1,(m-1)*each_len+1:m*each_len) = sig2(1,(m-1)*each_len+1:m*each_len);
    end 
end
y_sig = fft(sig);
figure;
plot(freq_vec,20*log10(abs(y_sig)));
title('测试1');

% 相位随机跳
code_mask = randi([0,1],1,iter_num);
for m=1:iter_num
    if (code_mask(1,m)==0)
        sig(1,(m-1)*each_len+1:m*each_len) = sig1(1,(m-1)*each_len+1:m*each_len);
    else
        sig(1,(m-1)*each_len+1:m*each_len) = sig2(1,(m-1)*each_len+1:m*each_len);
    end 
end
y_sig = fft(sig);
figure;
plot(freq_vec,20*log10(abs(y_sig)));
title('测试2');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值