Technorati 标签: DDC,CIC,HB,CFIR
第一天:
输入信号的中心频率在fc= 1M, 带宽B=10K,对其做FFT频谱分析
要求RBW=100hz.,因此采样时间t=1/100s
采样频率fs=10M,所以采样点数N=t*fs=100K
要求做1024点FFT, 所以抽取因子D=N/1K=100
因子100抽取,如果信号中含有大于fs/2D=50K的分量,就会造成混叠.
我们也把一张采样后和混频后的频率幅度谱放在这里
所以在抽取前加入一个FIR的低通滤波器. 它的Fpass=50K
上面已分析,看图中可知主要的产生混叠的最小频率是2M,(已假设输入信号是一个窄带信号).我第一次的时侯截止频率选择了几百K,
这使得滤波器的除数大大增加, 而现在看来我Fstop只需要小于2M即可,于是选择了一个1.9M的截止频率降低了所需要的阶数.
贴两张滤波后的图
接也来是抽取.关于抽取后的每个点对应的频率我有些迷惑.,,其实是还没有理解抽取的理论,
只把结果放这里仅供参考,待明白之后再来完善,
也请各位给小弟指点迷津,谢谢
第二天: CIC + FIR
今天收到基于FPGA 的数字信号处理 作者高老师的答复后,若有所悟:
上一次所采用的结构是 先滤波,后抽取,由于fs=32.768M, 抽取因子r=320,
fy=fs/r=0.1M因些抽取滤波的要求的截止频率为fy/2=0.05M,
通带=B=0.01M,这样一个指标对FIR来说是非常困难的.
由Noble恒等式可知
先抽取后滤波等效于先滤波后抽取,而且这样使FIR的工作速率降低.
这样1输入信号是fs=32.768M----->CIC R=320 采用多级抽取
信号速率降低到fy==102.4K ----------->fir滤波, 这时Fp=B=10K,
Fstop< fy/2=51.2k
采用这种结构大大减小了计算量.
结果如下:采样信号为
%输入信号 中心频率5M 带宽10k,期待分辨率到100hz
fc=5e6;B=10e3;
%采样频率10M
fs=32.768e6;
%采样N个点 N= 1/100 除以 1/fs==327.68k
Npoints = 327.68e3;
n=0:1:Npoints-1;
t=n/fs;
%信号的参数 几个频点
fc1=fc-B/10*2;fc2=fc+B/10*2;fc3=fc-B/10*4;fc4=fc+B/10*4;fc5=fc-B/10*6;fc6=fc+B/10*6;fc7=fc-B/10*8;fc8=fc+B/10*8;
%采样后的信号
Sn=1*cos(2*pi*fc.*t)+1*cos(2*pi*fc1.*t)+1*cos(2*pi*fc2.*t)+1*cos(2*pi*fc3.*t)+1*cos(2*pi*fc4.*t)+1*cos(2*pi*fc5.*t)+1*cos(2*pi*fc6.*t)+1*cos(2*pi*fc7.*t)+1*cos(2*pi*fc8.*t);
CIC 参数:
%--------------------------------------------------------------------------
%CIC抽取
%--------------------------------------------------------------------------
decf =
320; % Decimation Factor
diffd =
1; %
Differential Delay
numsecs = 5;
% Number of Sections
Hd = mfilt.cicdecim(decf, diffd, numsecs);
再次改进:CIC40倍抽取—HB8倍抽取—FIR
CIC 40倍抽取—cic 补偿 4倍抽取---HB 2 倍抽取
再次感谢高老师的帮助.仿真总算是有了一些进展.对于因为CIC造成的幅度上增益的补偿还在学习.The
highly symmetric structure of a CIC filter allows efficient
implementation
in hardware. However, the disadvantage of a CIC filter is that its
pass
band is not flat, which is undesirable in many applications.
Fortunately,
this problem can be alleviated by a compensation filter.
不过离实现我还有很多工作要做,时间紧张任务重我要努力了!