www.pudn.com > KayforQPSK1.rar > KayforQPSK1.m


clc;
clear all;

Symbol = 4096;>>有关
Fs = 16e6;>>无关
Fc = 2.5e6;>>无关
Rs = 1e6;>>有关
a = 0.35;
T = 4;
SNR = 20;
Mk = Fs/Rs;>>无关

FIR = rcosfir(a ,[-T,T] ,Mk ,1 ,'sqrt');
Code = randint(1,Symbol,[0 1])*2-1 + j*(randint(1,Symbol,[0 1])*2-1);

noise = randn(1,Symbol*Mk)*(10^(-SNR/20));
Data = conv(upsample(Code,Mk),FIR);

> plot(real(Data));
QPSK = Data((1:Symbol*Mk)+T*Mk).*exp(j*2*pi*Fc/Fs*(1:Symbol*Mk));> + noise;

> figure(1)
> plot(10*log10(abs(fft(real(QPSK)))));

> h = zeros(1,101);
> fh = 0.2663;
> fl = 0.151;
> h = sin(fh*pi*((1:101)-50.01))/pi./((1:101)-50.01).*(0.54+0.46*cos(2*pi*((1:101)-50.01)/101))...
> -sin(fl*pi*((1:101)-50.01))/pi./((1:101)-50.01).*(0.54+0.46*cos(2*pi*((1:101)-50.01)/101));
> QPSK1 = conv(QPSK,h);
> QPSK = QPSK1((1:Symbol*Mk)+50);

> figure(2)
> plot(10*log10(abs(fft(real(QPSK)))));

Fo = Fc;
Baseband = QPSK.*exp(-j*2*pi*Fo/Fs*(1:Symbol*Mk));
Baseband1 = conv(Baseband,FIR);
Baseband2 = Baseband1((1:Symbol*Mk)+T*Mk);
> plot(real(Baseband2));