📄 ellicfilter.m
字号:
clear all;
close all;
clc;
Hmain;
global fs; % 采样率
global nn; % 一个完整扩频周期采样点数
global CA_freq;
global fc;
global F_if;
global F_if_before;
global NOISE_POWER;
%=====================signal filter================%
wnn = 2*CA_freq;
wp1 = F_if-wnn/2;
wp2 = F_if+wnn/2;
stop_width = wnn/50;
ws1 = F_if-wnn/2-stop_width;
ws2 = F_if+wnn/2+stop_width;
Wp = [wp1 wp2]*2/fs; Ws = [ws1 ws2]*2/fs;
Rp = 0.05; Rs = 60;
[n,Wn] = ellipord(Wp,Ws,Rp,Rs);
[b,a] = ellip(n,Rp,Rs,Wn);
% =====================noise filter================%
wp1_n = F_if_before-wnn/2;
wp2_n = F_if_before+wnn/2;
ws1_n = F_if_before-wnn/2-stop_width;
ws2_n = F_if_before+wnn/2+stop_width;
fs_n = 4*fs;
Wp_n = [wp1_n wp2_n]*2/fs_n; Ws_n = [ws1_n ws2_n]*2/fs_n;
[n_n,Wn_n] = ellipord(Wp_n,Ws_n,Rp,Rs);
[b_n,a_n] = ellip(n_n,Rp,Rs,Wn_n);
%====================initial information=============%
phcode = 0;
fd = 0;
ph = 0;
Loop_time = 1;
AWGNflag = 0;
BOC_Code = BOCcode(phcode,fd,Loop_time);
[Signal_Source,Noise_Source] = CreateSource(phcode,fd,ph,AWGNflag);
Signal = Signal_Source(1:nn);
Noise = sqrt(NOISE_POWER)*randn(1,4*nn);
FN_out = filter(b_n,a_n,Noise);
FBOC_out = filter(b,a,BOC_Code);
FSignal_out = filter(b,a,Signal);
Noise_out = (abs(fft(Noise)));
F_Noise_out = (abs(fft(FN_out)));
BOC_out = (abs(fft(BOC_Code)));
F_BOC_out = (abs(fft(FBOC_out)));
Signal_out = (abs(fft(Signal)));
F_Signal_out =(abs(fft(FSignal_out)));
%%=========================oneside express===================%%
% figure,
% [Pxx,f]=periodogram(Noise,[],5000,fs_n);
% plot(f,10*log10(Pxx));
%
% figure,
% [Pxx1,f1]=periodogram(BOC_Code,[],5000,fs);
% plot(f1,10*log10(Pxx1));
%
% figure,
% [Pxx2,f2]=periodogram(Signal,[],5000,fs);
% plot(f2,10*log10(Pxx2));
%
% figure,
% [Pxx3,f3]=periodogram(FN_out,[],5000,fs_n);
% plot(f3,10*log10(Pxx3));
%
% figure,
% [Pxx4,f4]=periodogram(FBOC_out,[],5000,fs);
% plot(f4,10*log10(Pxx4));
%
% figure,
% [Pxx5,f5]=periodogram(FSignal_out,[],5000,fs);
% plot(f5,10*log10(Pxx5));
%%==========================twoside express=============================%
figure,
L0 = length(Noise_out);
semilogy([-L0/2:L0/2-1]/L0*fs_n,fftshift((Noise_out))/max(Noise_out));
title('Noise');
grid on
figure,
L1 = length(BOC_out);
semilogy([-L1/2:L1/2-1]/L1*fs,fftshift((BOC_out))/max(BOC_out));
title('BOCout');
grid on
figure,
L2 = length(Signal_out);
semilogy([-L2/2:L2/2-1]/L2*fs,fftshift((Signal_out))/max(Signal_out));
title('SignalSource');
grid on
figure,
L3 = length(F_Noise_out);
semilogy([-L3/2:L3/2-1]/L3*fs_n,fftshift((F_Noise_out))/max(F_Noise_out));
title('Filter Noise');
grid on
figure,
L4 = length(F_BOC_out);
semilogy([-L4/2:L4/2-1]/L4*fs,fftshift((F_BOC_out))/max(F_BOC_out));
title('Filter BOCcode');
grid on
figure,
L5 = length(F_Signal_out);
semilogy([-L5/2:L5/2-1]/L5*fs,fftshift((F_Signal_out))/max(F_Signal_out));
title('Filter SignalSource');
grid on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -