www.gusucode.com > 无线通信FPGA设计源码程序 > 无线通信FPGA设计源码程序/matlab代码/matlab/c10/symbol_syn.m
clear; load c; Fs=38400; %WCDMA信号的采样率 nsamp=16; %过采样率 delay=3; %根号下升余弦的群时延 datain=c; %这里c为WCDMA系统的扰码数据 Num=length(datain); %计算相关的长度 dataout=RRCsend(datain,Fs,nsamp,delay); %调用子程序,经过发送端的根号下升余弦滤波,输入采样率为1,输出采样率为16 %经过AWGN信道 SNR_DB=-22; %信噪比 snr=10^(SNR_DB/10); noise_var = 2/snr; %假设dataout的平均码片能量为2 noise = sqrt(1/2*noise_var)*(randn(1,length(dataout))+j*randn(1,length(dataout))); datachannel=dataout+noise; %加噪声 datarece=RRCrece(datachannel,Fs,nsamp,delay,1);% 调用子程序,收端的根号下升余弦匹配滤波器,输入输出的采样率都为16倍 optimal_sample_piont=1+2*delay*nsamp; %最佳采样点的起始位置 dataext=[datain,datain,datain]; %用于接收端相关的扰码 %设计低通滤波器 [b,a] = cheby2(3,20,100/19200); %3阶,带外衰减20dB,采用率38400Hz,低通带宽100Hz %偏离最佳采样点,向前偏移 for ii=1:16 datasample=datarece(optimal_sample_piont-16+ii:16:length(datarece)-2*delay*nsamp-15); temp=real(datasample).*real(dataext(Num:2*Num-1))+imag(datasample).*imag(dataext(Num:2*Num-1)); temp=filter(b,a,temp);%经过低通滤波器 val_co1=sum(temp);%早门支路相关 temp=real(datasample).*real(dataext(Num+2:2*Num+1))+imag(datasample).*imag(dataext(Num+2:2*Num+1)); temp=filter(b,a,temp);% 经过低通滤波器 val_co2=sum(temp);% 迟门支路相关 val_co(ii)=(val_co2-val_co1)/(2*Num);%计算两路相关的差值,并归一化 end; %偏离最佳采样点,向后偏移 for ii=1:15 datasample=datarece(optimal_sample_piont+ii:16:length(datarece)-2*delay*nsamp+1); temp=real(datasample).*real(dataext(Num:2*Num-1))+imag(datasample).*imag(dataext(Num:2*Num-1)); temp=filter(b,a,temp);%经过低通滤波器 val_co1=sum(temp);%早门支路相关 temp=real(datasample).*real(dataext(Num+2:2*Num+1))+imag(datasample).*imag(dataext(Num+2:2*Num+1)); temp=filter(b,a,temp);% 经过低通滤波器 val_co2=sum(temp);%迟门支路相关 val_co(16+ii)=(val_co2-val_co1)/(2*Num);% 计算两路相关的差值,并归一化 end; ii=-15:15; figure stem(ii,val_co); xlabel('采样点偏移'); ylabel('归一化相关点');