赞
踩
下面所有用到的时钟,都是从AD_clk分频出来的同源时钟。
使用idelay做延时:
ug949
半带滤波器:滤波器系数偶数位置为0,但是最中间那个系数不为0
这里设置通带为200M,采样率为1200M,那末整个带宽就为[-200M,200M],共400M带宽。
带通滤波器适合过滤,下采样后有镜像对称频谱的
滤波后:
一个数据对应一个valid信号
system generater
close all; clc ; clear all; %%parameters SIMIIME=5000; %simulation length fs = 1200e6; %sample frequency %%产生单点频信号 L=4000; f0=40e6; %signnal frequency t=0/fs:1/fs:(L-1)/fs; %time granularrity sig=exp(1j*(2*pi*f0*t)); %% sig=awgn(sig,60);%将白高斯噪声添加到向量信号x中。标量snr指定了每一个采样点信号与噪声的比率,单位为dB。如果x是复数的,awgn将会添加复数噪声。这个语法假设x的能量是0dBW。 sig=sig/max(abs(sig));%归一化 sig=round(sig*(2^15-1));%将数据取成16bit Len1=round(length(sig)/4); din_i0(1:Len1)=round(real(sig(1:4:end))); din_i1(1:Len1)=round(real(sig(2:4:end))); din_i2(1:Len1)=round(real(sig(3:4:end))); din_i3(1:Len1)=round(real(sig(4:4:end))); din_q0(1:Len1)=round(imag(sig(1:4:end))); din_q1(1:Len1)=round(imag(sig(2:4:end))); din_q2(1:Len1)=round(imag(sig(3:4:end))); din_q3(1:Len1)=round(imag(sig(4:4:end))); len_t=length(din_i0); sig_reg_i=zeros(1,len_t*4); sig_reg_q=zeros(1,len_t*4); sig_reg_i(1:4:end)=din_i0; sig_reg_i(2:4:end)=din_i1; sig_reg_i(3:4:end)=din_i2; sig_reg_i(4:4:end)=din_i3; sig_reg_q(1:4:end)=din_q0; sig_reg_q(2:4:end)=din_q1; sig_reg_q(3:4:end)=din_q2; sig_reg_q(4:4:end)=din_q3; sig_reg = complex(sig_reg_i,sig_reg_q); freqz(sig_reg,fs); %% write data file1='din_i0.dat'; fp=fopen(file1,'w'); for loop=1:length(din_i0) if din_i0(loop)>=0 din_i00=dec2bin(din_i0(loop),16); else din_i01=dec2bin(bitxor(abs(din_i0(loop)),2^16-1)+1);% din_i00=din_i01(end-15:end); end fprintf(fp,'%s\n',din_i00); end fclose(fp); file1='din_i1.dat'; fp=fopen(file1,'w'); for loop=1:length(din_i1) if din_i1(loop)>=0 din_i00=dec2bin(din_i1(loop),16); else din_i01=dec2bin(bitxor(abs(din_i1(loop)),2^16-1)+1);% din_i00=din_i01(end-15:end); end fprintf(fp,'%s\n',din_i00); end fclose(fp); file1='din_i2.dat'; fp=fopen(file1,'w'); for loop=1:length(din_i2) if din_i2(loop)>=0 din_i00=dec2bin(din_i2(loop),16); else din_i01=dec2bin(bitxor(abs(din_i2(loop)),2^16-1)+1);% din_i00=din_i01(end-15:end); end fprintf(fp,'%s\n',din_i00); end fclose(fp); file1='din_i3.dat'; fp=fopen(file1,'w'); for loop=1:length(din_i3) if din_i3(loop)>=0 din_i00=dec2bin(din_i3(loop),16); else din_i01=dec2bin(bitxor(abs(din_i3(loop)),2^16-1)+1);% din_i00=din_i01(end-15:end); end fprintf(fp,'%s\n',din_i00); end fclose(fp);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。