clc;
clear;
N=100000;
x=randint(1,N)*2-1;
h=firpm(96,[0 0.24 0.3 1],[1 1 0 0]);
SNR=-20:1:30;
for k=1:length(SNR)
r=10^(SNR(k)/10);
Py=mean(abs(x).^2); %信号功率
Pz=Py/r; %噪声功率
z=(randn(1,N)+i*randn(1,N))*sqrt(Pz/2);
x_z=x+z;
xx=conv(h,upsample(x_z,4));
%eyediagram(xx,4) %眼图
xxb=sign(real(xx(49:4:((N-1)*4+49)))); %大于0等于1 小于0等于-1 判断符号
a=length(find(xxb~=x));
ber1(k)=a/length(x);
rrc=RCOSINE(0.25,1,'fir',0.22,12); %1/0.25=4倍过采样 升余弦滤波器(ISI很好) 12要改到rrc阶数匹配
xx2=conv(rrc,upsample(x_z,4));
%eyediagram(xx2,40);
aaaa=((sum(h(49:4:97).^2))-0.27)/sum(h.^2);
xx2b=sign(real(xx2(49:4:((N-1)*4+49)))); %大于0等于1 小于0等于-1 判断符号
ber2(k)=length(find(x-xx2b~=0))/length(x);
end
figure(1)
semilogy(SNR,ber1)
figure(2)
semilogy(SNR,ber2)
% figure(8)
% plot(xx)
% figure(9)
% subplot(2,1,1)
% plot(h,'o-')
% grid
% subplot(2,1,2)
% plot(rrc,'o-')
% grid
% %%%%%%%%%%%%%%%%补充的%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %数控振荡器产生信号NCO 无损 速度慢运算量大
% bbk=ifft([fft(b) zeros(1,length(b)*(M-1))]);%M为采样倍数
% bbk2=bbk*exp(i*2*pi*fc*t);
% %有损DUC
% bbn=upsample(b,25);
% bbn=LPF(bbn)*exp(i*2*pi*fc*t); %LPF要自己设计考虑参数
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%