⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chest.m

📁 有关于相位
💻 M
字号:
clear all;
close all;

fc = 1000;
fs = 9000;
amp = 1;
RB = 10;


% [ySig, t, vSym, PSig] =  CreateNPSK(8, fc, amp, fs, RB, [0 1 2 3 4 5 6 7]);
% [ySig, t, vSym, PSig] =  CreateNPSK(4, fc, amp, fs, RB, [0 1 2 3 0 1 2 3]);
% [ySig, t, vSym, PSig] =  CreateNPSK(2, fc, amp, fs, RB, [0 1 0 1 0 1 0 1]);
% [ySig, t, vSym, PSig] =  CreateNASK(2, fc, amp, fs, RB, [0 1 0 1 0 1 0 1]);
%  [ySig, t, vSym, PSig] =  CreateNFSK(2, [fc, 2*fc], amp, fs, RB, [0 1 0 1 0 1 0 1]);
 [ySig, t, vSym, PSig] =  CreateNFSK(4, [fc, 2*fc, 3*fc, 4*fc], amp, fs, RB, [0 1 2 3 0 1 2 3]);
% plot(t, ySig); grid on;

SNR = 10;
snRatio = 10.^(SNR/10);
PNoise = PSig / snRatio;
Noise = NorNoise(PNoise, length(t));
ySig = ySig + Noise;

% weakIndex = find(abs(ySig)<0.2);
yHlb = hilbert(ySig);
rawPhase = unwrap(angle(yHlb));
CarPhase = 2*pi*fc*(0:1/fs:(1/fs*(length(ySig)-1)));    %载波相位
relPhase = rawPhase - CarPhase;                         %相对相位偏移
% rawPhase(weakIndex) = [];
% plot(rawPhase); grid on;


% 方法一,差分
% N = fs/RB;
% Num = length(rawPhase);
% sample = rawPhase(1:N);
% for n = 1: Num
%     yy(n) = rawPhase(n) - sample(mod(n, N) + 1);
% end;

Amp = abs(yHlb);
acn = Amp / mean(Amp) - 1;              %零中心归一化幅度
% plot(acn); grid on;
acnF = fft(acn.^2);
% figure;
% plot(abs(acnF));
rmax = max(acnF/length(acnF));


norPhase = relPhase - floor(relPhase/2/pi) * 2*pi;      %折算到0-2pi中
% hist(norPhase,100);
norPhase = norPhase - mean(norPhase);                   %归一化
% plot(norPhase);grid on;
dap = sqrt(sum(norPhase.^2)/length(norPhase) - (sum(abs(norPhase))/length(norPhase)).^2);

freq = diff(rawPhase);
norFreq = (freq - mean(freq)) * fs / fc;
% plot(norFreq);
daf = sqrt(sum(norFreq.^2)/length(norFreq) - (sum(abs(norFreq))/length(norFreq)).^2)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -